将特定主机路由到不同网关

将特定主机路由到不同网关

我有一个基本的 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位于直连网络上。因此,如果纯粹是路由问题,则不会连接到网关。

相关内容