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, wie z.B. dass eine Anwendung keine Verbindung zum Backend-Dienst herstellen kann, dass Daten von einer externen URL nicht abgerufen werden können, dass überprüft wird, 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 grundlegenden 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
Versuch 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
[root@geekflare-lab ~]# nc -vz geekflare.com 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 zu einer bestimmten Port zu binden. Dies kann praktisch sein, wenn Sie keine eigentlichen Dienste laufen haben, aber sicherstellen wollen, dass eine Verbindung besteht
So starten Sie das Lauschen auf einen 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 erledigen
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
[root@geekflare-lab ~]# wget tools.geekflare.com
--2019-05-09 20:40:01-- http://tools.geekflare.com/
Auflösen von tools.geekflare.com (tools.geekflare.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ...
Verbindung zu tools.geekflare.com (tools.geekflare.com)|104.25.134.107|:80... verbunden.
HTTP-Anfrage gesendet, Antwort wird erwartet... 301 Moved Permanently
Ort: https://tools.geekflare.com/ [following]
--2019-05-09 20:40:01-- https://tools.geekflare.com/
Verbindung zu tools.geekflare.com (tools.geekflare.com)|104.25.134.107|:443... verbunden.
HTTP-Anfrage gesendet, Antwort erwartet... 200 OK
Länge: unspezifiziert [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
Sehen Sie sich hier einige Beispiele für häufig verwendete wget-Befehle eine
locken.
Locke ist ein Mehrzweck-Tool
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 kein Problem mit dem lauschenden Port oder der Firewall 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 einen 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)
Host ist aktiv (0.0079s Latenz).
Andere Adressen für siterelic.com (nicht gescannt): 104.27.175.50 2606:4700:30::681b:ae32 2606:4700:30::681b:af32
PORT STATE SERVICE
443/tcp open 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 offen 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. Angenommen, dies ist nicht der Fall, können Sie den IPv4- oder IPv4-Netzwerkendpunkt wie folgt anpingen
ping $ipaddress
ping
$url
Beispiel: Erfolgreiches Ergebnis von geekflare.com
chandan@192 ~ % ping geekflare.com
PING geekflare.com (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
Zum Beispiel das Ergebnis des Fehlschlags der internen IP
chandan@192 ~ % ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 Datenbytes
Anfrage-Timeout für icmp_seq 0
Anfrage-Timeout für icmp_seq 1
Wenn der Endpunkt IPv6 unterstützt, können Sie den Befehl ping6
wie folgt verwenden
chandan@192 ~ % ping6 geekflare.com
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
Schlussfolgerung
telnet wird in der neuesten Linux-Version nicht mehr verwendet. Dank der oben genannten telnet-Alternative
Wenn Sie neu in Linux sind und etwas lernen möchten, sollten Sie sich diesen Udemy-Kurs ansehen.