我有一个简单的mesh VPN (用Tinc实现),它包含我的个人笔记本电脑和带有公共IP的VPS。假设服务器的公共IP是1.2.3.4。膝上型计算机的私有地址是10.16.1.2,服务器的私有地址是10.16.0.2。
我想路由所有的流量从我的笔记本通过VPN,并使它退出VPS。我已经通过启用转发和伪装将服务器设置为网关,但我不知道如何在膝上型计算机上配置路由。
问题是笔记本电脑没有固定的本地子网。例如,有时它可能是我家路由器的192.168.0.0/24,也可能是我所在大学的172.16.0.0/12。
。
这就是我努力做到的:
# ip route
default via 192.168.0.1 dev wlan0
0.0.0.0/1 via 10.16.0.2 dev vpn
128.0.0.0/1 via 10.16.0.2 dev vpn
10.16.0.0/16 dev vpn proto kernel scope link src 10.16.1.2
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.133按照一些OpenVPN指南,我将整个互联网分成两个大的/1,这样它们就可以作为一种默认路由,而不更改实际的默认路由(default via 192.168.0.1 dev wlan0)。问题是,即使是发送到1.2.3.4的VPS的数据包也会被/1路由捕获,并且流量会被阻塞。
如果有可能写这样的东西:
ip route add 1.2.3.4/32 via default这会很好,但不要认为这是可能的。
我甚至尝试使用基于策略的路由和使用iptables标记数据包,但我没有运气。
发布于 2015-11-20 01:22:26
不知道你的实际VPS IP地址,我不能给你确切的命令,但基本上你需要分裂成更多的“互联网”,其中没有一个包括你的VPS。例如,如果您的VPS地址是255.255.255.255 (它显然不是),那么您将有
请注意,这涵盖了您的第二个互联网块,除了您的VPS地址。请注意,我故意选择了一个简单的地址,这样我就不会整天呆在这里,但是如果你愿意写足够的路线,你可以做任何你想做的事情,只要你的VPS地址不改变,你就只需要做一次。
https://serverfault.com/questions/737681
复制相似问题