Ports sind ein Konzept von UDP und TCP. Ping-Nachrichten werden technisch als ICMP Echo Request bezeichnet und ICMP Echo Reply die Teil von ICMP sind. ICMP, TCP und UDP sind „Geschwister“; Sie basieren nicht aufeinander, sondern sind drei separate Protokolle, die auf IP laufen.
Daher können Sie nicht ping
ein Hafen. Was Sie können verwenden Sie einen Port-Scanner wie nmap
.
nmap -p 80 onofri.org
Sie können auch telnet onofri.org 80
verwenden , wie in einer der anderen Antworten vorgeschlagen (Es wird ein Fehler ausgegeben, wenn der Port geschlossen oder gefiltert wird).
Ich verwende Telnet, da es ohne zusätzliche Downloads in viele Plattformen integriert ist.
Verwenden Sie einfach den Telnet-Befehl, um eine Verbindung zu dem Port herzustellen, den Sie testen möchten. Wenn Sie die folgende Meldung oder eine Meldung vom Dienst selbst erhalten, ist der Port aktiv.
Minty16 ~ $ telnet localhost 139
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Wenn Sie die Befehlssequenz für den Dienst kennen, mit dem Sie sich verbinden, können Sie einen Befehl eingeben (z. B. HTTP/FTP GET) und die Antwort und Ausgabe im Terminal beobachten. Dies ist sehr nützlich, um den Dienst selbst zu testen, da es Ihnen Fehlerinformationen anzeigt, die an den Client gesendet werden, wie z. B. HTTP 500-Fehler.
Wenn Sie eine Meldung erhalten, dass die Verbindung abgelehnt wurde, wird der Port geschlossen.
Minty16 ~ $ telnet localhost 5000
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
Sie können netcat verwenden, um eine Verbindung zu einem bestimmten Port herzustellen, um zu sehen, ob Sie eine Verbindung erhalten. Das Flag -v erhöht die Ausführlichkeit, um anzuzeigen, ob der Port offen oder geschlossen ist. Das Flag -z bewirkt, dass netcat beendet wird, sobald eine Verbindung besteht. Sie können dann die Exit-Codes über $? um zu sehen, ob die Verbindung hergestellt wurde oder nicht.
$ nc -zv localhost 22
localhost [127.0.0.1] 22 (ssh) open
$ echo $?
0
$ nc -zv localhost 23
localhost [127.0.0.1] 23 (telnet) : Connection refused
$ echo $?
1
Außerdem können Sie mtr mit dem Flag -T für TCP und dem Flag -P verwenden, um einen Port anzugeben. Dies wird etwas Ähnliches wie ein Traceroute über TCP statt nur ICMP tun. Dies kann jedoch übertrieben sein.
seufz Ich muss bearbeiten, um dieses Bit hinzuzufügen, da wir keinen Code in Kommentare einfügen können. Knoppix macht vielleicht etwas anderes mit seiner Version von netcat, aber das ist es, was ich von Linux Mint bekomme
$ date;nc -z -w 1 www.google.com 8000;date
Fri Jun 20 15:55:26 PDT 2014
Fri Jun 20 15:55:27 PDT 2014
$ date;nc -z -w 4 www.google.com 8000;date
Fri Jun 20 15:55:33 PDT 2014
Fri Jun 20 15:55:37 PDT 2014
$ nc -h
[v1.10-40]