问题描述
有没有办法知道谁在我的网络上 ping 我的电脑?是否可以监控所有 ICMP 数据包?我怎样才能做到这一点?
最佳方法
是的,使用 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 台 pc win7 10.1.1.8 , Ubuntu 10.1.1.57 它将监控到达的数据包:
在 Ubuntu 上:
参考:nixCraft
次佳方法
很好的锻炼@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