rɑːdʒɑ Asked: 2012-11-15 01:19:22 +0800 CST2012-11-15 01:19:22 +0800 CST 2012-11-15 01:19:22 +0800 CST 如何知道谁 ping 我的电脑?[复制] 772 可能重复: 我如何知道我的计算机何时被 ping? 我正在使用 Linux。我想知道如何判断谁在 ping 我的计算机。我使用 Windows 看到过类似的问题,但我不确定它是否适用于我。 linux 2 个回答 Voted Best Answer Charles 2012-11-15T01:23:33+08:002012-11-15T01:23:33+08:00 看起来您在问如何查看谁在对您执行 ping 操作,对吗?一种快速而肮脏的方法是使用tcpdump简单地监视所有传入的 ICMP 回显请求: sudo tcpdump -i ethX icmp and icmp[icmptype]=icmp-echo ethX您有兴趣收听的适配器的名称在哪里。 请注意,tcpdump 默认会解析主机名,因此您可能需要添加-n选项来获取 IP。 (顺便说一句,这与您链接的问题中给出的说明基本相同,尽管它们适用于 Wireshark,一个相关但独立的工具。) user9517 2012-11-15T01:26:44+08:002012-11-15T01:26:44+08:00 你可以像这样使用 tcpdump tcpdump ip proto \\icmp 你得到这种输出 09:25:22.650727 IP 192.168.1.69 > centos6.lan:ICMP 回显请求,id 1,seq 1,长度 40 09:25:22.650816 IP centos6.lan > 192.168.1.69:ICMP 回显回复,id 1,seq 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
看起来您在问如何查看谁在对您执行 ping 操作,对吗?一种快速而肮脏的方法是使用
tcpdump
简单地监视所有传入的 ICMP 回显请求:ethX
您有兴趣收听的适配器的名称在哪里。请注意,tcpdump 默认会解析主机名,因此您可能需要添加
-n
选项来获取 IP。(顺便说一句,这与您链接的问题中给出的说明基本相同,尽管它们适用于 Wireshark,一个相关但独立的工具。)
你可以像这样使用 tcpdump
你得到这种输出
你也可以使用 iptables
并在 /var/log/messages 中获取这样的消息(至少在 CentOS 上)