服务器端OVPN客户端连接远端网络后无法通过Cloudflare访问Web服务
故障根因
核心为路由不对称问题,云服务器启动OpenVPN客户端后路由规则变更,导致Cloudflare公网请求的回包路径异常,无法正常完成通信。
具体原理
- Cloudflare发起的Web请求从云服务器公网网卡(通常为
eth0/ens3)进入,目标端口443 - OpenVPN客户端默认会接收服务端推送的路由规则,将云服务器全局默认路由修改为指向家庭OVPN网关,所有公网回包都会通过OVPN隧道从家庭网络出口发出
- Cloudflare收到的回包源IP为家庭网络公网IP,与请求的云服务器公网IP不一致,Cloudflare会直接丢弃该非法回包,表现为请求超时无法访问
- 家庭网络通过私有IP访问Nginx时,请求与回包路径均走OVPN隧道,路由匹配因此访问正常
验证方法
云服务器启动OVPN客户端后执行以下命令,查看默认路由指向:
ip route show default
如果输出的下一跳为OVPN虚拟网卡(通常为tun0)对应的网关,即可确认是该问题。
修复方案
- 修改OpenVPN客户端配置文件,添加
route-nopull参数,禁止OVPN服务端推送全局默认路由,仅手动配置家庭内网网段的路由规则,公网流量仍走原有公网网关 - 配置策略路由,标记从公网网卡进入的请求,强制这类请求的回包走公网网卡默认网关,不经过OVPN隧道
内容的提问来源于stack exchange,提问作者Kadem
相关产品推荐
相关产品推荐

