1. 安装

源代码版本需要 Python 3.11 或更高版本。可以直接从 PyPI 安装:

pip install PyProxySwitch

推荐使用 pipx 创建隔离环境,同时让命令全局可用:

pipx install PyProxySwitch

也可以直接安装 Git 仓库:

pip install git+https://github.com/Kder/PyProxySwitch.git

安装会自动拉取 PySide6 与 platformdirs。

2. 启动

安装后运行 pyproxyswitch 启动图形界面,或使用 pyproxyswitch-cli 命令入口。源码目录也可以直接运行:

python PyProxySwitch.py
python -m pyproxyswitch

首次启动会在当前用户配置目录创建 PPS.confproxy.txt,不会写入 site-packages。

3. 配置网络应用

把应用的 HTTP/HTTPS 代理或 SOCKS 代理设置为:

地址:127.0.0.1
端口:8888

这是 PyProxySwitch 的本地入口,不是上游代理地址。HTTP、SOCKS4/SOCKS4a 和 SOCKS5 客户端可以共用这个端口。若应用分别要求“HTTP 代理”和“HTTPS 代理”,两者均可填写该地址;HTTPS 会使用 CONNECT 隧道。

4. 添加上游代理

双击托盘图标,或右击后选择“设置”。在表格中添加代理名称、地址、端口、协议以及可选认证信息。支持的上游类型为 HTTPSOCKS4SOCKS5

也可以直接编辑当前用户配置目录中的 UTF-8 proxy.txt。每行格式为“代理名称 代理地址:端口 用户名:密码 代理类型”:

test1 test1.com:8080
test2 test2.com:8080 user:pass
test3 1.2.3.4:80
socks_proxy socksproxy.com:3128 SOCKS5

认证信息和代理类型均可省略;省略类型时默认为 HTTP。代理列表在运行时直接读取,不再生成第三方后端的配置文件。

5. 切换路由

右击系统托盘图标并选择上游。选择 NoProxy 表示直接连接目标,不经过上游代理。

上游切换不重启本地端口。切换时已经建立的连接继续使用原上游;此后建立的新连接使用新上游。因此测试切换结果时,请新开连接或重新加载应用。

为避免意外成为局域网公开代理,默认只监听 127.0.0.1。确需调整时,在 PPS.conf 中显式设置 LOCAL_ADDRESS,并同时配置适当的防火墙和访问边界。

6. 便携模式

便携模式把配置和日志保存在程序目录中,不向系统用户目录写入应用数据。Windows 单目录版解压后即可运行;包内的 portable.ini 会让配置写入 config/、日志写入 logs/。删除该标记即可恢复系统用户目录。

源码、pip 和 exe 运行方式都可将环境变量 PYPROXYSWITCH_HOME 指向便携目录。路径优先级为:

PYPROXYSWITCH_HOME > portable.ini(仅冻结程序) > 系统用户目录

维护者可运行 uv run --group build python tools/build_nuitka.py;uv 会按项目的 build 依赖组安装 Nuitka 并生成 Windows 便携 zip。编译中间文件写入 build/nuitka/,最终目录和 zip 写入 release/

7. 卸载与数据清理

pip uninstall PyProxySwitch
# 使用 pipx 安装时:
pipx uninstall PyProxySwitch

卸载命令只移除程序和命令入口,按 Python 应用惯例保留用户配置与日志。需要彻底删除时,再手动清理:

通过 pip 安装时,PySide6、platformdirs 等依赖也会保留,不再需要时请另行卸载。便携版只需删除程序文件夹。

命令行选项

pyproxyswitch --version
pyproxyswitch --log-level DEBUG

--log-level 可选 DEBUGINFOWARNINGERROR,用于覆盖本次启动的控制台日志级别。

退出

从托盘菜单选择“退出”。程序会停止接受新连接,并妥善结束本地代理服务。关闭设置窗口不会退出托盘程序。