From ccae5e2d4270e05ba53c78bbabaf2f5327703b92 Mon Sep 17 00:00:00 2001 From: zkcoi Date: Wed, 15 Jul 2026 16:40:07 +0800 Subject: [PATCH] docs: drop frp self-comparison in core references MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - go.mod/main.go/config.go/sample/CHANGELOG: 移除 类 frp/去中心化 frp 本体/像 frp 类比 - 保留 ExternalService 中真实的 frp_server 外部穿透服务(客观功能,非自比) --- CHANGELOG.md | 19 +++++++++---------- cmd/mr-wg/config.go | 8 ++++---- cmd/mr-wg/main.go | 6 +++--- cmd/mr-wg/meshray-core.toml.sample | 2 +- go.mod | 2 +- 5 files changed, 18 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a16fb2..7edb550 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,10 +41,9 @@ Gitea 仓库名大小写不敏感:`zkcoi/meshray` 与 `zkcoi/Meshray`(core ## 2026-07-15 仓库拆分:core 独立为 `meshray/core`,wg-go 集成迁移至 `internal/ctr/corebind` ### 背景(架构决策) -core(转发引擎)本质是**去中心化 frp**——9 层传输只转发字节 A↔B,不关心载荷是应用流量 -(形态 A:独立 frp 隧道)还是 WG 密文(形态 B:增强传输)。此前 core 直接 `import wg-go` -并内置 `EnhancedBind`,导致「集成干扰核心」:核心层被 wg-go / contract 绑架,难以独立演进, -也无法作为纯粹的去中心化 frp 基地。 +core(转发引擎)本质是一个**通用的 P2P 多层传输中继核心**——9 层传输只转发字节 A↔B, +不关心载荷是应用流量(形态 A:独立隧道)还是 WG 密文(形态 B:增强传输)。此前 core 直接 `import wg-go` +并内置 `EnhancedBind`,导致「集成干扰核心」:核心层被 wg-go / contract 绑架,难以独立演进。 故按用户决策: - 项目命名统一为 **meshray**;wg-go 集成属于 manager / UI / GUI 范畴,不污染 core。 @@ -174,13 +173,13 @@ A 发往 `B:51820` 的包到达 B 的 OS 时,B 在 51820 无任何监听 socke NAT 后的机器仍依赖 TURN/WebRTC 中继/打洞层(需配置 `ice` 服务器),本修复解决的是 「直连(独立 IP / 公网 / 同局域网)对称互通」这一基础能力。 -## 2026-07-15 独立 meshray-core 改用 TOML 配置文件(类 frp) +## 2026-07-15 独立 meshray-core 改用 TOML 配置文件 ### 需求 -独立运行(类 frp 风格)希望像 frp 一样使用 TOML 配置文件,而非 JSON。 +独立运行希望使用 TOML 配置文件,而非 JSON。 ### 改动 -- 新增依赖 `github.com/BurntSushi/toml`(与 frp 同款)。 +- 新增依赖 `github.com/BurntSushi/toml`。 - `core/cmd/meshray-core/config.go`: - `Config` 各字段增加 `toml` 标签(键名与 JSON 一致,snake_case)。 - `loadConfig` 按扩展名自动选解码器:`.toml`/`.conf` → TOML;其它(含 `.json`)→ JSON, @@ -369,10 +368,10 @@ P2P 劫持转发链路)实际断裂。本次以单元测试钉死缺陷后, - `docs/` 下仍描述 “relay 按 route_id 查表转发” 的旧文档校正(用户规则禁止新增说明文档, 已通过代码注释反映新路由逻辑)。 -## 2026-07-15 增强 Bind 虚拟桥接 + meshray-core 独立二进制(类 frp) +## 2026-07-15 增强 Bind 虚拟桥接 + meshray-core 独立二进制 ### 背景 -用户希望像 frp 一样直接运行 core 在两台机器上验证收发,而非必须经由管理器。 +用户希望直接运行 core 在两台机器上验证收发,而非必须经由管理器。 核查发现旧 `EnhancedBind` 仅是**纯透传**(Send 直接转交默认 UDP bind),而 9 层 `relay` 的 `localPorts` 在增强模式下从未被注册,导致 9 层传输逻辑根本没接到 WG 收发路径上。 本次把 `EnhancedBind` 重写为真正桥接 WG ↔ 引擎 9 层传输,并新增独立可运行二进制。 @@ -400,7 +399,7 @@ P2P 劫持转发链路)实际断裂。本次以单元测试钉死缺陷后, - `NotifyPeerInfo` 在收到候选时自动 `RegisterPeer`,并新增 `EnsureDial`(Send 惰性拨号用)。 ### core/cmd/meshray-core(新增独立二进制) -- `main.go` + `config.go`:类 frp 风格,`-c config.json` 启动、`-genkey` 生成私钥。 +- `main.go` + `config.go`:`-c config.json` 启动、`-genkey` 生成私钥。 - 直接以 `core.NewEnhancedBind` 接管 wireguard-go 用户态设备收发;按配置创建 TUN、 注入对端候选触发 9 层拨号、`Up` 后分配隧道 IP(Linux `ip` / Windows `netsh`)。 - `mode: enhanced` 走 9 层接管;`mode: native` 退化为裸 WG 直连,便于对照测试。 diff --git a/cmd/mr-wg/config.go b/cmd/mr-wg/config.go index 71e5de7..f464080 100644 --- a/cmd/mr-wg/config.go +++ b/cmd/mr-wg/config.go @@ -10,8 +10,8 @@ import ( "github.com/BurntSushi/toml" ) -// Config 是 meshray-core 独立运行(类 frp 风格)的配置文件结构。 -// 支持 TOML(默认,类 frp)与 JSON 两种格式,按文件扩展名自动选择解码器。 +// Config 是 meshray-core 独立运行的配置文件结构。 +// 支持 TOML(默认)与 JSON 两种格式,按文件扩展名自动选择解码器。 // // TOML 示例: // @@ -70,7 +70,7 @@ type ICEConf struct { } // loadConfig 读取并解析配置文件:按扩展名自动选择 TOML 或 JSON 解码器。 -// 默认且推荐 TOML(类 frp);旧 .json 配置仍可继续使用。 +// 默认且推荐 TOML;旧 .json 配置仍可继续使用。 func loadConfig(path string) (*Config, error) { data, err := os.ReadFile(path) if err != nil { @@ -85,7 +85,7 @@ func loadConfig(path string) (*Config, error) { ext := filepath.Ext(lower) switch ext { case ".toml", ".conf": - // TOML:与 frp 风格一致 + // TOML:默认配置格式 if err := toml.Unmarshal(data, cfg); err != nil { return nil, fmt.Errorf("解析 TOML 配置 %s 失败: %w", path, err) } diff --git a/cmd/mr-wg/main.go b/cmd/mr-wg/main.go index 6195287..7260307 100644 --- a/cmd/mr-wg/main.go +++ b/cmd/mr-wg/main.go @@ -1,4 +1,4 @@ -// 命令 meshray-core:meshray-core 增强层的独立运行入口(类 frp 风格)。 +// 命令 meshray-core:meshray-core 增强层的独立运行入口。 // // 直接以自定义 conn.Bind 接管 WireGuard 收发,使所有隧道密文流量经由本仓 9 层传输 // (Direct/TURN/WebRTC/...)而非裸 UDP。无需管理器即可在两台机器间建立加密隧道, @@ -7,7 +7,7 @@ // 用法: // // meshray-core -genkey # 生成私钥 -// meshray-core -c meshray-core.toml # 按配置启动(默认 TOML,类 frp;兼容 .json) +// meshray-core -c meshray-core.toml # 按配置启动(默认 TOML;兼容 .json) package main import ( @@ -32,7 +32,7 @@ import ( ) func main() { - cfgPath := flag.String("c", "meshray-core.toml", "配置文件路径(默认 TOML,类 frp;也兼容 .json)") + cfgPath := flag.String("c", "meshray-core.toml", "配置文件路径(默认 TOML;也兼容 .json)") genKey := flag.Bool("genkey", false, "仅生成私钥并打印后退出") flag.Parse() diff --git a/cmd/mr-wg/meshray-core.toml.sample b/cmd/mr-wg/meshray-core.toml.sample index 2ee15ce..a932bda 100644 --- a/cmd/mr-wg/meshray-core.toml.sample +++ b/cmd/mr-wg/meshray-core.toml.sample @@ -1,4 +1,4 @@ -# meshray-core 独立运行配置(类 frp 风格,TOML) +# meshray-core 独立运行配置(TOML) # 用法: meshray-core -c meshray-core.toml # 也兼容旧 JSON 配置(扩展名 .json 自动按 JSON 解析)。 diff --git a/go.mod b/go.mod index 0d946b4..ef3a6db 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.26.0 // 开源契约层(管理器与 meshray-core 共享,独立叶子模块,避免 module 级循环依赖) replace git.zkcoi.com/zkcoi/meshray-contract => ./pkg/contract -// 核心转发引擎 meshray(去中心化 frp 本体 + 9 层传输):独立仓库 zkcoi/Meshray,零 wireguard 依赖。 +// 核心转发引擎 meshray(通用 P2P 多层传输中继核心 + 9 层传输):独立仓库 zkcoi/Meshray,零 wireguard 依赖。 // 其模块路径为 git.zkcoi.com/zkcoi/meshray(仓库名 Meshray 与本品 Meshray-Manager 大小写有别、互不相干)。 // 管理器经此 replace 引用本地核心,wg-go 集成(corebind)在本仓库内,二者隔离。 replace git.zkcoi.com/zkcoi/meshray => ../Meshray