通过 VPN 接口路由互联网流量

通过 VPN 接口路由互联网流量

我有一个 wifi 加密狗,其中有三个接口wlan0(默认路由)、uvpn0(VPN 接口)和usb0(主机和加密狗之间的接口)。

usb0      Link encap:Ethernet  HWaddr DA:CE:84:EA:A3:E3  
          inet addr:10.0.0.1  Bcast:0.0.0.0  Mask:255.255.255.0
          inet6 addr: fe80::d8ce:84ff:feea:a3e3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:49190 errors:0 dropped:0 overruns:0 frame:0
          TX packets:123259 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:8718640 (8.3 MiB)  TX bytes:150323744 (143.3 MiB)

uvpn0     Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.87.0.3  P-t-P:10.87.0.3  Mask:255.255.0.0
          UP POINTOPOINT RUNNING  MTU:1420  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:368 (368.0 B)  TX bytes:1552 (1.5 KiB)

wlan0     Link encap:Ethernet  HWaddr D0:17:69:EC:A2:E4  
          inet addr:10.117.176.210  Bcast:10.117.176.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:121589 errors:0 dropped:0 overruns:0 frame:0
          TX packets:43659 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:143066201 (136.4 MiB)  TX bytes:6608011 (6.3 MiB)

目前,互联网流量通过wlan0接口。我希望互联网流量通过 VPN 服务器10.87.0.1。我尝试了以下方法

  1. 通过添加以下命令更改默认路由
ip route add default via 10.87.0.1 dev uvpn0

当我添加上述命令时,我无法从加密狗 ping 通 VPN 服务器。

  1. 我还添加了 IP 规则
iptables -t nat -A POSTROUTING -s 10.117.176.0/24 -o uvpn0 -j MASQUERADE

我在这里遗漏了什么?

答案1

您需要专门为 VPN 对等方添加一条路由,否则您这边将开始在隧道内部为隧道路由 VPN 包。

ip route add v1.v2.v3.v4 via 10.117.176.w4 dev wlan0

其中 v1.v2.v3.v4 是 vpn-server 的公共 ip 地址,10.117.176.w4 是 wlan0 子网的 gw 地址。

我通常做的另一个巧妙的“技巧”是不为隧道添加默认路由,因为它与现有的默认路由“冲突”(需要具有更低的度量),而是保留现有的默认路由并添加两条路由:

ip route add 0.0.0.0/1 via 10.87.0.1 dev uvpn0
ip route add 128.0.0.0/1 via 10.87.0.1 dev uvpn0

由于这些路由比默认值 (0.0.0.0/0) 更窄,因此只要 uvpn0 处于开启状态,它们就会优先。当您关闭 uvpn0 时,这些路由也会消失,您将回到正常的默认路由,而无需更改任何路由的指标。

相关内容