You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

OpenVPN可访问VPC但联网流量丢失,需配置仅VPC流量走VPN

OpenVPN可访问VPC但联网流量丢失,需配置仅VPC流量走VPN

看起来你遇到的是OpenVPN默认把所有流量都导去VPN服务器,导致公网访问失效的问题,别担心,咱们一步步调整配置就能解决它!

问题根源

你的当前配置里,OpenVPN服务器默认会把客户端的默认网关设置为VPN服务器本身,这就导致所有流量(包括公网访问)都试图通过VPN转发,但你的VPN服务器并没有配置公网流量的转发规则,所以客户端就失去了公网连接。我们需要调整路由策略,让只有VPC网段的流量走VPN,其余流量保留本地网络路径。

具体调整步骤

1. 修改OpenVPN服务器配置文件

打开你的服务器配置文件(比如/etc/openvpn/server/server.conf),做以下调整:

  • 检查是否存在类似 push "redirect-gateway def1 bypass-dhcp" 的配置,如果有直接删除——这就是强制所有流量走VPN的元凶。
  • 保留你已有的 push "route 10.0.0.0 255.255.0.0" 配置,这会告诉客户端:只有访问10.0.0.0/16(你的VPC网段)时才使用VPN路由。
  • 建议添加一行DNS推送配置,避免客户端连VPN后DNS解析失效:
    push "dhcp-option DNS 8.8.8.8"
    
    你也可以替换成自己信任的公网DNS服务器,比如1.1.1.1

2. 确保服务器IP转发功能正常

VPC流量的转发依赖服务器的IP转发功能,先临时开启:

sudo sysctl -w net.ipv4.ip_forward=1

再设置永久生效(重启后不失效):
编辑/etc/sysctl.conf文件,找到net.ipv4.ip_forward一行,修改为:

net.ipv4.ip_forward=1

保存后执行sudo sysctl -p让配置立即生效。

3. 客户端.ovpn文件检查

打开你的客户端.ovpn文件,确保没有redirect-gateway相关的配置项,如果有就删除。如果服务器推送的路由没有生效,也可以手动在客户端配置里添加:

route 10.0.0.0 255.255.0.0

4. 重启服务并测试

重启OpenVPN服务器让配置生效:

sudo systemctl restart openvpn-server@server

重新连接VPN客户端后,测试:

  • 访问VPC内的10.0.0.x地址,确认能正常访问;
  • 访问公网网站(比如google.com),确认公网连接恢复正常。

原理说明

通过删除默认网关推送、仅指定VPC网段的路由,客户端会自动区分流量:访问VPC时将数据包发送至VPN服务器,其余公网流量则沿用本地网络的默认网关,这样就实现了“仅VPC流量走VPN,公网流量不受影响”的需求。

备注:内容来源于stack exchange,提问作者David Rojo

火山引擎 最新活动