Vă întrebați cum să verificați conectivitatea între două puncte finale de rețea?
Una dintre sarcinile comune pentru administratorul de sistem este să verifice conectivitatea pentru a depana problemele de rețea. Ar putea fi ceva de genul ca aplicația să nu se conecteze la serviciul backend, să nu poată prelua date de la adresa URL externă, să verifice dacă fluxul este deschis etc.
Oricare ar fi, următorul utilitar/comenzi v-ar ajuta. Sunt testate pe CentOS și nu văd niciun motiv să nu lucrez pe o altă distribuție Linux.
Haideți să explorăm…
Cuprins
telnet
Una dintre comenzile utilizate pe scară largă pentru a testa conectivitatea esențială între servere, server la IP-ul altui dispozitiv de rețea. Sintaxa pentru comandă este ușoară.
telnet $destinationIP $PORT
Să presupunem că doriți să testați dacă vă puteți conecta la portul 8080 pe adresa IP 10.0.0.1; atunci comanda ar fi.
telnet 10.0.0.1 8080
Dacă nu există nicio problemă la conectare, atunci ar trebui să vedeți mesajul conectat.
Trying 10.0.0.1... Connected to 10.0.0.1. Escape character is '^]'.
Notă: dacă primiți o comandă care nu a fost găsită în timp ce executați telnet, atunci trebuie să instalați telnet așa cum am explicat aici.
În majoritatea scenariilor, telnet ar trebui să ajute. Cu toate acestea, dacă aveți nevoie de altă opțiune, atunci iată câteva alternative telnet.
ncat sau nc
Ncat (alias nc) este un utilitar de rețea puternic cu multe caracteristici precum legarea și acceptarea unei conexiuni, executarea comenzilor de la distanță, scrierea și citirea datelor etc. Funcționează pe IPv4 și IPv6, ambele.
Pentru a face un test simplu pentru a verifica dacă portul este deschis sau nu, veți executa următoarele.
nc -vz $HOSTNAME $PORT
Să luăm un exemplu de testare a portului 443 pe tipstrick.ro.com.
[[email protected] ~]# nc -vz tipstrick.ro.com 443 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Connected to 104.25.133.107:443. Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds. [[email protected] ~]#
După cum am menționat, puteți utiliza și nc pentru a lega conexiunea pentru a asculta pe un anumit port. Acest lucru poate fi util atunci când nu aveți servicii reale care rulează, dar doriți să vă asigurați că există conectivitatea.
Pentru a începe să ascultați pe un port:
nc -l $PORTNUMBER
Acesta va lega portul la un anumit număr.
Dacă ncat nu este instalat, atunci îl puteți finaliza cu yum install nc pe serverele CentOS/RHEL.
wget
wget este o comandă utilă pentru descărcarea/testarea HTTP, HTTPS și FTP. Dacă lucrezi ca inginer web sau te confrunți adesea cu probleme legate de web, atunci wget este prietenul tău. Testarea folosind wget este simplă.
wget $URL
Iată un exemplu de testare tools.tipstrick.ro.com
[[email protected] ~]# wget tools.tipstrick.ro.com --2019-05-09 20:40:01-- http://tools.tipstrick.ro.com/ Resolving tools.tipstrick.ro.com (tools.tipstrick.ro.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ... Connecting to tools.tipstrick.ro.com (tools.tipstrick.ro.com)|104.25.134.107|:80... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: https://tools.tipstrick.ro.com/ [following] --2019-05-09 20:40:01-- https://tools.tipstrick.ro.com/ Connecting to tools.tipstrick.ro.com (tools.tipstrick.ro.com)|104.25.134.107|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: 'index.html.2' [ <=> ] 15,139 --.-K/s in 0.001s 2019-05-09 20:40:02 (12.8 MB/s) - 'index.html.2' saved [15139] [[email protected] ~]#
Dacă arată conectat înseamnă că nu există nicio problemă de conectivitate.
Verificați acest lucru pentru a vedea câteva dintre exemplele de comandă wget utilizate frecvent.
răsuci
O buclă este un instrument multifuncțional.
Știți că puteți telnet la un port folosind curl?
Ei bine, acum știi.
curl -v telnet://$IP:$PORT
Următorul este un exemplu de lucru.
[[email protected] ~]# curl -v telnet://chandan.io:443 * About to connect() to chandan.io port 443 (#0) * Trying 104.31.68.106... * Connected to chandan.io (104.31.68.106) port 443 (#0)
Și, când nu există nicio problemă cu portul de ascultare sau firewall, atunci veți vedea că încercați…
[[email protected] ~]# curl -v telnet://chandan.io:4434 * About to connect() to chandan.io port 4434 (#0) * Trying 104.31.68.106...
De asemenea, puteți utiliza curl pentru a descărca datele. Suportă mai multe protocoale – HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER etc.
nmap
Un instrument popular cu sute de funcții. Adesea, acesta este considerat un instrument de securitate, nmap vă permite să testați un singur IP/port sau în interval.
Pentru a testa un singur port
nmap -p $PORT $IP
Un exemplu de testare a portului 443 pe siterelic.com
[[email protected] ~]# nmap -p 443 siterelic.com Starting Nmap 7.70 ( https://nmap.org ) at 2019-05-10 06:55 UTC Nmap scan report for siterelic.com (104.27.174.50) Host is up (0.0079s latency). Other addresses for siterelic.com (not scanned): 104.27.175.50 2606:4700:30::681b:ae32 2606:4700:30::681b:af32 PORT STATE SERVICE 443/tcp open https Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds [[email protected] ~]#
Uită-te la coloana de stat. Dacă vedeți deschis înseamnă că conexiunea este ok. Și, dacă starea este filtrată, înseamnă că conectivitatea nu există.
Ping
Una dintre comenzile utilizate pe scară largă este de a verifica dacă o gazdă la distanță răspunde sau nu la ICMP ECHO_REQUEST. Rețineți că este posibil ca acest lucru să nu vă ofere rezultate exacte atunci când ICMP este blocat la firewall-ul rețelei de la distanță. Presupunând că nu este cazul, puteți trimite ping la punctul final al rețelei IPv4 sau IPv4, ca mai jos.
ping $ipaddress ping $url
De exemplu, rezultatul succesului tipstrick.ro.com
[email protected] ~ % ping tipstrick.ro.com PING tipstrick.ro.com (104.27.119.115): 56 data bytes 64 bytes from 104.27.119.115: icmp_seq=0 ttl=53 time=7.944 ms 64 bytes from 104.27.119.115: icmp_seq=1 ttl=53 time=8.870 ms
De exemplu, rezultatul eșecului IP intern.
[email protected] ~ % ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1): 56 data bytes Request timeout for icmp_seq 0 Request timeout for icmp_seq 1
Dacă punctul final acceptă IPv6, puteți utiliza comanda ping6 ca mai jos.
[email protected] ~ % ping6 tipstrick.ro.com PING6(56=40+8+8 bytes) 2a01:4b00:88e4:8700:d8ca:bf50:159c:2a1d --> 2606:4700:20::681b:7673 16 bytes from 2606:4700:20::681b:7673, icmp_seq=0 hlim=250 time=8.650 ms 16 bytes from 2606:4700:20::681b:7673, icmp_seq=1 hlim=250 time=8.738 ms
Dacă trebuie să faceți ping de la distanță pe Internet, puteți utiliza instrumentul de ping online.
Concluzie
telnet este eliminat treptat în cea mai recentă versiune Linux. Datorită alternativei telnet de mai sus.
Dacă sunteți nou în Linux și doriți să învățați, verificați acest lucru curs Udemy.