Ist es möglich, eine Adresse zu pingen: port?

Ich interessiere mich nicht für Netzwerke und habe die folgende Frage zum Linux-Befehl ping.

Kann ich nur eine Adresse anpingen? Beispiel:

miner@raspberrypi ~ $ ping onofri.org
PING onofri.org (67.222.36.105) 56(84) bytes of data.
64 bytes from onofri.org (67.222.36.105): icmp_req=1 ttl=47 time=202 ms
64 bytes from onofri.org (67.222.36.105): icmp_req=2 ttl=47 time=206 ms
64 bytes from onofri.org (67.222.36.105): icmp_req=3 ttl=47 time=215 ms

Oder kann ich auch eine Adresse anpingen: port, zum Beispiel: onofri. org:80?

Wenn ich dieses versuche, funktioniert es nicht:

miner@raspberrypi ~ $ ping onofri.org:80
ping: unknown host onofri.org:80

Ist es möglich, etwas wie address:port zu pingen? Wenn es möglich ist, warum funktioniert das, was ich versucht habe, nicht?

Author: BenjiWiebe, 2014-06-16

11 answers

Sie können Paping verwenden, einen plattformübergreifenden TCP-Port-Test, der die Funktionalität von Ping (Port Ping) emuliert

(siehe auch Github as code.google.com abgeschrieben wurde)

paping -p 80 google.com
 24
Author: kxmp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-11-23 23:50:11

Ports sind ein Konzept von UDP und TCP. Ping-Nachrichten werden technisch bezeichnet als ICMP Echo Anfrage und ICMP Echo Antwort welche sind Teil von ICMP. ICMP, TCP und UDP sind "Geschwister"; Sie basieren nicht aufeinander, sondern sind drei separate Protokolle, die über IP laufen.

Daher können Sie nicht ping einen Port. Was Sie tun können, ist einen Port-Scanner wie nmap zu verwenden.

nmap -p 80 onofri.org

Sie können auch telnet onofri.org 80, wie in einer der anderen Antworten vorgeschlagen (Es wird ein Fehler ausgegeben, wenn der Port geschlossen oder gefiltert wird).

 320
Author: BenjiWiebe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-06-17 16:38:10

Ich verwende Telnet, da es in viele Plattformen ohne zusätzliche Downloads integriert ist.

Verwenden Sie einfach den Telnet-Befehl, um eine Verbindung zu dem Port herzustellen, den Sie testen möchten. Wenn Sie die folgende Nachricht oder eine Nachricht 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 eine Verbindung herstellen, können Sie einen Befehl eingeben (z. B.HTTP/FTP GET) und die Antwort und Ausgabe im Terminal beobachten. Dies ist sehr nützlich zum Testen des Dienstes selbst werden Ihnen Fehlerinformationen angezeigt, die an den Client gesendet werden, z. B. HTTP 500-Fehler.

Wenn Sie die 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
 90
Author: Frank Thomas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-06-17 19:42:55

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 geöffnet oder geschlossen ist. Das Flag-z bewirkt, dass netcat beendet wird, sobald eine Verbindung besteht. Sie können dann die Exit-Codes durch $verwenden? 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

Zusätzlich 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 eine Traceroute tun über TCP statt nur ICMP. Dies kann jedoch übertrieben sein.

seufzer 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]
 50
Author: Falsenames,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-06-20 23:08:53

Ja, verwenden Sie dazu HPing:

$ sudo hping -S -p 80 google.com
HPING google.com (p5p1 77.237.27.37): S set, 40 headers + 0 data bytes
len=46 ip=77.237.27.37 ttl=58 id=25706 sport=80 flags=SA seq=0 win=29200 rtt=7.5 ms
len=46 ip=77.237.27.37 ttl=58 id=25707 sport=80 flags=SA seq=1 win=29200 rtt=7.4 ms
len=46 ip=77.237.27.37 ttl=58 id=25708 sport=80 flags=SA seq=2 win=29200 rtt=8.5 ms
len=46 ip=77.237.27.37 ttl=58 id=25709 sport=80 flags=SA seq=3 win=29200 rtt=7.8 ms
^C
--- google.com hping statistic ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 7.4/7.8/8.5 ms

Beachten Sie, dass Root-Rechte (oder SELinux-Funktionen) erforderlich sind, um rohe IP-Pakete zu erstellen, genau wie Ping (das höchstwahrscheinlich suid auf Ihrem System ist).

 49
Author: d33tah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-06-17 22:20:10

Sie könnten auch nping (Teil von nmap):

$ nping -p 80 localhost

Starting Nping 0.6.00 ( http://nmap.org/nping ) at 2014-06-23 11:57 CEST
SENT (0.0015s) Starting TCP Handshake > localhost:80 (127.0.0.1:80)
RECV (0.0016s) Handshake with localhost:80 (127.0.0.1:80) completed
SENT (1.0027s) Starting TCP Handshake > localhost:80 (127.0.0.1:80)
RECV (1.0027s) Handshake with localhost:80 (127.0.0.1:80) completed
SENT (2.0038s) Starting TCP Handshake > localhost:80 (127.0.0.1:80)
RECV (2.0039s) Handshake with localhost:80 (127.0.0.1:80) completed
SENT (3.0050s) Starting TCP Handshake > localhost:80 (127.0.0.1:80)
RECV (3.0050s) Handshake with localhost:80 (127.0.0.1:80) completed
SENT (4.0061s) Starting TCP Handshake > localhost:80 (127.0.0.1:80)
RECV (4.0062s) Handshake with localhost:80 (127.0.0.1:80) completed

Max rtt: 0.032ms | Min rtt: 0.008ms | Avg rtt: 0.012ms
TCP connection attempts: 5 | Successful connections: 5 | Failed: 0 (0.00%)
Tx time: 4.00575s | Tx bytes/s: 99.86 | Tx pkts/s: 1.25
Rx time: 4.00575s | Rx bytes/s: 49.93 | Rx pkts/s: 1.25
Nping done: 1 IP address pinged in 4.01 seconds
 20
Author: nyuszika7h,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-06-23 09:57:58

Sie können dies in der Shell mit Python als nicht so kurzen Liner tun:

$ portping() { python <<<"import socket; socket.setdefaulttimeout(1); socket.socket().connect(('$1', $2))" 2> /dev/null && echo OPEN || echo CLOSED; }
$ portping 8.8.8.8 54
CLOSED
$ portping 8.8.8.8 53
OPEN
 9
Author: AXE Labs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-01-07 17:41:21

Nur als Referenz, wollte einen Beitrag von Vivek Gite teilen: https://www.cyberciti.biz/faq/ping-test-a-specific-port-of-machine-ip-address-using-linux-unix/#comment-920398

Er listet verschiedene Wege auf, von denen einige bereits hier veröffentlicht sind. Aber das Überraschendste für mich war nichts anderes als bash:

(echo >/dev/tcp/{host}/{port}) &>/dev/null && echo "opened" || echo "closed"
(echo >/dev/udp/{host}/{port}) &>/dev/null && echo "opened" || echo "closed"
(echo >/dev/tcp/www.cyberciti.biz/22) &>/dev/null && echo "Opened 22" || echo "Closed 22"
(echo >/dev/tcp/www.cyberciti.biz/443) &>/dev/null && echo "Opened 443" || echo "Closed 443"

Oder eine super einfache Version: Schauen Sie sich nur die Ausgabe des folgenden Befehlsmusters an:

echo >/dev/{tcp|udp}/{host}/{port}

Nützlich bei der Arbeit mit zufälligen docker-Containern.

 8
Author: Jacek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-06-06 13:07:40

Es ist einfach mit nmap

Beispiele:

#sintaxis
nmap -p [port] hostName
#first is command, after scan ports, type port - port or range ports, and ip or name of website...

## Scan port 80
nmap -p 80 onofri.org

## Scan TCP port 80
nmap -p T:80 onofri.org

## Scan UDP port 53
nmap -p U:53 onofri.org

## Scan two ports ##
nmap -p 80,443 onofri.org

## Scan port ranges ##
nmap -p 80-200 onofri.org

## Combine all options ##
nmap -p U:53,111,137,T:21-25,80,139,8080 onofri.org
nmap -p U:53,111,137,T:21-25,80,139,8080 server1.cyberciti.biz
nmap -v -sU -sT -p U:53,111,137,T:21-25,80,139,8080 onofri.org

## Scan all ports with * wildcard ##
nmap -p "*" 192.168.1.1

## Scan top ports i.e. scan $number most common ports ##
nmap --top-ports 5 onofri.org
nmap --top-ports 10 onofri.org

Für weitere Informationen siehe diese:

Geben Sie die folgende Befehlszeile ein: man nmap

Http://www.cyberciti.biz/networking/nmap-command-examples-tutorials/ http://www.tecmint.com/nmap-command-examples/

 3
Author: DarckBlezzer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-07-25 18:26:01

Ich füge hier das Werkzeug watch hinzu:

watch nmap -p22,80 google.com

Every 2,0s: nmap -p22,80 google.com   Mon Jun 15 16:46:33 2015

Starting Nmap 6.40 ( http://nmap.org ) at 2015-06-15 16:46 NOVT
Nmap scan report for google.com (127.0.0.1)
Host is up (0.0012s latency).
rDNS record for 127.0.0.1: google.com
PORT     STATE  SERVICE
22/tcp open   ssh
80/tcp closed http

Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds
 2
Author: vp_arth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-06-15 10:48:37

Versuchen Sie, die Kommunikation zu testen oder eine Antwort von Port 80 auf diesem Knoten zu erhalten? PING versucht, die Kommunikation zu einem bestimmten Host über ICMP herzustellen, was nichts mit Ports zu tun hat.

Versuche stattdessen http://nmap.org/ um die Portinformationen zu überprüfen und die Kommunikation zu testen:

nmap -v -p 80 onofri.org
 1
Author: Quijote Shin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-12-27 21:50:56