6 Utility Linux per testare la connettività di rete

Ti stai chiedendo come controllare la connettività tra due endpoint di rete?

Una delle attività comuni per l’amministratore di sistema è controllare la connettività per risolvere i problemi di rete. Potrebbe essere qualcosa come l’applicazione non può connettersi al servizio di back-end, non è in grado di recuperare i dati da un URL esterno, verificare se il flusso è aperto, ecc.

Qualunque cosa possa essere, la seguente utilità/comandi ti aiuterebbe. Sono testati su CentOS e non vedo alcun motivo per non lavorare su un’altra distribuzione Linux.

Esploriamo…

telnet

Uno dei comandi ampiamente utilizzati per testare la connettività essenziale tra i server, dal server all’IP di un altro dispositivo di rete. La sintassi del comando è semplice.

telnet $destinationIP $PORT

Supponiamo che tu voglia verificare se riesci a connetterti alla porta 8080 sull’indirizzo IP 10.0.0.1; allora il comando sarebbe.

telnet 10.0.0.1 8080

Se non ci sono problemi nella connessione, dovresti vedere il messaggio connesso.

Trying 10.0.0.1...
Connected to 10.0.0.1.
Escape character is '^]'.

Nota: se ricevi un comando non trovato durante l’esecuzione di telnet, devi installare telnet come ho spiegato qui.

Nella maggior parte degli scenari, telnet dovrebbe aiutare. Tuttavia, se hai bisogno di qualche altra opzione, ecco alcune alternative telnet.

ncat o nc

Ncat (alias nc) è una potente utility di rete con molte funzionalità come associare e accettare una connessione, eseguire comandi in remoto, scrivere e leggere dati, ecc. Funziona su IPv4 e IPv6, entrambi.

  Come giocare a The Talos Principle su Linux

Per fare un semplice test per verificare se la porta è aperta o meno, eseguirai quanto segue.

nc -vz $HOSTNAME $PORT

Facciamo un esempio di test della porta 443 su winadmin.it.com.

[[email protected] ~]# nc -vz winadmin.it.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] ~]#

Come accennato, puoi anche usare nc per associare la connessione all’ascolto su una particolare porta. Questo può essere utile quando non hai servizi effettivi in ​​esecuzione ma vuoi assicurarti che la connettività esista.

Per iniziare l’ascolto su una porta:

nc -l $PORTNUMBER

Associa la porta a un determinato numero.

Se ncat non è installato, puoi farlo con yum install nc sui server CentOS/RHEL.

wget

wget è un comando utile per scaricare/testare HTTP, HTTPS e FTP. Se lavori come ingegnere web o hai spesso a che fare con problemi relativi al web, allora wget è tuo amico. Il test con wget è semplice.

wget $URL

Ecco un esempio di test tools.winadmin.it.com

[[email protected] ~]# wget tools.winadmin.it.com
--2019-05-09 20:40:01--  http://tools.winadmin.it.com/
Resolving tools.winadmin.it.com (tools.winadmin.it.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ...
Connecting to tools.winadmin.it.com (tools.winadmin.it.com)|104.25.134.107|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://tools.winadmin.it.com/ [following]
--2019-05-09 20:40:01--  https://tools.winadmin.it.com/
Connecting to tools.winadmin.it.com (tools.winadmin.it.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] ~]#

Se mostra connesso significa che non ci sono problemi di connettività.

  Come installare SolveSpace su Linux

Dai un’occhiata a questo per vedere alcuni degli esempi di comando wget usati di frequente.

arricciare

Un ricciolo è uno strumento multiuso.

Sai che puoi telnet a una porta usando curl?

Bene, ora lo sai.

curl -v telnet://$IP:$PORT

Di seguito è riportato un esempio funzionante.

[[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)

E, quando non ci sono problemi con la porta di ascolto o con il firewall, vedrai provare…

[[email protected] ~]# curl -v telnet://chandan.io:4434
* About to connect() to chandan.io port 4434 (#0)
*   Trying 104.31.68.106...

Puoi anche usare curl per scaricare i dati. Supporta più protocolli: HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER, ecc.

nmap

Uno strumento popolare con centinaia di funzionalità. Spesso questo è considerato uno strumento di sicurezza, nmap consente di testare un singolo IP/porta o nell’intervallo.

Per testare una singola porta

nmap -p $PORT $IP

Un esempio di test della porta 443 su 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] ~]#

Guarda la colonna dello stato. Se vedi aperto significa che la connessione è ok. E, se lo stato è filtrato, significa che la connettività non esiste.

  Come eseguire più facilmente il software Windows su Linux con Bottles

Ping

Uno dei comandi ampiamente utilizzati è controllare se un host remoto sta rispondendo o meno a ICMP ECHO_REQUEST. Tieni presente che questo potrebbe non fornire risultati accurati quando ICMP è bloccato nel firewall della rete remota. Supponendo che non sia così, puoi eseguire il ping all’endpoint di rete IPv4 o IPv4 come di seguito.

ping $ipaddress
ping $url

Ad esempio, risultato di successo di winadmin.it.com

[email protected] ~ % ping winadmin.it.com
PING winadmin.it.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

Ad esempio, il risultato dell’errore dell’IP interno.

[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

Se l’endpoint supporta IPv6, puoi utilizzare il comando ping6 come di seguito.

[email protected] ~ % ping6 winadmin.it.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

Se devi eseguire il ping remoto su Internet, puoi utilizzare lo strumento di ping online.

Conclusione

telnet sta uscendo dall’ultima versione di Linux. Grazie all’alternativa telnet di cui sopra.

Se sei nuovo su Linux e stai cercando di imparare, dai un’occhiata a questo Corso Udem.