简单、高效、可靠的 PAC 代理解决方案
纯 Python 标准库实现,无需安装任何第三方包,启动即用。
白名单制规则,默认走代理,内网直连。智能判断客户端来源,自动选择最佳代理地址。
修改 proxy.pac 规则文件后无需重启,每次请求自动重新读取,即时生效。
采用白名单制设计,不依赖 dnsResolve 反查,避免 DNS 污染导致的误判。
提供完整的 Docker 和 Docker Compose 配置,一键部署,支持容器化环境。
按天滚动日志,自动清理过期文件,默认保留 7 天,避免磁盘占用过多。
基于 PAC 规则的智能代理分流
浏览器或系统向 mypac 服务请求 PAC 文件
根据域名/IP 规则判断:内网直连,外网代理
返回 DIRECT 或 PROXY 指令,客户端据此连接
本机访问返回 127.0.0.1,局域网访问返回配置的地址
两条命令即可启动服务
cd /Users/samge/PRO/other/mypac
python3 server.py
http://127.0.0.1:10390在「外部资源 / PAC」中填入上面的 URL
通过 .env 文件自定义设置
| 变量 | 说明 | 默认值 |
|---|---|---|
| PAC_PORT | PAC 服务监听端口 | 10390 |
| PROXY_TARGET | 上游代理地址 | 127.0.0.1:7890 |
| LOG_RETAIN_DAYS | 日志保留天数 | 7 |
⚠️ 注意:请确保代理软件已开启「允许局域网连接」,否则局域网设备无法连接代理地址。
修改了 PAC 后客户端不生效?
浏览器/操作系统会缓存 PAC 脚本(通常 30 分钟以上)。即使服务端已更新,客户端仍可能使用旧的缓存规则。
服务端已通过 Cache-Control: no-cache 尽力阻止缓存,但部分系统/浏览器仍会固执缓存,此时需手动按以下方法刷新:
⚠️ netsh winhttp reset proxy 只重置 WinHTTP 层,无法清除浏览器/系统代理的 PAC 缓存。
在插件设置中(如 SwitchyOmega):
一键启动,开箱即用