You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux路由:如何为不同用户配置多网关流量转发

多网关Linux路由器:指定用户走OpenVPN网关的解决方案

我之前在配置多网关策略路由的时候,也踩过OpenVPN客户端模式的坑,结合你的场景,给你梳理几个关键的调整点和最优方案:

先搞懂OpenVPN默认客户端的“坑”

默认OpenVPN客户端配置会自动执行两个操作,直接打乱你的策略路由:

  1. 拉取远程服务器的路由规则,把默认路由(0.0.0.0/0)塞进主路由表,优先级还很高;
  2. 可能会修改路由表优先级,导致自定义的用户路由表规则被忽略。

这就是为什么你的PPP方案正常,但OpenVPN失效的核心原因——默认配置直接覆盖了你的策略路由逻辑。

核心优化方案:自定义OpenVPN路由与策略规则

1. 让OpenVPN不干扰主路由表

修改你的OpenVPN客户端配置文件(比如/etc/openvpn/client.conf),添加以下参数:

# 禁止拉取服务器端的路由规则
route-nopull
# 可选:如果需要访问VPN服务器所在的局域网,手动添加路由(按需)
# route 192.168.100.0 255.255.255.0

这样OpenVPN只会建立隧道,不会修改主路由表,完全由你手动控制路由规则。

2. 为目标用户创建专属OpenVPN路由表

假设你给需要走VPN的用户(比如网段192.168.1.50/32或192.168.1.100-200)分配的路由表编号是101(可选范围1-252),执行以下命令:

# 把默认路由指向OpenVPN网关(替换成你的VPN隧道网关,通常是tun0的peer IP,比如10.8.0.1)
ip route add 0.0.0.0/0 via 10.8.0.1 dev tun0 table 101

# 必须添加:访问VPN服务器的流量走本地网关(比如你的电缆调制解调器网关192.168.0.1),避免死循环
ip route add <VPN服务器公网IP> via 192.168.0.1 dev eth0 table 101

# 添加局域网路由,确保用户能访问本地设备
ip route add 192.168.1.0/24 dev eth0 table 101

如果需要开机自动执行,可以把这些命令写到OpenVPN的up脚本里(在配置文件中添加up /etc/openvpn/up-vpn-routes.sh,脚本要加执行权限)。

3. 配置策略路由规则,让用户流量匹配到专属表

给目标用户的IP/网段添加规则,让他们的流量优先使用表101:

# 优先级设为100(越小越优先,要比主表的默认规则优先级32766高)
ip rule add from 192.168.1.50/32 lookup 101 priority 100

可以用ip rule list查看规则是否生效,确保你的规则排在主表规则前面。

4. 绑定NAT规则到OpenVPN接口

和PPP的NAT逻辑一样,要给走VPN的用户配置专属NAT:

iptables -t nat -A POSTROUTING -s 192.168.1.50/32 -o tun0 -j MASQUERADE

注意:如果你的主NAT规则是针对eth0的,确保这条VPN NAT规则排在主规则前面,或者主规则加-o eth0限制,避免冲突。

验证配置是否生效

用ip route get命令测试目标用户的路由走向:

ip route get 8.8.8.8 from 192.168.1.50

如果输出显示8.8.8.8 via 10.8.0.1 dev tun0 table 101,说明路由规则已经生效;如果还是走主表的默认路由,检查规则优先级或路由表配置。

额外注意事项

  • 不要用OpenVPN的redirect-gateway def1参数,它会强制所有流量走VPN,直接覆盖你的策略路由;
  • 有些发行版的NetworkManager会自动管理OpenVPN路由,建议把OpenVPN设置为“手动”模式,避免自动修改路由;
  • 定期检查OpenVPN隧道状态,如果重连后网关IP变化,需要重新更新路由表的via地址(可以在up脚本里自动获取)。

按照这个流程调整后,指定用户的所有互联网流量就会稳定走OpenVPN网关,和你的PPP方案逻辑保持一致。

内容的提问来源于stack exchange,提问作者internet-og

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:23:54