tcpdump
kann dies tun und ist so ziemlich überall verfügbar:
tcpdump -n -i enp0s25 icmp
wird alle eingehenden und ausgehenden ICMP-Pakete auf enp0s25
ausgeben .
So sehen Sie nur ICMP-Echo-Anforderungen:
tcpdump -n -i enp0s25 "icmp[0] == 8"
(-n
vermeidet DNS-Lookups, die das Melden von Paketen verzögern und eigenen unerwünschten Datenverkehr einführen können.)
Auf diese Weise können Sie feststellen, ob er die Pakete von der anderen Maschine empfängt (von der Sie z. B. ping
it), also liegt das Problem beim Rückweg, oder wenn sie nicht direkt ankommen.
Abgesehen von @Stephen Kitts Vorschlag können Sie tcpdump
ausführen um ein Paket nur in eine Richtung zu filtern:
# see if the icmp request exits the interface
tcpdump -nQ out 'icmp'
tshark
ist ein weiteres nützliches Tool, das Sie verwenden können und das Sie nicht als root ausführen müssen:
tshark -nf "icmp && (icmp[icmptype] == icmp-echo)"
Abgesehen von der Paketerfassung können Sie die Ausgabe von
parsen
netstat -s
die eine Statistik für jeden Netzwerk-Socket ausgibt, wäre ein Beispiel wie folgt:
netstat -s | grep -Eo "^[[:space:]]+[[:digit:]]+ ICMP messages sent$"; 1>/dev/null ping -c1 -w1 host; !-1
28 ICMP messages sent
30 ICMP messages sent