Sie fragen sich, wie Sie die Konnektivität zwischen zwei Netzwerkendpunkten überprüfen können?
Eine der häufigsten Aufgaben von Systemadministratoren ist es, die Konnektivität zu überprüfen, um Netzwerkprobleme zu beheben. Das kann alles Mögliche sein, z.B. dass die Anwendung keine Verbindung zum Backend-Dienst herstellen kann, dass sie keine Daten von einer externen URL abrufen kann, dass sie überprüfen muss, ob der Datenfluss geöffnet ist usw.
Was auch immer es sein mag, die folgenden Dienstprogramme/Befehle werden Ihnen helfen. Sie wurden unter CentOS getestet, und ich sehe keinen Grund, warum sie nicht auch unter anderen Linux-Distributionen funktionieren sollten.
Lassen Sie uns erkunden…
telnet
Einer der am häufigsten verwendeten Befehle zum Testen der wichtigen Konnektivität zwischen Servern, Servern und der IP eines anderen Netzwerkgeräts. Die Syntax für diesen Befehl ist einfach.
telnet $Ziel-IP $PORT
Nehmen wir an, Sie möchten testen, ob Sie eine Verbindung zu Port 8080 auf der IP-Adresse 10.0.0.1 herstellen können; dann würde der Befehl lauten.
telnet 10.0.0.1 8080
Wenn die Verbindung ohne Probleme hergestellt werden kann, sollten Sie die Meldung Verbunden sehen.
Versucht 10.0.0.1...
Verbunden mit 10.0.0.1.
Das Escape-Zeichen ist '^]'.
Hinweis: Wenn Sie beim Ausführen von telnet einen nicht gefundenen Befehl erhalten, müssen Sie telnet installieren, wie ich hier erklärt habe.
In den meisten Fällen sollte telnet helfen. Wenn Sie jedoch eine andere Option benötigen, finden Sie hier einige Telnet-Alternativen.
ncat oder nc
Ncat (auch bekannt als nc) ist ein leistungsstarkes Netzwerkdienstprogramm mit vielen Funktionen wie Binden und Annehmen 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 prüfen, ob der Port geöffnet ist oder nicht, führen Sie Folgendes aus.
nc -vz $HOSTNAME $PORT
Nehmen wir als Beispiel den Test des Ports 443 auf geekflare.com/de.
[root@geekflare-lab ~]# nc -vz geekflare.com/de 443
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Verbunden mit 104.25.133.107:443.
Ncat: 0 Bytes gesendet, 0 Bytes empfangen in 0,02 Sekunden.
[root@geekflare-lab ~]#
Wie bereits erwähnt, können Sie nc
auch verwenden, um die Verbindung an einen bestimmten Port zu binden. Das kann praktisch sein, wenn Sie keine aktuellen Dienste laufen haben, aber sicherstellen wollen, dass eine Verbindung besteht.
So starten Sie das Lauschen auf einem Port:
nc -l $PORTNUMMER
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 nachholen.
wget
wget ist ein nützlicher Befehl zum Herunterladen/Testen von HTTP, HTTPS und FTP. Wenn Sie als Webtechniker arbeiten oder häufig mit webbezogenen Problemen zu tun haben, ist wget
Ihr Freund. Das Testen mit wget ist ganz einfach.
wget $URL
Hier ist ein Beispiel für den Test von tools.geekflare.com/de
[root@geekflare-lab ~]# wget tools.geekflare.com/de
--2019-05-09 20:40:01-- http://tools.geekflare.com/de/
Auflösen von tools.geekflare.com/de (tools.geekflare.com/de)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ...
Verbindung zu tools.geekflare.com/de (tools.geekflare.com/de)|104.25.134.107|:80... hergestellt.
HTTP-Anfrage gesendet, wartet auf Antwort... 301 Dauerhaft verschoben
Standort: https://tools.geekflare.com/de/ [following]
--2019-05-09 20:40:01-- https://tools.geekflare.com/de/
Verbindung zu tools.geekflare.com/de (tools.geekflare.com/de)|104.25.134.107|:443... verbunden.
HTTP-Anfrage gesendet, warte auf Antwort... 200 OK
Länge: nicht spezifiziert [text/html]
Speichern in: 'index.html.2'
[ <=> ] 15.139 --.-K/s in 0.001s
2019-05-09 20:40:02 (12.8 MB/s) - 'index.html.2' gespeichert [15139]
[root@geekflare-lab ~]#
Wenn eine Verbindung angezeigt wird, gibt es kein Problem mit der Konnektivität.
Hier finden Sie einige Beispiele für häufig verwendete wget-Befehle.
curl
Ein curl ist ein Mehrzweckwerkzeug.
Wussten Sie, dass Sie mit curl einen Port per Telnet ansteuern können?
Nun, jetzt wissen Sie es.
curl -v telnet://$IP:$PORT
Im Folgenden finden Sie ein funktionierendes Beispiel.
[root@geekflare-lab ~]# curl -v telnet://chandan.io:443
* Verbinden() mit chandan.io Port 443 (#0)
* Versucht 104.31.68.106...
* Verbunden mit chandan.io (104.31.68.106) Port 443 (#0)
Und wenn es keinen lauschenden Port oder ein Firewall-Problem gibt, dann sehen Sie den Versuch…
[root@geekflare-lab ~]# curl -v telnet://chandan.io:4434
* Verbinden() mit chandan.io Port 4434 (#0)
* Versucht 104.31.68.106...
Sie können auch curl verwenden, um die Daten herunterzuladen. 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 es als Sicherheitstool betrachtet. Mit nmap können Sie eine einzelne IP/Port oder den gesamten Bereich testen.
So testen Sie einen einzelnen Port
nmap -p $PORT $IP
Ein Beispiel für den Test von Port 443 auf siterelic.com
[root@geekflare-lab ~]# nmap -p 443 siterelic.com
Starten von Nmap 7.70 ( https://nmap.org ) um 2019-05-10 06:55 UTC
Nmap-Scanbericht für siterelic.com (104.27.174.50)
Der Host ist verfügbar (0.0079s Latenzzeit).
Andere Adressen für siterelic.com (nicht gescannt): 104.27.175.50 2606:4700:30::681b:ae32 2606:4700:30::681b:af32
PORT STATUS SERVICE
443/tcp offen https
Nmap erledigt: 1 IP-Adresse (1 Host aktiv) gescannt in 0.13 Sekunden
[root@geekflare-lab ~]#
Sehen Sie sich die Spalte state an. Wenn Sie open sehen, ist die Verbindung in Ordnung. Und wenn der Status gefiltert ist, bedeutet das, dass keine Verbindung besteht.
Ping
Einer der am häufigsten verwendeten Befehle ist die Überprüfung, ob ein entfernter Host auf ICMP ECHO_REQUEST antwortet oder nicht. Denken Sie daran, dass dies möglicherweise keine genauen Ergebnisse liefert, wenn ICMP von der Firewall des entfernten Netzwerks blockiert wird. Wenn dies nicht der Fall ist, können Sie den IPv4- oder IPv4-Netzwerkendpunkt wie folgt anpingen.
ping $ipaddress
ping $url
Zum Beispiel, Erfolgsergebnis von geekflare.com/de
chandan@192 ~ % ping geekflare.com/de
PING geekflare.com/de (104.27.119.115): 56 Datenbytes
64 Bytes von 104.27.119.115: icmp_seq=0 ttl=53 time=7.944 ms
64 Bytes von 104.27.119.115: icmp_seq=1 ttl=53 time=8.870 ms
Beispiel für das Ergebnis eines Fehlschlags der internen IP.
chandan@192 ~ % ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 Datenbytes
Zeitüberschreitung bei der Anfrage für icmp_seq 0
Zeitüberschreitung für icmp_seq 1 anfordern
Wenn der Endpunkt IPv6 unterstützt, können Sie den Befehl ping6
wie folgt verwenden.
chandan@192 ~ % ping6 geekflare.com/de
PING6(56=40 8 8 Bytes) 2a01:4b00:88e4:8700:d8ca:bf50:159c:2a1d -->
2606:4700:20::681b:7673
16 Bytes von 2606:4700:20::681b:7673, icmp_seq=0 hlim=250 time=8.650 ms
16 Bytes von 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 wird in der neuesten Linux-Version nicht mehr verwendet. Dank der oben genannten telnet-Alternative.
Wenn Sie Linux noch nicht kennen und lernen möchten, sollten Sie sich diesen Udemy-Kurs ansehen.