针对 VPN 使用的自定义路由规则

针对 VPN 使用的自定义路由规则

我有一台运行 Xubuntu 的 PC。我购买了一台 VPS 服务器并用它设置了 PPTP VPN。我想实现以下目标:对于像 google、twitter 等服务,我想使用 VPN 连接。否则,我想让流量通过 eth0。这是否可以实现?如果可以,有什么技巧可以让它正常工作?

eth0      Link encap:Ethernet  HWaddr ac:22:0b:7f:fa:cf  
          inet addr:192.168.1.7  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::ae22:bff:fe7f:facf/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:112440 errors:0 dropped:0 overruns:0 frame:0
          TX packets:93253 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:108874194 (108.8 MB)  TX bytes:18286239 (18.2 MB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:21017 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21017 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2727229 (2.7 MB)  TX bytes:2727229 (2.7 MB)

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:10.0.0.100  P-t-P:10.0.0.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1400  Metric:1
          RX packets:2707 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2589 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:2097695 (2.0 MB)  TX bytes:716566 (716.5 KB)

答案1

您需要为想要通过 VPN 的服务设置静态路由(假设您在 VPN 服务器上启用了 IP 转发并配置了 NAT)。

要在 Linux 上添加路由,请使用以下语法:

route add -net 192.168.1.0/24 gw 10.0.0.1

192.168.1.0您要路由的网络号在哪里,/24网络掩码在哪里。因此,例如对于 Facebook,您必须添加:

route add -net 31.13.64.0/19 gw 10.0.0.1
route add -net 31.13.64.0/24 gw 10.0.0.1
route add -net 31.13.65.0/24 gw 10.0.0.1
route add -net 31.13.66.0/24 gw 10.0.0.1
route add -net 31.13.69.0/24 gw 10.0.0.1
route add -net 31.13.70.0/24 gw 10.0.0.1
route add -net 31.13.71.0/24 gw 10.0.0.1
route add -net 31.13.73.0/24 gw 10.0.0.1
route add -net 31.13.74.0/24 gw 10.0.0.1
route add -net 31.13.75.0/24 gw 10.0.0.1
route add -net 31.13.76.0/24 gw 10.0.0.1
route add -net 31.13.77.0/24 gw 10.0.0.1
route add -net 31.13.78.0/24 gw 10.0.0.1
route add -net 31.13.82.0/24 gw 10.0.0.1
route add -net 31.13.83.0/24 gw 10.0.0.1
route add -net 31.13.84.0/24 gw 10.0.0.1
route add -net 31.13.86.0/24 gw 10.0.0.1
route add -net 31.13.90.0/24 gw 10.0.0.1
route add -net 31.13.91.0/24 gw 10.0.0.1
route add -net 31.13.93.0/24 gw 10.0.0.1
route add -net 31.13.96.0/19 gw 10.0.0.1
route add -net 66.220.144.0/21 gw 10.0.0.1
route add -net 66.220.152.0/21 gw 10.0.0.1
route add -net 69.63.176.0/21 gw 10.0.0.1
route add -net 69.63.184.0/21 gw 10.0.0.1
route add -net 69.171.224.0/20 gw 10.0.0.1
route add -net 69.171.239.0/24 gw 10.0.0.1
route add -net 69.171.240.0/20 gw 10.0.0.1
route add -net 69.171.255.0/24 gw 10.0.0.1
route add -net 173.252.64.0/19 gw 10.0.0.1
route add -net 173.252.96.0/19 gw 10.0.0.1
route add -net 179.60.192.0/24 gw 10.0.0.1

对于您想要通过隧道路由的所有服务,您必须添加这些静态路由。要查找特定服务的所有网络,最简单的方法是找到 AS 编号并查找相关网络http://www.cidr-report.org/cgi-bin/as-report/as-report?as=AS32934&view=2.0&v=4&filter=drop,替换AS32934为 AS 编号。

由于这项工作繁重,您可能需要考虑使用 VPN 服务器作为默认网关(从而通过隧道路由所有流量),并为您要使用的流量设置静态路由想要通过 VPN 建立隧道。

相关内容