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