跳转到主要内容

检查 npc.conf 中的隧道是否在运行

对比本地 npc.conf 与 NPS 上的规则状态并识别未运行的隧道

NPC 的 status 命令用本地 npc.conf 连接 NPS,然后逐项显示配置文件中的隧道是否已在 NPS 上创建或运行。它适合排查“NPC 已启动,但某条配置没有生效”的问题。

运行前提

  • NPC 使用 npc.conf 模式启动,而不是只传入 -server 和 -vkey。
  • 配置文件中的 [common] 包含正确的 server_addr、vkey 和 conn_type。
  • 运行中的配置模式 NPC 至少成功连接过一次,并写入状态命令所需的临时验证信息。

在 NPC 所在主机执行:

./npc status -config=/etc/nps/npc.conf

Windows 可以使用:

./npc.exe status -config=C:\nps\conf\npc.conf

-config 后必须是实际文件路径。命令读取配置、连接 NPS,输出结果后立即退出,不会启动一个新的常驻 NPC。

读取输出

每个条目使用 npc.conf 中的段名,例如:

web ok
ssh ok
dns not running
结果含义
okHTTP(S) 域名规则已存在,或普通隧道已在 NPS 运行列表中
not runningNPS 未找到对应规则,或普通隧道未成功启动

端口范围会展开为多个条目。例如 [database] 使用 server_port=6000-6002 时,输出名称为 database_6000、database_6001 和 database_6002。

ok 不等于业务端到端检查通过。对 HTTP(S) 规则,它只确认规则存在;对其他隧道,它也不会连接 target_addr 或从公网访问服务。状态检查后仍应使用 curl、nc 或业务客户端完成实际请求。

常见失败

  • 连接或验证失败:检查 [common] 中的地址、端口、vkey、TCP/KCP 类型和防火墙。
  • 找不到临时验证信息:先让配置模式 NPC 成功连接 NPS,再在同一主机上运行状态检查。
  • 多个配置实例互相影响:当前状态命令共用一个临时验证文件,同一主机上多个 NPC 实例可能覆盖它。此时应优先根据 Web 管理中的隧道状态和 NPC 日志排查。
  • 只有个别条目为 not running:查看 NPC 启动日志,重点检查端口占用、端口允许列表、重复域名或重复隧道密钥。