运行要求
| 项目 | 要求 |
|---|---|
| Python | 3.11 或更高版本;持续集成当前测试 3.11、3.12、3.13、3.14 |
| 图形界面 | PySide6 6.5 或更高版本,以及可用的系统托盘环境 |
| 用户目录 | platformdirs 3.0 或更高版本 |
| 平台 | Windows、Linux、macOS;项目 CI 覆盖三类系统 |
代理协议核心本身仅使用 Python 标准库;PySide6 和 platformdirs 用于桌面界面与跨平台用户目录。
支持的协议
| 能力 | 状态 |
|---|---|
| 本地 HTTP 正向代理 | 支持 |
| HTTPS CONNECT 隧道 | 支持 |
| 本地 SOCKS4 / SOCKS4a / SOCKS5 CONNECT | 支持 |
| HTTP / SOCKS4 / SOCKS5 上游 | 支持 |
| HTTP Basic 上游认证 | 支持 |
| SOCKS5 用户名/密码认证 | 支持;每项 UTF-8 编码最多 255 字节 |
| SOCKS4 User ID | 支持;SOCKS4 协议不支持密码 |
| SOCKS4/5 上游 BND 地址透传 | 支持 |
| NoProxy 直接连接 | 支持 |
当前限制
- 仅代理 TCP 流量,不实现 SOCKS5 UDP ASSOCIATE。
- 不实现 SOCKS BIND。
- 不提供内容缓存、内容过滤、PAC 文件生成或透明代理。
- 本地入口不提供客户端身份认证,因此应用只允许回环监听并拒绝非回环地址。
- Windows Python 3.14 为规避 Proactor 关闭竞态使用 SelectorEventLoop,有效连接上限为 200;其他环境的默认上限为 512。
- 普通明文 HTTP 每个客户端连接处理一个请求;HTTPS CONNECT 与 SOCKS 隧道不受此限制。
开发与构建
项目固定使用系统 Python 3.14。先运行下列命令并记下输出路径,再通过 uv 运行所有项目脚本:
uv python find --system --no-managed-python --no-python-downloads --resolve-links 3.14
# 修改 Qt Designer 文件后
uv run --python <resolved-path> python tools/generate_ui.py
uv run --python <resolved-path> python tools/generate_ui.py --check
更新和编译翻译:
uv run --python <resolved-path> python tools/generate_i18n.py update
uv run --python <resolved-path> python tools/generate_i18n.py compile
uv run --python <resolved-path> python tools/generate_i18n.py --check
这些脚本使用当前 Python 环境中的 PySide6 工具,并支持 Windows、Linux 与 macOS。