From c174a2ed3ab9067c3e41076841d959f7d130d113 Mon Sep 17 00:00:00 2001 From: 4566704 <4566704@qq.com> Date: Mon, 21 Sep 2026 19:14:27 +0800 Subject: [PATCH] =?UTF-8?q?fix(node):=20=E9=BB=98=E8=AE=A4=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=8A=A0=E8=BD=BD=E6=9C=AC=E7=9B=AE=E5=BD=95=20node.i?= =?UTF-8?q?ni=E2=80=94=E2=80=94=E8=A3=B8=E8=B7=91=20./zonat-node=20?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E7=BC=BA=E5=AF=86=E9=92=A5=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 改了什么: -config 默认值改为 node.ini; 未显式指定且文件不存在时按无配置启动(纯 flag/老部署兼容); 缺密钥报错文案补 node.ini 途径 为什么: 部署目录裸跑二进制(不经 start.sh)时不会主动带 -config, 直接报缺少 jwt-secret; 自动加载同目录配置后包内开箱即跑 --- cmd/node/main.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/cmd/node/main.go b/cmd/node/main.go index 01fbb88..811e57e 100644 --- a/cmd/node/main.go +++ b/cmd/node/main.go @@ -20,7 +20,7 @@ import ( func main() { var ( - config = flag.String("config", "", "配置文件路径(node.ini); 显式 flag 可覆盖配置项") + config = flag.String("config", "node.ini", "配置文件路径; 默认自动加载本目录 node.ini, 文件不存在且未显式 -config 时按无配置启动") addr = flag.String("addr", ":5212", "桥接监听地址") tunnelBind = flag.String("tunnel-bind", "0.0.0.0", "隧道监听绑定地址") jwtSecret = flag.String("jwt-secret", "", "agent 登录 JWT 校验密钥(HS256)") @@ -51,6 +51,13 @@ func main() { explicit := map[string]bool{} flag.Visit(func(f *flag.Flag) { explicit[f.Name] = true }) + // 自动加载: -config 未显式指定且默认路径不存在 → 按无配置启动(兼容纯 flag/老部署) + if !explicit["config"] { + if _, err := os.Stat(*config); err != nil { + *config = "" + } + } + var ( finalAddr = *addr finalTunnelBind = *tunnelBind @@ -107,7 +114,7 @@ func main() { } if finalSecret == "" { - slog.Error("缺少 jwt-secret(agent 登录 JWT 校验密钥; -jwt-secret 或配置文件 server.jwt-secret)") + slog.Error("缺少 jwt-secret(agent 登录 JWT 校验密钥; -jwt-secret、-config 指定文件或本目录 node.ini 的 server.jwt-secret)") os.Exit(1) }