终端看不到来自 TUN 端口的 ping 消息

Terminal not seeing ping messages from TUN port

你好,我正在做一个项目,我有一个问题涉及 ping 命令以及它们如何通过网络 TUN 端口进行交互。

基本上我发送的 ping 请求被路由到我的 TUN 端口,回复通过 VPN 发送到 TUN 端口。没有其他互联网接口(即没有 wifi/ethernet)。使用 wireshark 和 tcpdump 我可以看到在 TUN0 端口上看到了正确的回复消息,但终端看不到回复,而是显示 100% 的丢弃率。问题似乎是 TUN0 端口没有正确链接回内核? (总的来说,我对 IP 路由很陌生)。

TUN的IP地址是10.0.0.73,我正在ping一台IP地址为10.0.0.28的电脑

Bellow 是 TUN0 上 tcpdump 的一个片段,这是一个请求和回复,对于我未经训练的眼睛应该有效:

23:08:52.257566 IP (tos 0x0, ttl 64, id 11185, offset 0, flags [DF], proto ICMP (1), length 84)
    10.0.0.73 > 10.0.0.28: ICMP echo request, id 24667, seq 2, length 64

23:09:11.508002 IP (tos 0x0, ttl 64, id 13315, offset 0, flags [none], proto ICMP (1), length 84)
    10.0.0.28 > 10.0.0.73: ICMP echo reply, id 24667, seq 2, length 64

根据其他帖子,我检查了我的 ip 路由列表,输出是这样的

pi@raspberrypi:~$ sudo ip route list
10.0.0.0/24 dev tun0 proto kernel scope link src 10.0.0.73

ifconfig 是这样的:

pi@raspberrypi:~$ ifconfig tun0
tun0    Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
        inet addr:10.0.0.73 P-t-P 10.0.0.73  Mask:255.255.255.0
        ...

原来问题是回复的显示顺序不正确并且延迟很长,当我修复网络连接时这个问题消失了,没有更改 iptables 中的任何配置