Ghid pas cu pas despre modul de trimitere al adresei IP al unui Raspberry Pi la contul dumneavoastră de Gmail la pornirea sistemului. În acest fel, este mai ușor să găsiți și să accesați dispozitivul prin intermediul rețelei locale.
Acest tutorial este dedicat celor care accesează Raspberry Pi prin intermediul unui alt dispozitiv, de exemplu un laptop. Nu contează dacă folosiți SSH (Secure Shell), VNC (Virtual Network Computing) sau orice altă modalitate de acces. Pun pariu că v-ați regăsit cel puțin o dată în următoarea situație. Conectați cablul Ethernet, porniți dispozitivul Pi și vă întrebați oare ce adresa IP a fost atribuită de această dată la placa dumneavoastră.
În momentul în care scriu acest tutorial, dețin un Raspberry Pi 3 Model B pe care rulează un Raspbian Jessie cu PIXEL. Toate informațiile din articol se pot aplica și în viitoarele versiuni Raspbian.
Dar așteptați…
Puteți să deschideți un browser, să deschideți interfața web a routerului dumneavoastră de acasă și să găsiți acolo adresa dispozitivului. Lista de clienți DHCP nu minte, nu- așa? Sau chiar mai bine, puteți atribui o adresă IP statică la Raspberry Pi. Acest lucru se poate realiza fie din setările routerului, fie prin configurări la nivel de Raspberry PI. Dar dacă nu avem acest privilegiu? Dacă folosiți Raspberry Pi într-un laborator școlar sau universitar? În acest caz este foarte posibil să nu aveți dreptul de a accesa lista de dispozitive conectate la rețea sau de a efectua configurări suplimentare.
Există, de asemenea, metode brute-force pentru a găsi adresa IP al unui Raspberry Pi. Ping la întreaga rețea este o soluție plauzibilă. Există chiar instrumente care fac asta pentru tine. Am folosit Angry IP Scanner pentru o perioadă îndelungată și chiar funcționează. Porniți instrumentul, setați intervalul de adrese, apăsați un buton și așteptați. După ce terminați scanarea, trebuie doar să vă căutați dispozitivul în listă.
Cu toate acestea, există o mică șansă ca această modalitate să nu funcționeze. Administratorul de rețea poate filtra pachetele ICMP și astfel pachetele ping nu pot să circule în rețea. De asemenea, prin ping agresiv la nivelul întregii rețelei, puteți deranja pe cineva. Aș recurge la această metodă numai dacă nu ar exista altă cale.
Atunci?
Soluția mea la această problemă se bazează pe trimiterea unui e-mail la fiecare pornire, e-mail care va conține IP-ul dispozitivului. Acest tutorial utilizează Gmail, dar puteți utiliza orice alt serviciu care acceptă trimiterea de mesaje prin SMTP. Singurul dezavantaj al acestei soluții este faptul că Raspberry Pi trebuie să fie conectat la internet.
Am împărțit tutorialul în două secțiuni separate. Prima acoperă configurarea serviciului de poștă electronică, în timp ce cea de-a doua acoperă automatizarea care trimite adresa IP. Trimiterea de mesaje prin Gmail de pe un Raspberry Pi poate fi utilă și în alte cazuri. Puteți conecta senzori pentru a verifica temperatura unei încăperi și trimite un e-mail când valoarea scade sub un anumit prag. Sau puteți utiliza o cameră de Raspberry Pi cu software de detectare a mișcării care poate trimite alerte prin poștă electronică.
Avertisment cu privire la verificare în 2 pași
Dacă utilizați funcția de verificare în doi pași pentru a vă securiza contul Google, atunci există pași suplimentari pe care trebuie să îi urmați. Dacă nu utilizați această funcție, puteți sări peste această secțiune.
Pentru ca SSMTP să poată comunica cu un cont Gmail care utilizează verificarea în doi pași, va trebui să creați ceva numit „Parolă de aplicație”. Aceasta este o parolă specială care oferă permisiune utilitarului SSMTP pentru a accesa contul dumneavoastră Gmail fără a fi nevoie de verificarea în doi pași. Puteți obține mai multe informații și puteți genera o parolă de aplicație făcând clic pe următorul link.
https://support.google.com/accounts/answer/185833?hl=ro
Asigurați-vă că notați parola de aplicație pe care o generați. Veți avea nevoie mai târziu de ea.
Configurarea serviciului de email
Planul nostru este să instalăm și să configurăm ssmtp și mailutils, două pachete software standard. Primul este un „Mail Transport Agent” (MTA) și va livra mesaje email către Gmail iar celălalt este un „framework” consacrat de poștă electronică.
Începeți prin a deschide o fereastră de terminal și trecerea la utilizatorul root.
sudo su
Actualizați lista pachetelor disponibile
apt-get update
Instalați ssmtp și mailutils.
apt-get install ssmtp apt-get install mailutils
Editați fișierul de configurare SSMTP utilizând editorul dvs. preferat. Eu prefer nano.
nano /etc/ssmtp/ssmtp.conf
Modificați configurația prin introducerea setărilor cu privire la utilizatorul și parola dumneavoastră. Dacă aveți activată verificarea în doi pași, asigurați-vă că utilizați parola de aplicați generată anterior în locul parolei contului.
Un exemplu de configurare se găsește mai jos.
# The person who gets all mail for userids < 1000 # Make this empty to disable rewriting. root=your_username@gmail.com # The place where the mail goes. mailhub=smtp.gmail.com:587 # Account information AuthUser=your_username@gmail.com AuthPass=your_password AuthMethod=LOGIN # Secure the communication UseTLS=Yes UseSTARTTLS=Yes
Editați fișierul de aliasuri SSMTP pentru a asocia utilizatorii locali la contul Gmail folosit.
nano /etc/ssmtp/revaliases
Introduceți următoarea configurație.
root:your_username@gmail.com:smtp.gmail.com:587 pi:your_username@gmail.com:smtp.gmail.com:587
Dacă utilizați un nume de utilizator diferit pentru a vă conecta la Raspberry Pi, asigurați-vă că îl includeți pe cel corect mai sus.
Suntem gata cu partea de configurare a poștei electronice. Să vedem dacă funcționează totul prin trimiterea unui mesaj de test.
echo "Test text" | mail -s "Test Mail" your_username@gmail.com
Trimiterea adresei
Pentru a trimite adresa IP a Raspberry Pi vom crea un script. Prin plasarea acestui script în directorul /etc/network/if-up.d sistemul îl va apela automat de fiecare dată când o interfață de rețea intră în starea UP.
Deschideți un terminal și creați un script numit mailip. Dacă alegeți să utilizați un nume diferit pentru scriptul dumneavoastră, asigurați-vă că omiteți extensia fișierului.
sudo nano /etc/network/if-up.d/mailip
Introduceți următorul conținut înlocuind adresa de e-mail de la sfârșitul fișierului cu propria dumneavoastră adresă.
#!/bin/sh # Send a mail with the IP address after interface comes up # It is safe to ignore localhost if [ "$IFACE" = lo ]; then exit 0 fi # Only run from ifup. if [ "$MODE" != start ]; then exit 0 fi # We only care about IPv4 and IPv6 case $ADDRFAM in inet|inet6|NetworkManager) ;; *) exit 0 ;; esac # We wait for DHCP to assign an IP address sleep 15 # Store the IP address to a variable MYIP="$(/bin/hostname --all-ip-addresses)" # Send the mail if the address is not empty if [ -z "$MYIP" ]; then exit 0 else echo "$MYIP" | /usr/bin/mail -s "PI is up" your_username@gmail.com fi exit 0
Ultimul pas pe care trebuie să-l facem este marcarea scriptul de mai sus ca și executabil.
sudo chmod +x /etc/network/if-up.d/mailip
Asta-i tot, am terminat. Acum puteți reporni dispozitivul pentru a testa dacă totul funcționează. Verificați-vă căsuța Gmail, trebuie să primiți un e-mail cu adresa IP a dispozitivului.
T3ZlciBBbmQgT3V0IQ==
Be First to Comment