chore(release): 发布 v1.9.2
CI / verify (push) Canceled after 0s
Docker Release / build-and-push (amd64, linux/amd64) (push) Canceled after 0s
Docker Release / build-and-push (arm64, linux/arm64) (push) Canceled after 0s
GitHub Release / release (push) Canceled after 0s
Docker Release / create-manifest (push) Canceled after 0s

- 「公网服务端」新增 Nginx 启停控制(Agent 0.15.2,停止带二次确认)
- frps 启动失败不再误报成功,并增强启动诊断
- frps vhost 端口禁止 80/443,避免与 VPS 上 Nginx 冲突
- 旧服务端配置的 tcp_mux / login_fail_exit 默认值补齐
- 新增安全审查、页面布局方案与场景操作文档
This commit is contained in:
2026-10-07 19:26:02 +08:00
parent a7d71752e3
commit 2a0740a60f
55 changed files with 5065 additions and 467 deletions
+26
View File
@@ -1,6 +1,7 @@
package frp
import (
"encoding/json"
"fmt"
"net"
"net/url"
@@ -280,6 +281,31 @@ func normalizeServerOptions(in ServerOptions) ServerOptions {
return in
}
// ServerOptions 的布尔字段在表单默认值里是 true,但 JSON 缺省时零值是 false。
// 016 迁移给已有服务端补的 config_json 默认值为 "{}",非 UI 路径创建的服务端也可能不带这些键;
// 缺省时若不兜底,生成的 frpc 配置会变成 transport.tcpMux = false(每条新连接都要重新建
// TCP+TLS,首连明显变慢)与 loginFailExit = false(登录失败不再退出,排障信息被吞掉)。
// 因此按「键缺省即取默认值」反序列化;显式写入 false 的配置仍然保留 false。
func (in *ServerOptions) UnmarshalJSON(data []byte) error {
type plain ServerOptions
var decoded plain
if err := json.Unmarshal(data, &decoded); err != nil {
return err
}
var keys map[string]json.RawMessage
if err := json.Unmarshal(data, &keys); err != nil {
return err
}
*in = ServerOptions(decoded)
if _, ok := keys["tcp_mux"]; !ok {
in.TCPMux = true
}
if _, ok := keys["login_fail_exit"]; !ok {
in.LoginFailExit = true
}
return nil
}
func validAuthMethod(value string) bool {
return value == "none" || value == "token" || value == "oidc"
}