我在跑步
sudo tcpdump -i enp0s31f6 -n port 67 and port 68
在一个终端上运行
sudo dhclient -r
另外一个。
在此期间,我在第一个终端上看不到任何内容。
我做错了什么?
两个终端都在同一台机器上。我希望在同一台机器上嗅探 DHCP 通信,它确实做到了。
答案1
tcpdump
您没有看到任何内容,因为您的布尔逻辑 BPF 规则有错误。
它应该是:
sudo tcpdump -i enp0s31f6 -n port 67 or port 68
而不是像你正在做的那样:
sudo tcpdump -i enp0s31f6 -n port 67 and port 68
在第一条指令中,您正在监听端口 67 或端口 68(一个或另一个)。
在第二条指令中,您要求端口均为 67 和 68 的规则同时,因此看不到数据包。
答案2
68
您应该使用客户端上的端口( lsof -i :68
),命令应该是:
sudo tcpdump -i enp0s31f6 -n port 68
您可以使用dhcpdump
:dhcpdump -i enp0s31f6
。
man dhcpdump:
This command parses the output of tcpdump to display the dhcp-packets
for easier checking and debugging.