![创建网关服务器以通过 VPN 传递所有客户端](https://linux22.com/image/607564/%E5%88%9B%E5%BB%BA%E7%BD%91%E5%85%B3%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BB%A5%E9%80%9A%E8%BF%87%20VPN%20%E4%BC%A0%E9%80%92%E6%89%80%E6%9C%89%E5%AE%A2%E6%88%B7%E7%AB%AF.png)
这真的很广泛,所以如果我超出了本网站的范围,请告诉我。话虽如此……
我想在我的网络上设置一台 Ubuntu 机器,该机器安装了 OpenVPN 客户端,配置为发送所有网络流量。然后我想将 Ubuntu 机器用作 LAN 上某些设备的网关,以便它们也使用 OpenVPN 客户端提供的连接。
我一直在 Ubuntu 论坛中搜索但一无所获,主要是因为我不确定我到底在寻找什么。
我是否需要使用静态路由来实现这一点?或者是否有一种简单的方法来设置此类配置?
非常感谢。
答案1
我认为您问的是,如何根据生成传出流量的设备更改离开网络时传出流量的路由方式。例如,让您的 AppleTV 使用 VPN 隧道而不是常规默认网关。如果是这样,您问的是基于策略的路由。
先决条件:
- IP路由2
上述软件包可以实现您想要的功能。这通常称为基于策略的路由,并针对您的具体情况源策略路由。
您需要完成以下操作:
- 检查使用了哪些路由表编号:
cat /etc/iproute2/rt_tables
- 创建包含相关机器的路由表
- 为特定表添加默认路由
- 刷新路由缓存
我手边没有 Linux 终端;但它应该是这样的:
echo ### tableName >> /etc/iproute2/rt_tables
## 选择一个未使用的号码
ip rule add from ip.add.of.box table tableName
ip route add 0.0.0.0/0 dev tun0 table tableName
##假设 tun0 是你的 VPN
ip route flush cache