简介:我想将从特定IP发起的流量路由到VPN
现有的答案:有几个问题及答案(1,2),它解决这一确切的问题,但他们没有为我工作。
细节:
设置在Debian 8上。我有一个OpenVPN连接10.8.8.134
(与远程对等10.8.8.133
),我想通过它来路由流量192.168.10.10
。
192.168.10.10
是手动创建的IP eth0
,它还通过DHCP接收address(192.168.0.107
)和默认路由(192.168.1.1
)。
我将OpenVPN设置为
- 拒绝来自服务器的路由(
--route-noexec
) - 删除OpenVPN添加的“假默认路由”(两个范围覆盖所有IPV4)
10.8.8.1/255.255.255.255
通过10.8.8.133
(指定的OpenVPN地址)添加路由到(OpenVPN服务器gw )
为了强制流量192.168.10.10
通过我尝试的VPN
ip route add 192.168.10.10 dev tun0
- 要么
ip route add 192.168.10.10 via 10.8.8.133
生成的路由表
root@debian-testing:~# ip route
default via 192.168.1.1 dev eth0
10.8.8.1 via 10.8.8.133 dev tun0
10.8.8.133 dev tun0 proto kernel scope link src 10.8.8.134
169.254.0.0/16 dev eth0 scope link metric 1000
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.107
192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.10
额外路由相当于route 192.168.10.10 255.255.255.255
在OpenVPN配置文件中使用。
在两种情况下运行
traceroute -s 192.168.10.10 www.google.com
将数据包发送到真正的默认网关:
root@debian-testing:~# traceroute -s 192.168.10.10 www.google.com
traceroute to www.google.com (173.194.112.20), 30 hops max, 60 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
如tcpdump
(和wireshark)所见
为什么这种路由不起作用?