Conversation
todo 分支自 fork 以来的完整一批工作, 压成一个提交提交合并。核心是给 anyproxy 补上一整套"内网穿透"能力(订阅端主动回连服务端, 之后可裸TCP转发/HTTP头订阅/ QUIC 直连打洞/端到端加密文件收发), 以及围绕它的可观测性、配置体验打磨。 ## websocket 内网穿透基础 - 客户端支持同时订阅多台 server, 服务端支持多账号鉴权(user/pass 或密钥对 挑战-应答, 二选一); server.allowIP 同时约束裸TCP转发入口, 堵住公网扫描 - 裸TCP转发补齐空闲超时、存活心跳、拒绝原因回传给发起端 - UDP 中继补一条与 TCP 并行的独立通道(RDP 等 UDP 图形通道场景), token 比对 改常量时间; 配置字段类型不匹配不再拖垮整个服务启动; 配置文件优先在程序 真实目录下找, 再退回当前目录 ## QUIC 直连打洞(路径 C: A<->C 数据面不经服务端) - 从最初的 IPv6 专属演进为多候选并行打洞、按 RTT + 地址类型偏置择优; 单族解析失败不再被另一族的成功盖过; 去掉本机接口地址候选, 只保留跨网候选 - 支持 UDP、鉴权粒度改为连接级; 请求驱动(C 按需起监听, 空闲释放, socket 可重建), 监听起不来时持续重试; 静默 UDP 会话不再被误判空闲, 空闲窗口 2min -> 30min; allowIP 修正 IPv6 单地址匹配 - 打洞失败兜底走 QUIC 直接拨号; punch 等待预算改为总预算制, 修复 RTT>150ms 链路必败的问题, 新增收包观察者、debug 模式自设 UDP 收包缓冲 ## nat-punch / derp-nat / tunnel-hop 探索(examples/) 独立的最小化打洞验证工具与真实网络实测记录(UDP/TCP 打洞、NAT 类型判定、 IPv6 直连可行性、端口保活与映射复查、SO_REUSEPORT), 结论最终落地进上面 正式的 nat 直连实现 ## 文件收发(-send / -recv, 内网穿透的落地应用之一) - 内置直连传文件(不依赖对端装 sshd/rsync), 支持经服务端中继(-via direct|relay 二选一显式声明); 身份改用 uuid(不再依赖可伪造的 email), uuid 状态文件改用同目录隐藏文件, 支持从旧文件名平滑迁移 - 中继路径补流控(不再堵死整条 websocket)、修死锁、独立 ConnFileRelay 类型(不与裸TCP转发撞 ID); 进度条改瞬时速率, 传完打一行 QUIC 收发统计 (丢包率/RTT/拥塞窗口) - CLI 打磨: -to 支持 email:subdir, 新增对称的 -recv; 后续精简掉 -from 直接传 email, -to 复用为收文件本地存放目录; -recv 改为主动去对端取文件, 新增 receive.readonly, 收发时静默打洞日志 - 常驻连接按需发起: subscribe/forward/direct/directAccept/receive.dir 全空时自动跳过, 不用手动配 sendRecvOnly; receive 单独也能放行服务端的 空 subscribe 判定(此前只认 forward/direct, 纯靠中继收文件的配置会被 一直拒绝) ## -genconf: 生成带注释的配置模板 新机器上没有配置文件时, 按 -mode 生成一份可直接改用的骨架(示例规则一律 注释掉, 已存在文件不覆盖, 顺手建出日志目录); websocket.server/client 两个 角色跟 -mode 无从属关系, 模板两个都给(生效的那个 + 注释掉的另一个示例); tun/bypass 的按系统分块配置只生成运行 -genconf 时所在系统那一块 ## 黑洞哨兵IP default.blackholeIP(默认 192.0.0.0): 域名指向它后, 没开代理时不可路由 天然屏蔽, 开了 TUN/WinDivert 代理时强制按 remote+remote 经下级代理远程 解析访问 ## 可观测性与日志风格 socks5 首包嗅探 http/https 分流并统一连接 ID, default 分流标识并入决策行; trace.ID 统一改用 [ID #34] 方括号 token 放最前(去掉尾逗号避免被当 CSV); 部分中文提示改英文, 与其余日志风格统一; -check 系统调优检查输出改英文, 修正 INFO 项已达标却不显示 OK ## CI 与文档 三平台构建 + race + 交叉编译的 CI 工作流; TUN 下域名解析优先级、直连打洞 地址族要求、二进制体积变化原因(gvisor/quic-go)等专题文档
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
todo 分支自 fork 以来的完整一批工作, 压成一个提交提交合并。核心是给 anyproxy
补上一整套"内网穿透"能力(订阅端主动回连服务端, 之后可裸TCP转发/HTTP头订阅/
QUIC 直连打洞/端到端加密文件收发), 以及围绕它的可观测性、配置体验打磨。
websocket 内网穿透基础
QUIC 直连打洞(路径 C: A<->C 数据面不经服务端)
nat-punch / derp-nat / tunnel-hop 探索(examples/) 独立的最小化打洞验证工具与真实网络实测记录(UDP/TCP 打洞、NAT 类型判定、
IPv6 直连可行性、端口保活与映射复查、SO_REUSEPORT), 结论最终落地进上面
正式的 nat 直连实现
文件收发(-send / -recv, 内网穿透的落地应用之一)
-genconf: 生成带注释的配置模板
新机器上没有配置文件时, 按 -mode 生成一份可直接改用的骨架(示例规则一律
注释掉, 已存在文件不覆盖, 顺手建出日志目录); websocket.server/client 两个 角色跟 -mode 无从属关系, 模板两个都给(生效的那个 + 注释掉的另一个示例);
tun/bypass 的按系统分块配置只生成运行 -genconf 时所在系统那一块
黑洞哨兵IP
default.blackholeIP(默认 192.0.0.0): 域名指向它后, 没开代理时不可路由 天然屏蔽, 开了 TUN/WinDivert 代理时强制按 remote+remote 经下级代理远程 解析访问
可观测性与日志风格
socks5 首包嗅探 http/https 分流并统一连接 ID, default 分流标识并入决策行; trace.ID 统一改用 [ID #34] 方括号 token 放最前(去掉尾逗号避免被当 CSV); 部分中文提示改英文, 与其余日志风格统一; -check 系统调优检查输出改英文,
修正 INFO 项已达标却不显示 OK
CI 与文档
三平台构建 + race + 交叉编译的 CI 工作流; TUN 下域名解析优先级、直连打洞
地址族要求、二进制体积变化原因(gvisor/quic-go)等专题文档