2026-03-15 10:42:37 +08:00
upd
2025-04-04 15:52:32 +08:00
2025-04-19 17:58:17 +08:00
2025-12-07 13:56:05 +08:00
2025-07-20 21:54:34 +08:00
2025-10-03 23:56:23 +08:00
2025-12-14 21:37:11 +08:00
2026-01-17 00:34:06 +08:00
2025-12-02 18:25:04 +08:00
2024-09-27 22:21:12 +08:00
2025-10-08 00:06:32 +08:00
2025-04-20 15:59:09 +08:00
2025-06-14 15:55:48 +08:00
2025-12-07 13:56:05 +08:00
2025-10-17 15:16:39 +08:00
2025-10-17 15:16:39 +08:00
2026-03-15 10:42:37 +08:00
2025-04-20 20:39:30 +08:00
2026-01-17 00:34:06 +08:00
2025-05-17 15:59:10 +08:00
upd
2024-12-31 16:13:14 +08:00
2025-04-17 19:49:45 +08:00

English Russian Chinese

停止维护,后继项目存在且可用公开,可自行寻找。

TLSFragment使用指南

Ask DeepWiki

F-Droid Version

交流群

可用discussions

matrix反馈空间 也可直接加入公开群

有一个私密群,或许可以私信我尝试加入?

安装

运行

作为模块安装后可以直接运行 tls_fragment。(暂不支持)

或者将仓库克隆下来之后运行 run.py

Windows和Android提供GUI客户端Windows客户端在隔壁

TlsFragment原理

TLSfrag

将TCP连接Client的第一个包这个包一般来说是TLS ClientHello一般应用层不会分片在TLS层和TCP层分别进行分片将sni拆入多个包以绕过gfw。

FAKEdesync

利用ttl发送假包扰乱gfw的DPI。

为了避免管理员/root权限的需要。

  • 在Windows上使用TransmitFile函数由于TransmitFIle被限制最多同时运行2个性能较差
  • 在linux上使用管道

通过重传机制发送。

异步方式

使用threading(多线程),有一个asyncio协程版本目前废弃原因是当初默认版本无法支持自代理DoH。现在懒得改了个人使用不会有明显性能差距。

安装使用

运行

git clone git@github.com:maoist2009/TlsFragment.git
pip install poetry
poetry init
python run.py

下载依赖也可pip install -r requirements.txt

也可以编译后开机自启动:

cd tools
BUILD_WINDOWS

之后请为/dist/proxy.exe创建快捷方式,复制到%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup

浏览器使用

建议分流,内置了一个黑/白名单pac生成器。使用和本程序相同的匹配方式见下。pac规则存放在config_pac.pac里。

安装ZeroOmega,导入配置文件OmegaOptions.bakgooreplacer.jsonandroid请使用Mises/ultimatum浏览器等

或者自行通过各种方式分流。

其他可以看Releases

配置方式

程序使用JSON格式配置主要包含全局配置和连接策略配置。

本程序本身不行,~~但是作者喜欢作,~~喜欢乱改配置行为为自己认为优美的写法。因此具体行为以代码为准。

配置文件优先级

  • 程序默认配置文件:config.json
  • 本地覆盖配置文件:config_extra.json(会覆盖config.json中的对应项目)

全局配置

全局配置项控制程序行为,包括:

项名 简单解释
loglevel 日志级别可选值DEBUG, INFO, WARNING, ERROR
port 代理运行端口默认2500
DOH_port DoH代理使用端口默认2500
my_socket_timeout 套接字超时时间(秒),控制连接/数据传输超时
FAKE_ttl_auto_timeout FAKEdesync模式中cookie缓存时间
doh_server DoH服务器地址https://example.com/dns-query?dns= 后接域名发送查询。支持udp://进行udp dns
DNS_cache_update_interval DNS缓存更新间隔
TTL_cache_update_interval TTL缓存更新间隔
UDPfakeDNS 是否启用UDP假DNS功能
BySNIfirst 是否优先通过SNI匹配域名
TransmitFile_Limit Windows下TransmitFile函数并发限制默认2
redirect_when_ip 如果上游指定了IP是否进行重定向
default_policy 默认连接策略,包含具体模式配置(见下文)

连接策略配置

所有连接策略配置都在default_policy对象中定义,包括以下内容:

通用配置
项名 简单解释
mode 操作模式,可选值:TLSfragFAKEdesyncDIRECT或者GFWlike
safety_check 如果是http(s)连接是否只允许TLS1.3不要乱关被dpi了有时候容易死ip
TLSfrag模式配置
项名 简单解释
num_tls_pieces 无SNI段的TLS分块数量
len_tls_sni SNI在TLS层的分块长度字节
send_interval tcp分块发送间隔
num_tcp_pieces 无SNI段的TCP分块数量
len_tcp_sni SNI在TCP层的分块长度字节
FAKEdesync模式配置
项名 简单解释
fake_packet 发送的假包内容如HTTP请求会截取前缀
fake_ttl 假包使用的TTL值支持复杂模式q0-1;3=3;5-1;8-2;20=18表示查询模式)
fake_sleep 发送假包后改为真包的间隔时间(秒)
send_interval tcp分块发送间隔
num_tcp_pieces 无假包区域TCP分块数量
len_tcp_sni 假包长度
TTL_cache 是否缓存查询到的达到服务器所需最低ttl
会在握手包开头和sni开头各进行一次ttl假包操作。

查询模式字符串中,q开头,接下来a-b表示查询的到达服务器最低ttl超过a但是不超过下一个a'假包ttl为真包最低ttl-b,若为`=则直接取b.

域名配置

域名配置通过domains下对象定义,可以为特定域名设置不同的连接策略。每个域名配置可以包含以下项目:

项名 简单解释
IP 目标IP地址
IPtype 首选ip dns类型
DNS_cache 是否缓存DNS查询结果
DNS_cache_TTL DNS缓存TTL默认3天259200秒
域名匹配规则

域名匹配使用AC自动机实现以应对大规模域名列表

  • 如果特定域名是SNI的子串则匹配成功
  • 当多个配置域名匹配时,优先选择最长的配置域名
  • 若长度相同则按Python的字典序规则选择
  • 支持首尾匹配,配置域名会自动添加^$符号确保精确匹配
  • 支持通配符模式(如example.(com|net)),系统会自动展开为多个具体域名

单连接配置优先级

单连接配置的优先级顺序为:IP配置 > 域名配置 > 默认配置。当处理一个连接请求时,系统会按此顺序匹配配置:

  1. IP配置检查目标IP是否在IP重定向规则中匹配
  2. 域名配置若IP未匹配则检查SNI域名是否匹配域名配置
  3. 默认配置:若以上均未匹配,则使用default_policy指定的配置

IP查找

建议使用HTTPS_IP_finder工具获取有效IP地址。该工具支持

  • 扫描IP和端口
  • 通过反DPI代理进行探测
  • 并发扫描提高效率

IP重定向

IP重定向支持将目标IP或IP段重定向到新IP主要特性如下

  • 链式重定向默认情况下系统会递归应用重定向规则直到无匹配或遇到终止标记。例如IP A→B→C最终会使用C。

  • 终止链式在重定向目标IP前添加^符号(如^1.2.3.4则停止递归。例如IP A→^B最终会使用B不再继续重定向。

  • IP段处理支持CIDR表示法1.2.3.0/24。系统会保留原始IP的后缀部分只替换前缀。例如1.2.3.4重定向到10.0.0.0/24,结果为10.0.0.4

  • 精确匹配支持单个IP的精确重定向1.2.3.410.0.0.1

重定向功能主要用于优选将被封锁ip改为可用ip也是一种特殊的优选

注意事项

  • Windows用户由于TransmitFile函数的限制建议不要设置过高的并发数
  • Android用户程序仅为代理需配合浏览器使用
    • 推荐使用Kiwibrowser + Switch Proxy Omega
    • 或使用SocksTun设置代理Address: 127.0.0.1, Port: 2500
  • 安全提示本程序无法保证SNI完全不泄露高风险用户建议结合其他安全工具使用
Description
Miroir du dépot github éponyme
Readme GPL-3.0 2.8 MiB
Languages
Python 94.5%
Dockerfile 2.9%
Shell 2.2%
Batchfile 0.4%