必须设置哪些路由(在 Linux 中)才能允许通过给定接口访问 Internet,而无需将其设置为默认值?

必须设置哪些路由(在 Linux 中)才能允许通过给定接口访问 Internet,而无需将其设置为默认值?

我正在尝试解决有关路由和 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 ipip 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一切正常。就这样吧,朋友们。

相关内容