我目前有一台运行最新 Merlin 固件的华硕路由器,配置了几个端口转发,但更重要的是,我可以在路上连接到 OpenVPN 服务器。一切都按预期运行,直到我决定在路由器上也配置 OpenVPN 客户端。一旦我通过 OpenVPN 客户端连接,我就无法再通过 ISP 的 WAN IP 访问我的 VPN 服务器或任何外部端口。
听起来可能是类似于的路由问题 这个帖子但没有成功尝试了这些命令。
最终,我希望路由器上的 VPN 客户端始终保持连接,并保持连接到 OpenVPN 服务器和其他开放端口的能力。
编辑:这是我尝试过的(基于上面的链接):
iptables -t nat -A PREROUTING -i vlan2 -m conntrack --ctstate NEW -j CONNMARK --set-mark 1234
iptables -t nat -A OUTPUT -m connmark --mark 1234 -j MARK --set-mark 4321
ip route add default dev vlan2 via 69.118.144.1 table 3412
ip rule add fwmark 4312 table 3412
答案1
我正面临着同一个问题在我的 OpenWrt 路由器上,最近发现了一个不涉及的简单解决CONNMARK
方案MARK
。
1)创建新的路由表并将 WAN 网关设置为其默认路由
echo "3412 no_vpn_provider" >> /etc/iproute2/rt_tables
ip route add default via <WAN gateway> dev vlan2 table 3412
2) 这是关键部分:使用local
配置中的选项将 VPN 服务器绑定到 WAN 接口的 IP 地址。如果您使用的是.conf
/.ovpn
文件,只需添加以下行
local <WAN IP>
3)添加此ip
规则
ip rule add from <WAN IP> table 3412 priority 2
默认情况下,OpenVPN 服务器不绑定到任何特定的 IP,因此如果没有 2),此规则将不会产生任何效果。
路由表应该允许客户端连接到服务器,但是为了获得完整的功能,您可能需要向其中添加其他路由。