docs: drop frp self-comparison in core references
- go.mod/main.go/config.go/sample/CHANGELOG: 移除 类 frp/去中心化 frp 本体/像 frp 类比 - 保留 ExternalService 中真实的 frp_server 外部穿透服务(客观功能,非自比)
This commit is contained in:
+9
-10
@@ -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 直连,便于对照测试。
|
||||
|
||||
+4
-4
@@ -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)
|
||||
}
|
||||
|
||||
+3
-3
@@ -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()
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# meshray-core 独立运行配置(类 frp 风格,TOML)
|
||||
# meshray-core 独立运行配置(TOML)
|
||||
# 用法: meshray-core -c meshray-core.toml
|
||||
# 也兼容旧 JSON 配置(扩展名 .json 自动按 JSON 解析)。
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user