这是我设置界面时的命令:
sudo ip tuntap add dev router0 mod tun
sudo ip addr add 10.0.0.138/24 dev router0
sudo ip link set dev router0 up
以下是输出ip addr show dev router0
8: router0: <NO-CARRIER,POINTOPOINT,MULTICAST,NOARP,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 500
link/none
inet 10.0.0.138/24 scope global router0
valid_lft forever preferred_lft forever
当我尝试10.0.0.138
使用 tshark via 在接口上 ping 监听时sudo tshark -i router0
,什么也没有发生。
这是我的 ping10.0.0.138
输出:
PING 10.0.0.138 (10.0.0.138) 56(84) bytes of data.
64 bytes from 10.0.0.138: icmp_seq=1 ttl=64 time=0.063 ms
64 bytes from 10.0.0.138: icmp_seq=2 ttl=64 time=0.058 ms
这是我的sudo tshark -i router0
输出:
Capturing on 'router0'
什么都没发生
答案1
因为 ping 实际上并没有到达物理设备,因此tshark
无法接入该设备来监听数据包。
当您将地址添加到计算机的任何接口时,它会在表中创建一个特殊路由local
(检查您的sudo ip route show table local
)。会有一些local
路由。任何与本地路由的通信都旨在跳过多层网络堆栈以提高效率。您的数据包应该出现在接口上lo
,因此要查看它们,您必须运行sudo tshark -i lo
。