You need to enable JavaScript to run this app.
导航
VPN 连接排障指南
最近更新时间:2025.11.14 16:29:28首次发布时间:2025.11.14 16:29:28
复制全文
我的收藏
有用
有用
无用
无用

本指南旨在为管理员提供一套标准的排障流程,用于解决员工通过飞连客户端连接 VPN 节点失败的问题。

排查前建议

请先阅读零信任接入常见问题,确认您遇到的问题是否已有对应的快速解决方案。若上述文档未能解决您的问题,请遵循本文提供的排查步骤进行深度诊断。

核心排查框架

VPN 连接失败问题,通常可以从客户端网络链路VPN 节点服务端三个层面进行分析。

  1. 识别现象(错误码):​从客户端的报错信息入手,快速缩小问题范围。
  2. 基础检查:​检查 VPN 节点服务状态和端口监听。
  3. 网络诊断:​测试客户端到节点的网络连通性。
  4. 深度分析:​在复杂场景下,通过抓包进行底层协议分析。

快速定位

VPN 连接失败时,客户端通常会弹出包含明确报错码的提示信息,不同报错码对应不同的故障类型。请根据下表,定位至相应的章节,提高排查效率。

错误提示/错误码

核心原因

排查指引

“请求失败”(21021000)

控制端口连接被拒绝

1. 排查 21021000 报错原因

“网络请求超时”(21021001)

控制端口连接无响应

2. 排查 21021001 报错原因

“请校准终端时间”(21021203)

证书或时间问题

3. 排查 21021003 报错原因

“添加 VPN 连接信息异常”(10220010)

数据通道服务异常

4. 排查 10220010 报错原因

“VPN 握手超时”

数据端口连接失败

5. 排查 VPN 握手失败报错原因

排障步骤

1. 排查 21021000 报错原因

1.1 问题现象

Image

1.2 问题定性

此错误表示客户端发往 VPN 控制端口的连接请求被立即拒绝(收到 TCP RST 包)。

1.3 常见原因

  • VPN 节点上的 feilian-vpn 主服务未运行
  • 控制端口被其他程序占用

1.4 排查方法

  • 检查服务状态
    登录 VPN 节点后台,执行 systemctl status feilian-vpn。若返回状态为 active(running),则代表服务正常。
    Image
    否则代表服务异常,请执行 sudo systemctl restart feilian-vpn 重启服务,并检查日志。
    Image

  • 检查端口监听
    执行 ss -tupln | grep <控制端口号>,确认监听该端口的进程是飞连相关服务。若被其他进程占用,请终止占用进程,或为 VPN 控制通道更换其它端口,并重启 feilian-vpn 服务,验证服务是否恢复正常。

  • 检查配置文件
    执行 cat /opt/feilian/vpn/conf/config.yaml 命令,检查配置文件内容,并通过 curl 命令测试与飞连服务端的 API 连通性。

    • 确认 url 字段中指定的飞连服务端地址(IP 或域名)是否正确;
    • 检查 app_idapp_secret 是否与飞连服务端为该 VPN 节点配置的凭证一致。
      Image
      Image

    说明

    注意:​可以通过以下方式验证 VPN 节点与飞连服务端之间的连通性及 API 请求是否正常,请使用 config.yaml 中的实际配置参数进行操作:

    curl -k '{url}/api/open/v1/token' --header 'Content-Type: application/json' --data '{
    "access_key_id": "{app_id}",
    "access_key_secret": "{app_secret}"
    }'

    分析返回结果:

    • 成功:​正常情况下,接口应返回 {"code":0, ...},并包含一个access_token。这表明节点与平台的 API 通信正常。
    • 认证失败:
      • 返回 "code": 164001 表明 app_id 不正确。
      • 返回 "code": 164003 表明 app_secret 不正确。
        请返回飞连管理后台,核对并修正该节点的凭证信息。
    • 连接失败:
      • 返回 502 Bad Gateway,请检查飞连服务端 corplink-platform 服务的运行状态。
    • 请求长时间无响应,表明网络不通。请检查config.yaml中的url是否正确,以及节点到该 URL 的网络防火墙策略。

2. 排查 21021001 报错原因

2.1 问题现象

Image

2.2 问题定性

此错误表示客户端发往 VPN 控制端口的连接请求,在超时时间内未收到任何响应。

2.3 常见原因

  • VPN 节点自身的防火墙/安全组(如 iptables)丢弃了请求。
  • 客户端与 VPN 节点之间的中间网络设备(如企业防火墙)丢弃了请求。

2.4 排查方法

  • 检查节点防火墙
    登录 VPN 节点后台,执行 sudo iptables -L --line-numbers,检查 INPUT 链是否存在丢弃(DROP)控制端口流量的规则。
    Image
  • 诊断中间网络链路问题
    如果在节点本地防火墙中未发现拦截规则,但连接依然超时,则问题根源很可能在于客户端与 VPN 节点之间的网络链路上。请按以下步骤进行诊断:
    1. 判断是否为客户端个例问题
      请尝试更换客户端设备切换网络环境(例如,使用手机热点)后重新连接。如果切换后连接成功,表明问题可能出在原客户端设备的环境(如本地防火墙)或其所处的特定网络(如办公室 Wi-Fi)。如果问题依旧,表明这很可能是一个普遍性问题,根源更靠近服务端。
    2. 通过网络抓包对比,精确定位丢包点
      在客户端设备上,使用 Wireshark 开始抓取发往 VPN 节点控制端口的流量。同时,在 VPN 节点服务器上,使用tcpdump命令,抓取来自该客户端公网 IP 的、发往控制端口的流量。让客户端尝试连接以复现问题,然后停止两边的抓包。
      如果在客户端抓包中看到了发出的SYN包,但在服务端抓包中完全没有看到对应的入向SYN包,即表明数据包在传输过程中被某个中间网络设备丢弃。
    3. 协调网络团队排查
      当通过抓包确认存在中间网络丢包后,请将您的抓包证据提供给企业的网络或安全运维团队,令其重点检查位于 VPN 节点前端的所有网络设备,其访问日志、会话记录或进行同步抓包,以确认是哪一台设备拦截了发往 VPN 控制端口的流量。设备包括但不限于:
      • 企业出口防火墙
      • Web 应用防火墙(WAF)
      • 负载均衡器(LB)
      • NAT 网关

3. 排查 21021003 报错原因

3.1 问题现象

Image

3.2 问题定性

TLS/SSL 证书验证失败。

3.3 常见原因

  • VPN 节点的证书已过期。
  • 客户端设备本地时间与标准时间偏差过大。

3.4 排查方法

  • 检查客户端时间
    确认客户端设备的系统时间是否准确。如存在偏差,请手动调整至标准时间后重试。
  • 检查证书有效期
    • 方法一(浏览器检查):通过浏览器访问 https://<VPN 节点 IP>:<控制端口号>,查看浏览器安全警告,检查证书的有效期。

    • 方法二(命令行检查):登录 VPN 节点后台,执行以下命令,直接检查节点上正在使用的证书有效期:

      openssl s_client -connect 127.0.0.1:<控制端口号> | openssl x509 -noout -dates
      

      Image

  • 检查飞连门户证书
    • 对于 SaaS 用户:​平台证书由飞连官方统一管理和自动续期,您无需执行任何操作。如果通过前述方法确认证书过期,请直接进入后续排查步骤。
    • 对于私有化部署用户:​您需要手动更新主证书。请登录运维平台,导航至系统配置企业配置证书管理,检查并上传最新的有效证书。VPN 节点通常会在几分钟内自动同步并加载新证书。
      Image
  • 检查前端代理设备的证书
    如果在完成上述步骤、确认 VPN 节点本身已使用新证书后,客户端连接问题依然存在,请务必检查您的网络架构中,位于 VPN 节点前端的所有七层代理设备证书,请确保这些设备上也已同步更新了与 VPN 节点一致的、有效的 SSL 证书。重点排查对象包括:
    • 负载均衡器(Load Balancer, LB)
    • Web 应用防火墙(WAF)
    • 反向代理服务器(如 Nginx)

4. 排查 10220010 报错原因

4.1 问题现象

Image

4.2 问题定性

VPN 数据通道的核心服务(feilian-tun@tun0)启动失败或异常退出。

4.3 排查方法

  • 检查服务状态
    登录 VPN 节点后台,执行 systemctl status feilian-tun@tun0,确认服务状态。

    • active(running):服务正常运行。
    • inactive(dead):服务当前未运行。
    • failed:服务曾尝试启动但失败。
  • 重启服务
    无论当前状态如何,请尝试执行 sudo systemctl restart feilian-tun@tun0 命令重启服务,并观察是否能快速恢复。

  • 深度排查服务失败原因
    如果服务重启失败,或重启后很快又进入failed状态,请从以下两个方面进行深度排查。

    • a. 检查人为操作与变更
      • 与您的运维团队确认,近期是否有计划内的维护操作,或是否有人曾手动执行过 systemctl stop feilian-tun@tun0 命令。
    • b. 检查系统资源耗尽问题
      • 请使用 topfree -mdf -h 等标准 Linux 命令,检查以下指标:
        • CPU / 内存使用率:​确认是否存在其他进程异常占用大量资源,导致 feilian-tun 服务无法分配到所需资源。
        • 磁盘空间:​确保 //var/log 等关键分区的磁盘使用率没有达到 100%。日志无法写入也可能导致服务启动失败。

5. 排查 VPN 握手失败报错原因

5.1 问题现象

Image

5.2 问题定性

此现象通常表示客户端与 VPN 节点的控制端口通信正常,但后续建立数据端口连接的过程失败。数据通道默认首先尝试 UDP 协议,若不通则会自动降级尝试 TCP 协议。两者均失败,则报此错误。

5.3 核心排查思路

数据端口的排查思路与控制端口完全一致,只是排查的对象发生了变化。您需要依次检查:服务是否运行、端口是否被占用、节点防火墙是否拦截、中间网络是否丢包。

5.4 排查方法

请登录 VPN 节点后台,按照以下顺序进行检查。

  • 检查数据通道服务状态
    参考4.3 排查方法,确认负责数据通道的核心服务本身是否正常运行。

  • 检查数据端口监听与占用情况
    执行以下命令,检查您的 VPN 数据端口(UDP 和 TCP)是否被 feilian-tun 服务正确监听。

    # 将 <数据端口号> 替换为您的实际数据端口
    ss -tupln | grep <数据端口号>
    
    • 结果分析:
      • 正常:​您应能看到feilian-tun进程正在监听该端口的 UDP 和/或 TCP。
      • 异常 1(无输出):​端口未被任何程序监听。请返回上一步,检查服务状态。
      • 异常 2(被占用):​监该端口的是一个非飞连的进程。请终止该占用进程。
  • 检查 VPN 节点防火墙策略
    执行 sudo iptables -L --line-numbers 命令,检查 iptables 规则中是否存在针对数据端口的 DROP(丢弃)规则,确认 VPN 节点自身的防火墙是否静默丢弃了发往数据端口的连接请求。

  • 诊断中间网络链路问题
    如果以上所有节点侧的检查均无问题,则问题根源很可能在于客户端与 VPN 节点之间的中间网络设备。需确认数据端口的流量是否在传输途中被丢弃。
    排查思路与2.4 排查方法中的“诊断中间网络链路问题”部分完全相同。请依次尝试:切换客户端网络环境(如手机热点)、在客户端和 VPN 节点进行同步抓包对比、协调网络团队排查中间防火墙/LB 等设备。

仍无法解决?

如果在执行完以上所有排查步骤后,问题依然存在,请在提交工单前,尽可能收集以下信息,帮助我们的技术支持团队更快地为您定位并解决问题。

  • 如果您是飞连认证渠道工程师:请通过飞书搜索飞连 FOC,提交工单处理。
  • 如果您是企业用户:请通过火山引擎官网提交工单处理。

信息收集清单

1. 故障影响范围说明

  • 涉及终端数量:​例如,“全公司均无法连接” 或 “仅市场部的几台 Windows 设备异常”。
  • 设备与系统:​列出受影响设备的类型和操作系统版本(如 Windows 11 22H2, macOS Sonoma 14.2)。
  • 网络环境:​描述问题发生的网络环境(如 办公室有线网络家庭Wi-Fi手机热点),以及是否有在不同网络环境下表现不一的情况。

2. 已执行的排查过程与结果

  • 请简要描述您已执行了本文档中的哪些步骤。
  • 请提供关键命令的完整命令行输出截图,例如:
    • systemctl status ... 的结果截图。
    • ss -tupln | grep ... 的结果截图。
    • tcpingcurl 的结果截图。

3. 飞连客户端日志文件

  • 获取方法:
    1. 指导出现问题的员工,在飞连客户端复现一次连接失败的操作。
    2. 立即登录飞连管理后台,导航至终端终端资产
    3. 找到对应的设备,点击其右侧操作列的更多采集客户端日志

4. VPN 节点相关日志

  • 获取方法:
    • 通过 SSH 登录到您的 VPN 节点服务器。
    • 获取以下核心日志文件:
      • 主服务日志:/opt/feilian/vpn/log/vpn.event.log
      • (如果需要)数据通道服务日志:journalctl -u feilian-tun@tun0 的输出。

5. 精确的故障时间点

  • 请提供最近一次复现失败操作精确时间(到分钟,例如 2024-10-21 15:30)。

提交工单

在准备好以上信息后,请通过以下渠道联系我们:

  • 飞连认证渠道工程师:请通过飞书搜索飞连 FOC,提交工单处理。
  • 企业用户:请通过火山引擎官网提交工单处理。

附录 A:快速诊断命令参考

本附录提供了一系列快捷的命令行工具,可用于日常巡检或在排障过程中快速验证 VPN 各组件的状态。

验证 VPN 节点服务状态

  • 目的:​检查 VPN 的两个核心服务是否都处于正常运行状态。

  • 命令:

    # 检查控制通道主服务
    systemctl status feilian-vpn.service
    
    # 检查数据通道隧道服务 (以tun0为例)
    systemctl status feilian-tun@tun0.service
    
  • 结果分析:

    • 正常状态应显示为 active (running)
    • 若状态为 inactive (dead)failed,请尝试使用 sudo systemctl restart <服务名> 重启服务,并检查相关日志以定位失败原因。

验证 VPN 节点端口监听状态

  • 目的:​确认 VPN 的控制端口和数据端口是否已被正确的服务进程监听。

  • 命令:

    # 检查控制端口监听情况(请替换为实际控制端口,如8001)
    ss -tupln | grep 8001
    
    # 检查数据端口监听情况(请替换为实际数据端口,如8002)
    ss -tupln | grep 8002
    
  • 结果分析:

    • 正常结果应能看到 LISTEN 状态,并且对应的进程是 feilian-vpnfeilian-tun
    • 无输出,表示端口未被监听,请返回第 1 步检查服务状态。
    • 若进程为其他名称,表示端口被占用,请终止占用进程。

验证客户端到节点的端口连通性

  • 目的:​从客户端侧,测试到 VPN 节点的网络端口是否可达,以快速排查网络防火墙问题。

  • 工具建议:​推荐使用 tcping (Windows/Linux) 或 nc (macOS/Linux) 等工具。

  • 命令示例 (tcping):

    # 测试控制端口连通性
    tcping <VPN节点IP或域名> <控制端口号>
    
    # 测试数据端口TCP连通性
    tcping <VPN节点IP或域名> <数据端口号>
    
  • 结果分析:

    • 正常结果应显示 Port is open 或低延迟的响应。
    • 若结果为超时 (timeout),则强烈表明客户端与节点间的网络链路(特别是中间防火墙)存在访问限制。

排查客户端软件冲突

  • 目的:​检查终端设备上是否存在可能干扰飞连客户端正常工作的第三方软件。
  • 排查要点:
    • 其他 VPN 软件:​检查并暂时卸载任何其他 VPN 客户端(如 Cisco AnyConnect, Palo Alto GlobalProtect 等),它们可能存在驱动或路由冲突。
    • 安全防护软件:​暂时禁用卸载第三方的杀毒软件、主机防火墙或 EDR/XDR 等终端安全工具。这些软件可能会拦截飞连的网络连接或修改网络配置。
  • 验证方法:​在移除或禁用冲突软件并重启电脑后,再次尝试连接 VPN,观察问题是否复现。