6 Linux-Dienstprogramm zum Testen der Netzwerkkonnektivität

Sie fragen sich, wie Sie die Konnektivität zwischen zwei Netzwerkendpunkten überprüfen können?

Eine der häufigsten Aufgaben des Systemadministrators besteht darin, die Konnektivität zu überprüfen, um Netzwerkprobleme zu beheben. Es könnte so sein, dass die Anwendung keine Verbindung zum Back-End-Dienst herstellen kann, keine Daten von einer externen URL abrufen kann, nicht überprüfen kann, ob der Flow geöffnet ist usw.

Was auch immer es sein mag, die folgenden Dienstprogramme/Befehle würden Ihnen helfen. Sie werden auf CentOS getestet, und ich sehe keinen Grund, nicht an einer anderen Linux-Distribution zu arbeiten.

Lass uns erforschen…

telnet

Einer der weit verbreiteten Befehle zum Testen der wesentlichen Konnektivität zwischen Servern, dem Server und der IP eines anderen Netzwerkgeräts. Die Syntax für den Befehl ist einfach.

telnet $destinationIP $PORT

Angenommen, Sie möchten testen, ob Sie eine Verbindung zu Port 8080 auf der IP-Adresse 10.0.0.1 herstellen können. dann wäre der Befehl.

telnet 10.0.0.1 8080

Wenn beim Verbinden kein Problem auftritt, sollten Sie die verbundene Nachricht sehen.

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

Hinweis: Wenn Sie beim Ausführen von Telnet einen Befehl erhalten, der nicht gefunden wurde, müssen Sie Telnet installieren, wie ich es hier erklärt habe.

In den meisten Szenarien sollte Telnet helfen. Wenn Sie jedoch eine andere Option benötigen, finden Sie hier einige Telnet-Alternativen.

ncat oder nc

Ncat (alias nc) ist ein leistungsstarkes Netzwerkdienstprogramm mit vielen Funktionen wie Binden und Akzeptieren einer Verbindung, Ausführen von Befehlen aus der Ferne, Schreiben und Lesen von Daten usw. Es funktioniert sowohl mit IPv4 als auch mit IPv6.

Um einen einfachen Test durchzuführen, um zu überprüfen, ob der Port geöffnet ist oder nicht, führen Sie Folgendes aus.

nc -vz $HOSTNAME $PORT

Nehmen wir ein Beispiel für das Testen von Port 443 auf wdzwdz.com.

[[email protected] ~]# nc -vz wdzwdz.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]ekflare-lab ~]#

Wie bereits erwähnt, können Sie auch nc verwenden, um die Verbindung so zu binden, dass sie auf einem bestimmten Port lauscht. Dies kann praktisch sein, wenn Sie keine eigentlichen Dienste ausführen, aber sicherstellen möchten, dass eine Verbindung besteht.

So starten Sie das Abhören eines Ports:

nc -l $PORTNUMBER

Es bindet den Port an eine bestimmte Nummer.

Wenn ncat nicht installiert ist, können Sie dies mit yum install nc auf CentOS/RHEL-Servern erledigen.

wget

wget ist ein nützlicher Befehl zum Herunterladen/Testen von HTTP, HTTPS und FTP. Wenn Sie als Webingenieur arbeiten oder sich häufig mit webbezogenen Problemen befassen, ist wget Ihr Freund. Das Testen mit wget ist unkompliziert.

wget $URL

Hier ist ein Beispiel für das Testen von tools.wdzwdz.com

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

Wenn verbunden angezeigt wird, bedeutet dies, dass kein Verbindungsproblem vorliegt.

Schauen Sie sich dies an, um einige der häufig verwendeten wget-Befehlsbeispiele zu sehen.

kräuseln

Eine Locke ist ein Mehrzweckwerkzeug.

Wissen Sie, dass Sie mit curl eine Telnet-Verbindung zu einem Port herstellen können?

Ja, jetzt weißt du es.

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

Das Folgende ist ein funktionierendes Beispiel.

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

Und wenn es kein Abhörport- oder Firewall-Problem gibt, werden Sie sehen, dass Sie versuchen …

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

Sie können die Daten auch mit curl herunterladen. Es unterstützt mehrere Protokolle – HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER usw.

nmap

Ein beliebtes Tool mit Hunderten von Funktionen. Oft wird dies als Sicherheitstool betrachtet, nmap können Sie eine einzelne IP/Port oder im Bereich testen.

Um einen einzelnen Port zu testen

nmap -p $PORT $IP

Ein Beispiel für das Testen von Port 443 auf 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] ~]#

Sehen Sie sich die Statusspalte an. Wenn Sie offen sehen, bedeutet dies, dass die Verbindung in Ordnung ist. Und wenn der Status gefiltert ist, bedeutet dies, dass keine Konnektivität vorhanden ist.

Klingeln

Einer der weit verbreiteten Befehle besteht darin, zu prüfen, ob ein entfernter Host auf ICMP ECHO_REQUEST antwortet oder nicht. Beachten Sie, dass dies möglicherweise keine genauen Ergebnisse liefert, wenn ICMP an der Firewall des Remote-Netzwerks blockiert ist. Unter der Annahme, dass dies nicht der Fall ist, können Sie den IPv4- oder IPv4-Netzwerkendpunkt wie unten beschrieben pingen.

ping $ipaddress
ping $url

Beispiel: Erfolgsergebnis von wdzwdz.com

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

Beispiel: Fehlerergebnis der internen IP.

[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

Wenn der Endpunkt IPv6 unterstützt, können Sie den ping6-Befehl wie unten verwenden.

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

Wenn Sie einen Remote-Ping über das Internet durchführen müssen, können Sie das Online-Ping-Tool verwenden.

Fazit

Telnet läuft in der neuesten Linux-Version aus. Dank obiger Telnet-Alternative.

Wenn Sie neu bei Linux sind und lernen möchten, dann schauen Sie sich das an Udemy-Kurs.