我正在尝试解决有关路由和 OpenVPN 配置的任务。
设置连接后,我不希望它成为任何内容的默认路由,而是希望使用它的接口进行这种活动:curl --interface tun20 http://someaddress
。
但是,如果没有配置默认路由,主机系统似乎无法发送/接收数据包(我认为它无法从 VPN 接收它们,因为嗅探器以someaddress
某种方式接收了从未被数据继续传输的 TCP 连接尝试数据包)。
设置默认路由后,VPN 运行正常——已测试。
是否配置:
tun20 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.200.2.236 P-t-P:10.200.2.236 Mask:255.255.252.0
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:258 (258.0 B) TX bytes:0 (0.0 B)
使用服务器的默认路由:
路线-n:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.200.0.1 128.0.0.0 UG 0 0 0 tun20
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0
10.200.0.0 0.0.0.0 255.255.252.0 U 0 0 0 tun20
66.187.67.130 192.168.0.1 255.255.255.255 UGH 0 0 0 wlan0
128.0.0.0 10.200.0.1 128.0.0.0 UG 0 0 0 tun20
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
当默认的路由被route-nopull
指令丢弃时,我得到这个:
路线-n:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0
10.200.0.0 0.0.0.0 255.255.252.0 U 0 0 0 tun20
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
因此,我希望获得有关如何实现这一功能的路由/转发建议。
答案1
这是一次很好的学习经历。https://superuser.com/a/374566/49318,我发现了一个值得花一个小时阅读的链接man ip
:ip help
echo 11 mpdevtun7 >> /etc/iproute2/rt_tables
ip route add default via %yourIP% dev tun17 table mpdevtun7
ip rule add from %yourIP% lookup mpdevtun7 prio 1000
现在curl --interface tun7
一切正常。就这样吧,朋友们。