技术分析报告:王莽岭OpenVPN连接失败

0 阅读2分钟

一、问题描述

客户端通过公网访问 OpenVPN:

124.164.252.67:11194 (TCP)

连接失败,报错如下:

Connection timeout General tun error Bad embedded uint16_t TCP packet size

二、系统架构

当前访问路径设计如下:

Internet │ 124.164.252.67 │ USG6620E 防火墙 │ DNAT │ 172.16.1.254(内网三层/核心设备) │ 172.16.90.252(OpenVPN服务器)

三、关键配置

3.1 防火墙 DNAT

nat server protocol tcp global 124.164.252.67 11194 inside 172.16.90.252 11194

3.2 安全策略

已存在允许 TCP 11194 的策略(目标:172.16.90.252)。

四、服务器信息

OpenVPN服务器:

IP:172.16.90.252 网段:172.16.90.0/24 网关:172.16.90.254

网络连通性:

ping 172.16.0.52(USG) 正常

五、服务状态

OpenVPN 运行方式:

Docker(host network 模式) 监听端口:11194 协议:TCP

配置确认:

local 0.0.0.0 port 11194 proto tcp

六、排查过程

6.1 服务监听确认

服务器已监听:

0.0.0.0:11194

6.2 抓包验证(关键结论)

服务器执行:

tcpdump -ni any tcp port 11194

客户端发起连接时:

未抓到任何流量

6.3 对照测试

关闭 OpenVPN 服务后:客户端连接报错 完全一致。 说明:客户端并未连接到 OpenVPN 服务

七、关键结论

7.1 本质问题

公网 124.164.252.67:11194 的流量未到达服务器 172.16.90.252

7.2 责任边界判断

已排除:

  • OpenVPN 服务问题
  • Docker 网络问题
  • 服务器本地防火墙问题
  • 服务器路由问题

问题定位在:公网入口 → 防火墙 → 内网转发路径

八、可能原因分析

1.DNAT 未命中

  • 未命中 nat server 规则
  • 被其他 NAT 规则覆盖
  1. 防火墙未实际转发
  • 会话未建立
  • NAT 转换异常
  1. 内网三层设备问题

设备:172.16.1.254

可能存在:

  • ACL 拦截 TCP 11194
  • 未正确转发
  • 路由不完整
  1. 公网入口异常
  • 公网 IP 不在该 USG 上
  • 上级 NAT 转发错误

九、需要网络侧协助排查

请机房/网络组确认以下内容:

9.1 会话命中

客户端连接时执行:

display firewall session table | include 11194

确认是否存在:

124.164.252.67:11194 → NAT → 172.16.90.252:11194

9.2 防火墙到服务器连通性

telnet 172.16.90.252 11194 确认 TCP 是否可达。

9.3 路由检查

172.16.90.0/24 → 172.16.1.254 是否正常。

9.4 内网设备检查

确认:172.16.1.254 是否允许转发 TCP 11194。

9.5 公网入口确认

确认:124.164.252.67 是否确实由该 USG 接管。

十、最终结论

当前问题属于:网络层(NAT / 路由 / 转发)问题 ,而非应用层(OpenVPN)问题。服务器侧未接收到任何公网连接流量。

十一、建议优先排查路径

建议按以下顺序排查:

1. USG 会话命中 2. USG → 172.16.90.252 TCP 连通性 3. 172.16.1.254 转发策略 4. 公网入口归属