我想通过特定的网络接口(interface)发送数据包(icmp 或其他),绕过路由表。
上下文:我通过多个接口(interface)连接到各种端点。如果我向他们添加路由,他们中的一些人能够将我的流量路由到互联网。 我不想触及路由表(因为它是一个全局系统功能,并且出于速度原因我正在并行测试设备)。
最初,我认为一个简单的 ping -I DEVICE -r ANY_IP_ONINTERNET
就可以解决问题。但它没有:数据包没有像我预期的那样发送到所选设备并且命令失败......另一端的 tcpdump
没有捕获任何数据包:数据包不尽管我有明确的命令,但似乎甚至首先被发送到界面。
当我在 ping 之前添加路由时,一切都按预期进行。但我想避免这种情况...然后,不再需要 -I DEVICE -r
。
- 有人可以向我解释为什么它不起作用吗?,以及
- 在什么情况下使用
-I DEVICE
或-r
确实有效且有用?
注意:我正在使用带有 tapX
和 tunX
设备的不同 VPN 对此进行测试。
编辑: 我尝试结合使用/不使用 -r
并使用 -I DEVICE
或 -I IP_ADDR_DEVICE
.没有更多的成功。
最佳答案
我建议将选项 -I
与您设备的 IP 地址一起使用。
关于linux - 通过网络接口(interface)发送数据包(icmp 或其他),绕过路由表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35618245/