tcpdump会默认开启网卡的混杂模式
- 记录一下之前做的简陋程序,要读取网卡上收到的报文,使用的raw_socket。
- 发现即使在宿主机上用wireshark,可以看到报文已到达与虚拟机网卡(比如ens9)相连的网桥上,而且在虚拟机内部使用
tcpdump -i ens9
也可以看到报文,但是程序却无法在不使用tcpdump
的时候获取到报文。 - 上网冲浪以后发现tcpdump会开启网卡的混杂模式,因为发到网卡上的报文目的mac不是它自身,所以只有开启了混杂模式的时候才能收取。
- 在linux中,可以使用
ifconfig ens9 promisc
来开启网卡ens9的混杂模式,使用ifconfig ens9 -promisc
来关闭混杂模式