检查 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 所在主机执行:
Windows 可以使用:
-config 后必须是实际文件路径。命令读取配置、连接 NPS,输出结果后立即退出,不会启动一个新的常驻 NPC。
读取输出
每个条目使用 npc.conf 中的段名,例如:
| 结果 | 含义 |
|---|---|
ok | HTTP(S) 域名规则已存在,或普通隧道已在 NPS 运行列表中 |
not running | NPS 未找到对应规则,或普通隧道未成功启动 |
端口范围会展开为多个条目。例如 [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 启动日志,重点检查端口占用、端口允许列表、重复域名或重复隧道密钥。