lumine:解决 SNI 阻断的本地 SOCKS5 代理

2026-04-11 12:181阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:
github.com

GitHub - moi-si/lumine: A lightweight local SOCKS5 server written in...

A lightweight local SOCKS5 server written in Golang that protects HTTPS connections.

实际上是 TlsFragment 的分支,非常感谢原作者,但是名字敏感就不贴在这了。

使用

见仓库主页。默认监听 127.0.0.1:1080。

原理

常见的老技术:

  • 把 ClientHello 拆到多个 TLS 记录里(TLS 记录分片),大多数网站支持
  • 先发 TTL 较低的假包,再发一部分真包,剩下的直接发,适用于不支持分片的网站

特性

  • 性能比原版高
  • GWS 非第三方中转
  • 配置文件有国内 IP 表,国内网站都会原封不动地发过去,前提是 DNS 返回国内 IP
  • 简单根据域名 / SNI server_name / IP 阻断广告
  • 如果 thongtech/go-legacy-win7 可以编译并正常运行就支持 win7
  • 所有功能不需要管理员 / root 权限

缺点

  • server_name 还是能被探测到的,有被秋后算账的风险
  • 没有 TCP 分块
  • 不提供 PAC
  • 没有内置 DNS,要另外跑一个纯净的本地 UDP DNS,比如这个(自动根据 IP 段分流。慎用,内存占用约 30 MB,还存在永久缓存);没有 DNS 缓存
  • ttl-d 模式在 Windows 上性能低下,没有 TTL 缓存,且暂不支持 Linux、Darwin
  • 新版很可能与旧版不兼容
网友解答:
--【壹】--:

感谢分享


--【贰】--:

Sheas Cealer 隐藏了真实 server_name,风险可能低一点。结合是指什么?


--【叁】--:

和这个比较怎么样,能结合在一起吗, SpaceTimee/Sheas-Cealer: Just Ceal It (可用于无代理合法抵御网络监听和开展网络研究)


--【肆】--:

TLS 握手最后有校验,想要强制 ECH 得做 TLS MITM。


--【伍】--:

我在 debian 13 trixie 上面试了一下,是好的哦。是个很棒的软件。如果有控制日志等级的配置选项或者环境变量就好了。

以及我不是 TLS 专家,但是我有个想法,有可能实现用 socks 代理强制 TLS 连接使用 ECH(Encrypted Client Hello) 的功能吗?就是 socks 代理在收到 TLS 连接时先把它的 Client Hello 头给切下来,根据 SNI 查询 DNS 得到域名对应的公钥,组装出一个新的 Client Hello 头拼上去。这种功能是可以实现的吗?


--【陆】--:

厉害啊大佬,收藏了


--【柒】--:

但是假包和真包是在一个 TCP 连接里发的,五元组就是同一个。


--【捌】--:

在 Android 上使用有奇怪的问题


--【玖】--:

原来如此,谢谢您!


--【拾】--:

TlsFragment原作者来冒个泡。目前配置整体上偏自用项目?(不同运营商网络环境差距真的大)。项目主要卖点是其高度可配置性和一年来的适配配置,核心功能其实不如byedpi。
config.json基本参照电信。


--【拾壹】--:

高级软件 收藏了


--【拾贰】--:

理论上支持,未测试,releases 里没有,得自己编译

能说一下具体为啥不能用吗?


--【拾叁】--:

假包是明文 HTTP 请求,可以干扰 DPI,会因 TTL 过期被丢掉,而真包(仅 ClientHello)完整到达目标。确实不能解决路由扩散之类的。


--【拾肆】--:

至少现在可以的


--【拾伍】--:

感谢分享


--【拾陆】--:

感谢,有时间了,我也去试一下


--【拾柒】--:

感谢分享喵~


--【拾捌】--:

不支持linux?


--【拾玖】--:

感谢大佬。