我有一个基本的 Ubuntu 18.04 设置,其中计算机有两个接口 - 一个用于内部 (enp4s0),另一个用于连接互联网 (enp5s0)。在互联网接口上,我成功安装了一个 VPN (tun0),它接管所有到 enp5s0 的出站流量,以便互联网流量受到 VPN 的保护。
我正在尝试解决的是 - 如何让网络内的一台主机(例如 192.168.1.220)保持在 VPN 之外并通过 enp5s0 出去。我不希望它位于 VPN 内。
谁能建议我需要对路线做什么?我相信我必须通过 iproute2 设置一个表,但我没有运气让它工作。
路由表(启用 VPN)
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.8.1 128.0.0.0 UG 0 0 0 tun0
default _gateway 0.0.0.0 UG 0 0 0 enp5s0
10.8.8.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
45.248.79.198 _gateway 255.255.255.255 UGH 0 0 0 enp5s0
128.0.0.0 10.8.8.1 128.0.0.0 UG 0 0 0 tun0
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 enp5s0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 enp4s0
192.168.8.0 0.0.0.0 255.255.255.0 U 0 0 0 enp5s0
路由表(VPN 已禁用)
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 0 0 0 enp5s0
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 enp5s0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 enp4s0
192.168.8.0 0.0.0.0 255.255.255.0 U 0 0 0 enp5s0
UFW 规则(将 LAN 流量传输至 VPN)
-A POSTROUTING -s 192.168.1.0/24 -o tun0 -j MASQUERADE
答案1
你需要策略路由,所以类似的事情
ip route add table 250 default dev enp5s0
ip rule add from 192.168.1.220 table 250
我不确定_gateway
指向哪里,您可能需要via a.b.c.d
在第一行添加。另外,我建议使用较新的而ip route
不是较旧的route
。
答案2
从这些表中获取网络布局总是需要一些令人费解的事情。照我看来:
- 您有两个物理接口,enp4s0 和 enp5s0
- enp4s0 直连192.168.1.0/24
- enp5s0 直连t0 192.168.8.0/24
- 您的主机
_gateway
位于 192.168.8.0/24 - 您的隧道端点是 45.248.79.198
您提供的路由表有一些奇怪的地方:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.8.1 128.0.0.0 UG 0 0 0 tun0
128.0.0.0 10.8.8.1 128.0.0.0 UG 0 0 0 tun0
您将互联网分成两半,都通过 tun0。
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 0 0 0 enp5s0
您的默认网关仍然是_gateway
我期望路由表看起来像:
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.8.8.1 0.0.0.0 UG 0 0 0 tun0
10.8.8.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
45.248.79.198 _gateway 255.255.255.255 UGH 0 0 0 enp5s0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 enp4s0
192.168.8.0 0.0.0.0 255.255.255.0 U 0 0 0 enp5s0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
回答你的问题:192.168.1.220位于直连网络上。因此,如果纯粹是路由问题,则不会连接到网关。