GoForum › 🌐 V2EX
我用 go 做了一个类似 tor 去中心化多跳加密代理项目
chenjia404 ·
2026-03-14 22:07 ·
0 次点赞 · 2 条回复
最近自己做了实验性质的项目,想发出来和大家交流一下,也看看有没有人感兴趣一起讨论。
这个项目可以简单理解成:
一个类似 Tor 思路的多跳代理网络,但我不想走 Tor 那种中心化节点目录的路线,而是希望节点发现、节点广播、节点加入网络这部分尽量做成去中心化。
我现在在做的整体方向大概是这样:
每个节点启动后,本地直接提供一个 SOCKS5 代理
节点分成两类角色:
- Relay (中继节点)
- Exit (出口节点)
本地应用流量先进入本地 SOCKS5 ,再进入这个网络
每个节点都是中继,但是出口节点需要手动开启。
目前支持的路径思路包括:
Local -> ExitLocal -> Relay -> Exit- 后面会继续扩展多跳
整体理念上有点像 Tor:
- 多跳转发
- Relay 和 Exit 分工
- 客户端本地建电路
但一个比较重要的区别是:
- Tor 的节点目录本质上是中心化的
- 我这个项目希望尽量不依赖中心目录,而是通过节点广播、去中心化发现、节点本地缓存等机制来做
目前已经实现的功能:
1. 去中心化加密多跳代理
- 自动寻找网络的节点
- 多跳分层加密(让 Relay 只知道下一跳,看不到最终目标)
- 电路池
- 自动重试与路径切换
2. web 的控制台
- 配置出口选择,你可以选择指定国家或者排除指定国家的出口节点
- 配置出口政策,你可以只给一些服务提供出口网络。
3. 少量测试节点
- 数个 Relay 和 Exit
我做这个项目的出发点主要是:
- 想做一个使用 go 语言的多跳加密代理原型
- 想尝试一下: 如果不依赖 Tor 那种中心化目录,而是尽量做去中心化节点发现,这条路线能不能走通
- 也想看看在 libp2p / 自定义电路协议 / 本地 SOCKS5 Agent 这套组合下,能不能做出一个比较像样的系统
目前这个项目还比较早期,更偏:
- 协议实验
- 网络架构设计
- 工程验证
还不算成熟产品。
如果大家感兴趣,我后面也可以继续整理一些内容,比如:
- 架构图
- 协议设计文档
- 配置示例
- 测试版仓库
也想听听大家看法,比如:
- 这种项目你们最在意的是匿名性、稳定性,还是运维能力?
- 如果不走中心化目录,节点发现这块你们觉得最难的点会是什么?
- 客户端出口选择和出口运营者策略这两个层次,这样拆分是不是合理?
添加回复
你还需要 登录
后发表回复
怎么发现节点?无无中心无公网太难了,除非做 ipv6 不过也难