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

Eine der häufigsten Aufgaben von sysadmin besteht darin, die Konnektivität zur Fehlerbehebung zu überprüfen Netzwerkprobleme. Es kann sein, dass die Anwendung keine Verbindung zum Backend-Dienst herstellen kann, keine Daten von einer externen URL abrufen, überprüfen kann, ob der Datenfluss 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 und Servern mit der IP eines anderen Netzwerkgeräts. Die Syntax für den Befehl ist einfach.

telnet $destinationIP $PORT

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

telnet 10.0.0.1 8080

Wenn beim Verbinden keine Probleme auftreten, sollte die verbundene Nachricht angezeigt werden.

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

Hinweis: Wenn Sie beim Ausführen von Telnet einen nicht gefundenen Befehl erhalten, müssen Sie Installieren Sie Telnet wie hier erklärt.

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

ncat or nc

Ncat (auch bekannt als 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 auf IPv4 als auch auf 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 des 443-Ports auf geekflare.com.

[root@geekflare-lab ~]# nc -vz geekflare.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.
[root@geekflare-lab ~]#

Wie bereits erwähnt, können Sie auch verwenden nc um die Verbindung zu binden Hören Sie auf einen bestimmten Port. Dies kann nützlich sein, wenn Sie keine tatsächlichen Dienste ausführen, aber sicherstellen möchten, dass Konnektivität besteht.

So hören Sie einen Port ab:

nc -l $PORTNUMBER

Es bindet den Port an eine bestimmte Nummer.

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

wget

wget ist ein nützlicher Befehl zum Herunterladen/Testen von HTTP, HTTPS und FTP. Wenn Sie als Web-Ingenieur arbeiten oder sich häufig mit Web-bezogenen Themen beschäftigen, dann wget ist dein Freund. Das Testen mit wget ist unkompliziert.

wget $URL

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

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

[root@geekflare-lab ~]#

Wenn "Verbunden" angezeigt wird, liegt kein Verbindungsproblem vor.

Sehen Sie sich dies an, um einige der am häufigsten verwendeten zu sehen wget Befehlsbeispiele.

curl

A curl ist ein Mehrzweckwerkzeug.

Wissen Sie, dass Sie mit Curl zu einem Port telneten können?

Ja, jetzt weißt du es.

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

Das Folgende ist ein Arbeitsbeispiel.

[root@geekflare-lab ~]# 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 Problem mit dem Überwachungsport oder der Firewall gibt, werden Sie sehen, wie Sie versuchen ...

[root@geekflare-lab ~]# 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. Dies wird oft als Sicherheitstool angesehen, nmap können Sie eine einzelne IP/Port oder im Bereich testen.

So testen Sie einen einzelnen Port

nmap -p $PORT $IP

Ein Beispiel zum Testen von Port 443 auf siterelic.com

[root@geekflare-lab ~]# 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
[root@geekflare-lab ~]#

Sehen Sie sich die Statusspalte an. Wenn Sie geöffnet sehen, ist die Verbindung in Ordnung. Und wenn der Status gefiltert wird, bedeutet dies, dass keine Konnektivität besteht.

Ping

Einer der am häufigsten verwendeten Befehle besteht darin, zu überprüfen, ob ein Remote-Host auf ICMP ECHO_REQUEST antwortet oder nicht. Beachten Sie, dass dies möglicherweise keine genauen Ergebnisse liefert, wenn ICMP im Remote-Netzwerk blockiert ist Firewall. Angenommen, dies ist nicht der Fall, können Sie wie folgt an einen IPv4- oder IPv4-Netzwerkendpunkt pingen.

ping $ipaddress
ping $url

Zum Beispiel das Erfolgsergebnis von geekflare.com

chandan@192 ~ % ping geekflare.com
PING geekflare.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

Zum Beispiel ein Fehlerergebnis der internen IP.

chandan@192 ~ % 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 die ping6 Befehl wie unten.

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 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 den Online-Ping-Tool.

Fazit

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

Wenn Sie Linux noch nicht kennen und lernen möchten, lesen Sie dies Udemy natürlich.