Ubuntu

通過特定介面將流量路由到特定網路

  • January 11, 2019

我有一個託管在 Digital Ocean 上並用作 VPN 的 Ubuntu 伺服器,通過它我想通過本地網路(專用網路)訪問我那裡的其他伺服器。但是我無法通過 VPN 從我的 PC 訪問其他伺服器(請求在 10.8.0.1 = VPN 伺服器上超時)。

VPN 伺服器上的路由表:

default         _gateway        0.0.0.0         UG    0      0        0 ens3
10.8.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
10.19.0.0       0.0.0.0         255.255.0.0     U     0      0        0 ens3
10.19.0.0       10.19.0.1       255.255.0.0     UG    0      0        0 ens3
10.135.0.0      0.0.0.0         255.255.0.0     U     0      0        0 ens4
10.135.0.0      10.135.0.1      255.255.0.0     UG    0      0        0 ens4
7.7.7.0         0.0.0.0         255.255.240.0   U     0      0        0 ens3

tun0 是 VPN 網路

ens3 是網際網路

ens4 是 LAN

/公共網路遮罩為 7.7.7.0/

所以我想通過 ens4 (10.135.4.48) 路由從 10.8.0.0/24 到 10.135.0.0/16 的所有流量以及通過 ens3 的所有其他流量。

我必須更改本地電腦上的路由嗎?

通過修改 /etc/ufw/before.rules 處的 ufw 配置解決:

# nat Table rules
*nat
:POSTROUTING ACCEPT [0:0]

# Forward traffic from eth1 through eth0.
-A POSTROUTING -s 10.8.0.0/24 -d 10.135.0.0/16 -j MASQUERADE

COMMIT

引用自:https://unix.stackexchange.com/questions/493691