![通过非默认路由路由来自端口的所有流量](https://linux22.com/image/778738/%E9%80%9A%E8%BF%87%E9%9D%9E%E9%BB%98%E8%AE%A4%E8%B7%AF%E7%94%B1%E8%B7%AF%E7%94%B1%E6%9D%A5%E8%87%AA%E7%AB%AF%E5%8F%A3%E7%9A%84%E6%89%80%E6%9C%89%E6%B5%81%E9%87%8F.png)
我的所有流量都通过网关经过订阅 VPN 服务。我现在想在两个 Synology NAS 之间建立站点到站点 OpenVPN 连接,其中一个位于 VPN 网关后面,另一个位于异地。
我对我的设置做了一个简化的草图:
NAS 的默认路由应该是192.168.100.1
(VPN 网关),但是这会破坏在 上运行的 OpenVPN 服务器的功能192.168.10.20
,虽然可以访问,但传出的流量显然是通过 VPN 网关路由的。
有没有办法添加一些规则来将所有从 通过 出去的流量路由192.168.10.20:1194
出去192.168.10.1
?
NAS 来自 Synology,所以我可以设置新的 iptable 规则或 ip 路由,但我对 Synology 的一般经验是仅对配置进行最小程度的更改,否则东西就会损坏。
编辑于2022.07.18:
基于@Tom Yan和https://www.thomas-krenn.com/de/wiki/Zwei_Default_Gateways_in_einem_System(德语)我在启动脚本中想到了这个:
#!/bin/bash
echo "1 gateway-table" >> /etc/iproute2/rt_tables
ip route add 192.168.10.0/24 dev eth1 src 192.168.10.20 table gateway-table
ip route add default via 192.168.10.1 dev eth1 table gateway-table
ip rule add from 192.168.10.20/32 table gateway-table
ip rule add to 192.168.10.20/32 table gateway-table
exit 0
不幸的是这也不起作用。
答案1
作为@Tom Yan建议添加multihome
到服务器配置中即可!
Synology OpenVPN 服务器配置可以使用以下方式编辑:
sudo vi /usr/syno/etc/packages/VPNCenter/openvpn/openvpn.conf
只需将其添加multihome
到文件末尾并重新启动设备即可。之后,您可以为默认网关和 OpenVPN 服务器的列表接口设置不同的接口。
不需要任何额外的路线或规则。