小编Dav*_*her的帖子

如何从虚拟 tun0 设备调试路由问题?

我有一个程序(由我编写),它创建一个 tun0 设备并设置一个路由,以便可以从此设备读取发往 172.16.1.0/24 子网的数据包。我现在正试图向另一个方向前进,并将数据包写入 tun 设备,该设备可以通过

我的第一个努力,只是更改源地址和目标地址以及端口工作正常。我可以运行以下命令:

nc -u -s MY_IP -p 4001 172.16.1.3 4000
Run Code Online (Sandbox Code Playgroud)

我的输入得到了回应。

我的第二个努力,实际上是从头开始生成输出数据包,目前正在失败。

我可以运行tcpdump -i tun0并查看我编写的数据包:

11:30:14.433489 IP (tos 0x0, ttl 32, id 0, offset 0, flags [none], proto UDP (17), length 56) 172.16.1.2.54167 > Ubuntu-dbacher.local.4011: [udp sum ok] UDP, length 28
Run Code Online (Sandbox Code Playgroud)

但是我的听众 ( nc -l -u -s MY_IP -p 4011) 什么也没看到。

我怀疑有什么问题阻止了 tun0 设备将其数据包路由出去,但我不知道如何了解数据包被丢弃的位置。

$ 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:172.16.1.1  P-t-P:172.16.1.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST …
Run Code Online (Sandbox Code Playgroud)

linux routing tun packet-crafting

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

linux ×1

packet-crafting ×1

routing ×1

tun ×1