首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用VPN更改本地子网从客户端路由所有通信量

问使用VPN更改本地子网从客户端路由所有通信量
EN

Server Fault用户
提问于 2015-11-19 23:52:16
回答 1查看 738关注 0票数 0

我有一个简单的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。

我想让我的笔记本电脑通过VPN网关路由我所有的流量,但是同时,我应该能够访问本地网络,即使它有一个未知的变化的子网.

。

这就是我努力做到的:

代码语言:javascript
复制
# 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路由捕获,并且流量会被阻塞。

如果有可能写这样的东西:

代码语言:javascript
复制
ip route add 1.2.3.4/32 via default

这会很好,但不要认为这是可能的。

我甚至尝试使用基于策略的路由和使用iptables标记数据包,但我没有运气。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2015-11-20 01:22:26

不知道你的实际VPS IP地址,我不能给你确切的命令,但基本上你需要分裂成更多的“互联网”,其中没有一个包括你的VPS。例如,如果您的VPS地址是255.255.255.255 (它显然不是),那么您将有

  • 127.0.0.0/7通过10.16.0.2 dev vpn
  • 255.0.0.0/15通过10.16.0.2 dev vpn
  • 255.255.0.0/23通过10.16.0.2 dev vpn
  • 255.255.255.0/31通过10.16.0.2 dev vpn

请注意,这涵盖了您的第二个互联网块,除了您的VPS地址。请注意,我故意选择了一个简单的地址,这样我就不会整天呆在这里,但是如果你愿意写足够的路线,你可以做任何你想做的事情,只要你的VPS地址不改变,你就只需要做一次。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/737681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档