tcpdump
これを行うことができ、ほとんどどこでも利用できます:
tcpdump -n -i enp0s25 icmp
enp0s25
ですべての着信および発信 ICMP パケットをダンプします .
ICMP エコー リクエストのみを表示するには:
tcpdump -n -i enp0s25 "icmp[0] == 8"
(-n
DNS ルックアップを回避します。これにより、パケット レポートが遅延し、独自の不要なトラフィックが発生する可能性があります。)
これにより、他のマシンからパケットを受信しているかどうかを確認できます (たとえば、ping
それ)、問題はリターン パスにあるか、直接到着しない場合です。
@Stephen Kitt の提案とは別に、 tcpdump
を実行できます 一方向のみでパケットをフィルタリングするには:
# see if the icmp request exits the interface
tcpdump -nQ out 'icmp'
tshark
は、使用できるもう 1 つの便利なツールであり、root として実行する必要はありません:
tshark -nf "icmp && (icmp[icmptype] == icmp-echo)"
出力を解析できる別のパケットキャプチャ
netstat -s
これは、各ネットワーク ソケットの統計を出力します。例は次のようになります:
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