首先:我知道可以用SSH轻松完成,但我想学习如何路由。
我想通过它们进入我的系统的同一个tun0接口将数据包路由回去。
我可以做单路线。
这工作:
sudo ip route add 74.52.23.120 metric 2 via 10.8.0.1
但我不得不手动添加他们每个请求下来的pipe道
我已经服用了蓝色药丸,并遵循http://lartc.org/howto/lartc.netfilter.html :
Netfilter&iproute – 标记包的教程
但它的目标是根据标记redirectOUTGOING数据包
我想要的是通过tun0进入的数据包不会被丢弃,这就是现在正在发生的事情,运行scappy或类似的接收数据包似乎没有收到任何东西。
在wireshark中观察,我看到tun0接口上的初始SYN数据包,但是就像上面显示的那样,没有静态路由。
我疯了吗?
显然,你有一些通过你的VPN的转发configuration,并希望阻止通过VPN到达你的主机的stream量分离的路由path。 在这种情况下,您的请求数据包可能不会被丢弃(至less不是您的主机),回复只是通过另一个接口(大概是您的默认路由指向的那个)发送出去的。
在这种情况下你肯定不需要dynamic的创build/拆卸路由。 通过使用netfilter来标记数据包,你已经走上了正确的轨道。 与LARTC指南中给出的示例的主要区别在于,您需要使用CONNMARK而不是MARK目标 – 它将标记属于与定义标记的连接的传入和传出数据包 。 就像iptables -t mangle -A INPUT -i tun0 -j CONNMARK --set-mark 555完成后,你可以使用ip rule add fwmark 555 lookup <your_secondary_routing_table>来获得原始请求进入路由的相同方式。您的设置与多个ISP的路由设置稍微相似,因此,阅读一些configuration示例应该会使您走上正确的轨道,如果您还不在那里。
顺便说一句,如果你让远程VPN端点在10.8.0.1只是伪装TCP / UDP连接请求到自己的IP地址,你可以更容易地达到类似的效果( iptables -t nat -A POSTROUTING -o tun0 -d <your_servers_address> -j MASQUERADE )。 这样,您将只需要一条静态路由 – 远程VPN端点,您将使用OpenVPN自动设置。