我已经创build了一个隧道设备使用
ip tuntap add dev tun0模式tun用户0组0
然后我给它分配一个IP地址192.168.0.1/22
ifconfig tun0 192.168.0.1networking掩码255.255.252.0
在我的以太网设备eth0上,我从IP地址范围192.168.1.2-192.168.1.5的机器接收数据包。 我希望这些数据包在隧道设备上转发。 我不希望在以太网和隧道设备之间build立一个桥梁。 因此,我在路由表中添加了路由条目,如下所示。
ip规则添加从192.168.1.0/24查找myinternal
IP路由添加默认通过192.168.0.1 dev tun0表myinternal
我刷新(删除)所有IP表条目。 有两个条目,但是
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
当我在tun0上执行tcpdump时,我无法看到来自eth0的数据包。 但是,当我在eth0上执行tcpdump时,我可以看到数据包。 我想知道如何转发/捕获tun0上的这些数据包。 从tun0开始,我稍后想要处理这些数据包,并从我的应用程序回复它们,如果需要的话,将它们传递给另一个接口。 我不能使用eth0来进行我的活动。
我已经使用systl为ipv4启用转发。
cat / proc / sys / net / ipv4 / ip_forward
1
此外,我的主路由表中没有默认路由条目。