11# ECH Workers 客户端
22
3- 跨平台的 ECH Workers 代理客户端,支持 Windows 和 macOS 。
4-
3+ 跨平台的 ECH Workers 代理客户端,支持 Windows、macOS 和 Linux(ARM/x86) 。
4+ tg交流群 https://t.me/+ft-zI76oovgwNmRh
55## 致谢
66
77本项目的客户端和 Go 核心程序均基于 [ CF_NAT] ( https://t.me/CF_NAT ) 的原始代码开发。
1010
1111## 功能特性
1212
13- - ✅ 服务器配置管理(支持多个服务器配置)
14- - ✅ 启动/停止代理进程
15- - ✅ 实时日志显示
16- - ✅ 系统托盘图标(可选)
17- - ✅ 开机自动启动
18- - ✅ 配置自动保存
13+ - ✅ ** 多服务器管理** - 支持多个服务器配置,快速切换
14+ - ✅ ** 一键系统代理** - 自动设置系统代理,支持分流模式
15+ - ✅ ** 智能分流** - 全局代理、跳过中国大陆、不改变代理三种模式
16+ - ✅ ** 中国IP列表** - 自动下载并应用完整的中国IP列表(基于 [ mayaxcn/china-ip-list] ( https://github.com/mayaxcn/china-ip-list ) )
17+ - ✅ ** 系统托盘** - 最小化到系统托盘,不占用任务栏
18+ - ✅ ** 开机自启** - 支持 Windows 和 macOS 开机自动启动
19+ - ✅ ** 高 DPI 支持** - 完美支持高分辨率显示器
20+ - ✅ ** 实时日志** - 查看代理运行状态和日志
21+ - ✅ ** 配置持久化** - 自动保存配置,下次启动自动加载
1922
2023## 快速开始
2124
2629- ** Windows** : ` ECHWorkers-windows-amd64.zip `
2730- ** macOS Intel** : ` ECHWorkers-darwin-amd64.zip `
2831- ** macOS Apple Silicon** : ` ECHWorkers-darwin-arm64.zip `
32+ - ** Linux x86_64** : ` ECHWorkers-linux-amd64.tar.gz `
33+ - ** Linux ARM64** : ` ECHWorkers-linux-arm64.tar.gz `
2934
3035解压后直接运行:
3136- ** Windows** : 双击 ` ECHWorkersGUI.exe ` 启动 GUI,或运行 ` ech-workers.exe ` 使用命令行
3237- ** macOS** : 运行 ` ./ECHWorkersGUI ` 启动 GUI,或运行 ` ./ech-workers ` 使用命令行
38+ - ** Linux** : 运行 ` ./ECHWorkersGUI ` 启动 GUI,或运行 ` ./ech-workers ` 使用命令行
3339
3440> ** 注意** : 预编译版本已包含所有依赖,无需安装 Python 或任何其他软件。
3541
@@ -68,9 +74,10 @@ python3 gui.py
6874
6975## 系统要求
7076
71- - ** Windows** : Windows 10+
77+ - ** Windows** : Windows 10+ (Windows 11 完全支持)
7278- ** macOS** : macOS 10.13+
73- - ** Python** : 3.6+
79+ - ** Linux** : Ubuntu 18.04+ / Debian 10+ / CentOS 7+ (支持 x86_64 和 ARM64)
80+ - ** Python** : 3.6+ (仅从源码运行时需要)
7481- ** Go** : 1.23+ (仅编译时需要,ECH 功能需要此版本)
7582
7683## 配置说明
@@ -82,18 +89,45 @@ python3 gui.py
8289
8390## 使用说明
8491
92+ ### 基本使用
93+
85941 . ** 配置服务器**
86- - 点击"新增"添加服务器配置
87- - 填写服务地址和监听地址
88- - 可选:填写身份令牌、IP、DNS、ECH 等高级选项
95+ - 点击"新增"添加服务器配置(会创建新配置,不会覆盖现有配置)
96+ - 填写服务地址(如:` your-worker.workers.dev:443 ` )和监听地址(如:` 127.0.0.1:1080 ` )
97+ - 可选:填写身份令牌、优选IP、DOH服务器、ECH域名等高级选项
98+ - 点击"保存"保存当前配置
8999
901002 . ** 启动代理**
91- - 点击"启动代理"按钮
101+ - 点击"启动代理"按钮启动代理服务
92102 - 查看日志区域了解运行状态
103+ - 点击"停止"按钮停止代理服务
104+
105+ 3 . ** 设置系统代理**
106+ - 启动代理后,点击"设置系统代理"按钮
107+ - 系统会自动配置代理设置
108+ - 停止代理或关闭程序时会自动清理系统代理
109+
110+ ### 分流功能
111+
112+ 程序支持三种分流模式:
113+
114+ - ** 全局代理** - 所有流量都走代理(只绕过本地和内网地址)
115+ - ** 跳过中国大陆** - 中国网站直连,其他网站走代理
116+ - 自动下载并应用完整的中国IP列表
117+ - 包含常见中国域名(* .cn, * .baidu.com, * .qq.com 等)
118+ - ** 不改变代理** - 不设置系统代理,手动配置
119+
120+ 切换分流模式后,如果已设置系统代理,会自动更新绕过规则。
121+
122+ ### 系统托盘
93123
94- 3 . ** 系统托盘** (如果安装了 pystray)
95- - 应用会在菜单栏显示图标
96- - 点击图标可以打开/隐藏窗口
124+ - ** 最小化到托盘** - 关闭窗口时程序会最小化到系统托盘,不会退出
125+ - ** 显示窗口** - 双击托盘图标或右键菜单选择"显示窗口"
126+ - ** 退出程序** - 右键托盘图标选择"退出"
127+
128+ ### 开机自启
129+
130+ 勾选"开机启动"复选框,程序会在系统启动时自动运行并启动代理(如果配置了自动启动参数)。
97131
98132## 故障排除
99133
@@ -108,6 +142,11 @@ pip3 install --break-system-packages PyQt5
108142
109143# Windows
110144pip install PyQt5
145+
146+ # Linux
147+ sudo apt install python3-pyqt5 # Debian/Ubuntu
148+ # 或
149+ pip3 install PyQt5
111150```
112151
113152### 找不到 ech-workers
@@ -117,6 +156,36 @@ pip install PyQt5
117156go build -o ech-workers ech-workers.go
118157```
119158
159+ ### Windows 11 系统代理问题
160+
161+ 如果 Windows 11 系统代理设置失败:
162+ - 确保以管理员权限运行程序
163+ - 检查防火墙设置
164+ - 程序会自动使用正确的代理格式(` 127.0.0.1:端口 ` )
165+
166+ ### Linux 系统代理设置
167+
168+ Linux 暂不支持自动设置系统代理,需要手动配置:
169+ - 在系统设置中配置 SOCKS5 代理为 ` 127.0.0.1:端口 `
170+ - 或使用环境变量:` export ALL_PROXY=socks5://127.0.0.1:端口 `
171+
172+ ### 中国IP列表加载失败
173+
174+ 如果中国IP列表下载失败:
175+ - 程序会使用默认的主要IP段
176+ - 检查网络连接
177+ - 列表会缓存24小时,过期后自动重新下载
178+
179+ ### 删除服务器后列表清空
180+
181+ 已修复:删除服务器后会自动切换到其他服务器,无需重启程序。
182+
183+ ### bad CPU type in executable (macOS)
184+
185+ 如果遇到此错误:
186+ - Intel Mac 请下载 ` darwin-amd64 ` 版本
187+ - Apple Silicon Mac 请下载 ` darwin-arm64 ` 版本
188+
120189## 开发
121190
122191### 本地测试
@@ -141,10 +210,27 @@ git push origin v1.0.0
141210
142211本项目基于 [ CF_NAT] ( https://t.me/CF_NAT ) 的原始代码开发。
143212
213+ ## 技术细节
214+
215+ ### ECH (Encrypted Client Hello)
216+
217+ ECH 是 TLS 1.3 的扩展功能,用于加密 TLS 握手中的 SNI(服务器名称指示),提供更强的隐私保护。这是本程序的** 核心功能** ,需要 Go 1.23+ 支持。
218+
219+ ### 中国IP列表
220+
221+ 程序会自动从 [ mayaxcn/china-ip-list] ( https://github.com/mayaxcn/china-ip-list ) 下载完整的中国IP列表,用于"跳过中国大陆"分流模式。列表会缓存24小时,过期后自动更新。
222+
223+ ### 系统代理设置
224+
225+ - ** Windows** : 通过注册表设置系统代理,支持 SOCKS5 代理
226+ - ** macOS** : 使用 ` networksetup ` 命令设置所有网络服务的 SOCKS 代理
227+ - ** Linux** : 暂不支持自动设置,需要手动配置
228+
144229## 相关链接
145230
146231- ** 原始项目** : [ CF_NAT - 优选IP Telegram 频道] ( https://t.me/CF_NAT )
147232- ** Telegram** : [ @CF_NAT] ( https://t.me/CF_NAT )
233+ - ** 中国IP列表** : [ mayaxcn/china-ip-list] ( https://github.com/mayaxcn/china-ip-list )
148234## Star History
149235
150236<a href =" https://www.star-history.com/#byJoey/ech-wk&type=timeline&logscale&legend=top-left " >
0 commit comments