GoForum🌐 V2EX

我用 go 做了一个类似 tor 去中心化多跳加密代理项目

chenjia404 · 2026-03-14 22:07 · 0 次点赞 · 2 条回复

最近自己做了实验性质的项目,想发出来和大家交流一下,也看看有没有人感兴趣一起讨论。

这个项目可以简单理解成:

一个类似 Tor 思路的多跳代理网络,但我不想走 Tor 那种中心化节点目录的路线,而是希望节点发现、节点广播、节点加入网络这部分尽量做成去中心化

我现在在做的整体方向大概是这样:

  • 每个节点启动后,本地直接提供一个 SOCKS5 代理

  • 节点分成两类角色:

    • Relay (中继节点)
    • Exit (出口节点)
  • 本地应用流量先进入本地 SOCKS5 ,再进入这个网络

  • 每个节点都是中继,但是出口节点需要手动开启。

  • 目前支持的路径思路包括:

    • Local -> Exit
    • Local -> Relay -> Exit
    • 后面会继续扩展多跳
  • 整体理念上有点像 Tor:

    • 多跳转发
    • Relay 和 Exit 分工
    • 客户端本地建电路
  • 但一个比较重要的区别是:

    • Tor 的节点目录本质上是中心化的
    • 我这个项目希望尽量不依赖中心目录,而是通过节点广播、去中心化发现、节点本地缓存等机制来做

目前已经实现的功能:

1. 去中心化加密多跳代理

  • 自动寻找网络的节点
  • 多跳分层加密(让 Relay 只知道下一跳,看不到最终目标)
  • 电路池
  • 自动重试与路径切换

2. web 的控制台

  • 配置出口选择,你可以选择指定国家或者排除指定国家的出口节点
  • 配置出口政策,你可以只给一些服务提供出口网络。

3. 少量测试节点

  • 数个 Relay 和 Exit

我做这个项目的出发点主要是:

  • 想做一个使用 go 语言的多跳加密代理原型
  • 想尝试一下: 如果不依赖 Tor 那种中心化目录,而是尽量做去中心化节点发现,这条路线能不能走通
  • 也想看看在 libp2p / 自定义电路协议 / 本地 SOCKS5 Agent 这套组合下,能不能做出一个比较像样的系统

目前这个项目还比较早期,更偏:

  • 协议实验
  • 网络架构设计
  • 工程验证

还不算成熟产品。

如果大家感兴趣,我后面也可以继续整理一些内容,比如:

  • 架构图
  • 协议设计文档
  • 配置示例
  • 测试版仓库

也想听听大家看法,比如:

  • 这种项目你们最在意的是匿名性、稳定性,还是运维能力?
  • 如果不走中心化目录,节点发现这块你们觉得最难的点会是什么?
  • 客户端出口选择和出口运营者策略这两个层次,这样拆分是不是合理?

GitHub: https://github.com/chenjia404/meshproxy

2 条回复
zhang666 · 2026-03-14 22:07
#1

怎么发现节点?无无中心无公网太难了,除非做 ipv6 不过也难

cyp0633 · 2026-03-14 22:27
#2

如何避免 honeypot 呢

添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: chenjia404
发布: 2026-03-14
点赞: 0
回复: 0