我有一台运行 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 建立隧道。