如何监控谁在 ping 我?

如何监控谁在 ping 我?

有没有办法知道谁在网络上 ping 我的 PC?是否有可能监控所有 ICMP 数据包?我该怎么做?

答案1

是的,可以使用tcpdump,它是 Linux 上最强大和使用最广泛的命令行数据包嗅探器(包分析器)工具。

在您想要监控的计算机的终端应用程序中:

sudo tcpdump -i ethX icmp and icmp[icmptype]=icmp-echo

选项:

-n avoid a (potentially slow) reverse DNS query
−i interface
icmp[icmptype]=icmp-echo    To print all ICMP packets that are echo requests/replies

它将开始监听ethX并等待数据包到达。

例如:我有 2 台 win710.1.1.8, 乌班图10.1.1.57这将监视到达的数据包:

在此处输入图片描述

在 Ubuntu 上:

在此处输入图片描述

参考 :nixCraft

答案2

很好的锻炼@nux我喜欢它。

我还想添加我使用的技巧,通过使用avahi工具(可从 安装Synaptic)来查找谁在 ping 我。

当我在终端中运行时avahi-browse -rat,它会自动编译完整的连接列表,例如:

hostname = [xxx-xxx.local]
address = [xxx::x:xxx:xxx:xxx:xxx] physical
address = [xx.xx.xxx.xx] ipv4 or ipv6
port = [xxx]
txt = [xxx]

例如,当我运行此命令时,我始终可以看到我的 Internet 提供商在我的会话期间何时 ping 我。

要查看 avahi 可以做的一切,请运行:

avahi-browse --help 

答案3

只需安装此包即可(如果您没有的话):

sudo apt-get install iptables-persistent

然后将此命令添加到/etc/iptables/rules.v4文件中:

-A INPUT -p icmp --icmp-type echo-request -j LOG --log-prefix "LOG_IPTABLES_PING_REQUEST: "

要检查谁 ping 了你,只需检查日志文件:

grep 'LOG_IPTABLES_PING_REQUEST: ' /var/log/messages

您还可以使用监控应用程序,例如Wireshark

相关内容