答案1
看起来你问的是如何查看谁在 ping 你,对吧?一种快速而肮脏的方法是tcpdump
简单地监视所有传入的 ICMP 回显请求:
sudo tcpdump -i ethX icmp and icmp[icmptype]=icmp-echo
ethX
您感兴趣的适配器的名称在哪里?
请注意,tcpdump 将默认解析主机名,因此您可能需要添加-n
获取 IP 的选项。
(顺便说一句,这基本上与您链接的问题中给出的说明相同,尽管它们针对的是 Wireshark,一个相关但独立的工具。)
答案2
你可以像这样使用 tcpdump
tcpdump ip proto \\icmp
你会得到这样的输出
09:25:22.650727 IP 192.168.1.69 > centos6.lan:ICMP 回显请求,ID 1,序号 1,长度 40 09:25:22.650816 IP centos6.lan > 192.168.1.69:ICMP 回显答复,ID 1,序号 1,长度 40
你也可以使用 iptables
iptables -I INPUT -p icmp --icmp-type 8 -m state --state NEW,ESTABLISHED,RELATED -j LOG --log-level=1 --log-prefix "Ping Request "
并在 /var/log/messages 中获取类似这样的消息(至少在 CentOS 上)
11 月 14 日 09:43:35 centos6 内核:Ping 请求 IN=eth0 OUT=MAC=00:0c:29:d2:2c:38:00:0c:29:fe:8e:bb:08:00 SRC=192.168.1.69 DST=192.168.254.188 LEN=60 TOS=0x00 PREC=0x00 TTL=126 ID=6551 PROTO=ICMP TYPE=8 CODE=0 ID=1 SEQ=37