From 86b5c5ad9ab0e369bcee6233d79591d949c3e5ae Mon Sep 17 00:00:00 2001 From: maoist2009 <179199418+maoist2009@users.noreply.github.com> Date: Sun, 9 Feb 2025 17:55:07 +0800 Subject: [PATCH] add gfwlike and direct --- config.json | 6 ++++++ docs/HELP.md | 48 +++++++++++++++++++++++++++++------------------- server.py | 7 +++++++ 3 files changed, 42 insertions(+), 19 deletions(-) diff --git a/config.json b/config.json index f6b25a5..8664a08 100644 --- a/config.json +++ b/config.json @@ -303,6 +303,12 @@ "cloudflare-dns.com": { "IP": "104.21.3.222", "TLS_frag": 6 + }, + "tracking.miui.com": { + "method": "GFWlike" + }, + "bilibili.com": { + "method": "DIRECT" } }, "pac_domains": [ diff --git a/docs/HELP.md b/docs/HELP.md index d9cc39a..ce2a12f 100644 --- a/docs/HELP.md +++ b/docs/HELP.md @@ -51,6 +51,7 @@ BUILD_WINDOWS #### 公共 + | 项名 | 简单解释 | 是否可以域名自定义 | | ------------------- | --------------------------- | ------------------ | | `output_data` | 是否输出包内容 | 否 | @@ -62,35 +63,46 @@ BUILD_WINDOWS | `TTL_log_every` | ttl缓存频率 | 否 | | `num_TCP_fragment` | 无sni段TCP分块数 | 是 | | `TCP_frag` | sni所在tcp层大致段分块长度 | 是 | -| `method` | 操作方法,`TLSfrag`或`FAKEdesync`| 是 | +| `method` | 操作方法,见下文模式 | 是 | | `IPtype` | dns查询ip默认类型(无则换) | 是 | #### `TLSfrag`模式 -| 项名 | 简单解释 | 是否可以域名自定义 | -| ------------------- | --------------------------- | ------------------ | -|`num_TLS_fragment` | 无sni段TLS分块数 | 是 | -|`TLS_frag` | sni在tls层分块长度 | 是 | + +| 项名 | 简单解释 | 是否可以域名自定义 | +| ------------------ | ------------------ | ------------------ | +| `num_TLS_fragment` | 无sni段TLS分块数 | 是 | +| `TLS_frag` | sni在tls层分块长度 | 是 | #### `FAKEdesync`模式 -| 项名 | 简单解释 | 是否可以域名自定义 | -| ------------------- | --------------------------- | ------------------ | -|`FAKE_packet`|发送的假包内容|是| -|`FAKE_ttl`|假包使用的ttl,填`query`表示自动二分查询|是| -|`FAKE_ttl_auto_timeout`|cookie缓存时间|是| -|`FAKE_sleep`|发送假包后改为真包的间隔时间|是| + +| 项名 | 简单解释 | 是否可以域名自定义 | +| ----------------------- | ---------------------------------------- | ------------------ | +| `FAKE_packet` | 发送的假包内容 | 是 | +| `FAKE_ttl` | 假包使用的ttl,填`query`表示自动二分查询 | 是 | +| `FAKE_ttl_auto_timeout` | cookie缓存时间 | 是 | +| `FAKE_sleep` | 发送假包后改为真包的间隔时间 | 是 | 其中,域名自定义指的是在`domians.xxxx.com`下也有此配置项,且该处配置优先。 +#### `DIRECT`模式 + +直接发包,不做修改 + +#### `GFWlike`模式 + +像双方发送`FIN`,关闭连接。阻止此网站加载。(当一回gfw)。 + ### `domains`下有其他项: -| 项名 | 简单解释 | -| --------- | ------------------- | -| `IP` | IP地址 | -| `port` | 端口(不填默认443) | -| `IPcache` | 是否缓存 | -| `TTLcache` | 是否缓存IP对应TTL | + +| 项名 | 简单解释 | +| ---------- | ------------------- | +| `IP` | IP地址 | +| `port` | 端口(不填默认443) | +| `IPcache` | 是否缓存 | +| `TTLcache` | 是否缓存IP对应TTL | ## 域名匹配规则 @@ -103,5 +115,3 @@ BUILD_WINDOWS 我本人也会维护已知的被ip封锁的网站。 ## 细节看`server.py` - - diff --git a/server.py b/server.py index 0808d79..0fc49bb 100644 --- a/server.py +++ b/server.py @@ -452,6 +452,12 @@ def my_upstream(self, client_sock): send_data_in_fragment(settings.get("sni"),settings,data,backend_sock) elif settings.get("method")=="FAKEdesync": send_data_with_fake(settings.get("sni"),settings,data,backend_sock) + elif settings.get("method")=="DIRECT": + backend_sock.sendall(data) + elif settings.get("method")=="GFWlike": + client_sock.close() + backend_sock.close() + return False else: print("unknown method") backend_sock.sendall(data) @@ -1226,5 +1232,6 @@ def Write_TTL_cache(): json.dump(TTL_cache,f) dataPath=Path.cwd() + ThreadtoWork=True proxythread=start_server() \ No newline at end of file