問題描述
有沒有辦法知道誰在我的網絡上 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