我正在使用 sudo ip tuntap add dev 创建 tun 接口mod tun,但是当我 ping 它时它没有收到数据包?

我正在使用 sudo ip tuntap add dev 创建 tun 接口mod tun,但是当我 ping 它时它没有收到数据包?

这是我设置界面时的命令:

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

相关内容