Repository navigation
v1.0.1
狐径 FoxPath v1.0.1 — 修复「还原不了系统代理」一类缺陷
下载
FoxPath-v1.0.1.exe— 绿色单文件,无需安装,双击即用
(文件名故意用 ASCII:中文名上传到 GitHub/Gitee 会被改坏)
这一版修了什么
起因是一次完整的代码审计,加上一次现场复现。最关键的一条是退出后系统代理还原不回来:
- 重复点「启用加速」会把还原备份覆盖掉。 旧版每次点都重新备份一次,而那时注册表里已经是
本程序的 PAC 地址 —— 备份里存的就成了「指向自己的 PAC」,之后再点「停用并还原」只是把死地址写回去。
实测:连续点两次启用后,备份里是http://127.0.0.1:8788/pac(正确应为原始值)。
现在已启用状态下不再重复备份。 - 备份写失败也照样改注册表。 旧版把备份写在 exe 同级目录,若该目录不可写(Program Files、只读介质),
写入失败被静默吞掉,退出时无从还原。现在备份固定放%LOCALAPPDATA%\FoxPath\,
写不进去就干脆不改系统代理(宁可不开,也不留下无法还原的状态)。 - 静默模式(开机自启)根本没有注册退出还原。 这正是「程序关了/删了,
AutoConfigURL却还指着
127.0.0.1:8788」的根因。现在两种模式都注册退出还原。 - 新增
--restore:即使备份没了、exe 也删了,也能一条命令把残留的 PAC 设置清干净。 - 新增单实例保护:以前重复双击会起两个进程去抢 8787/8788(Windows 的
SO_REUSEADDR允许抢占同一端口,
行为未定义)。现在用命名互斥保证只有一个实例。 - 端口被占用不再静默崩溃:会说明是哪个端口、并提示怎么处理。
- 日志落文件:exe 是无窗口的,以前出错屏幕上什么都看不到。现在写
%LOCALAPPDATA%\FoxPath\foxpath.log(超过 512 KB 自动只留最近 500 行)。 - PAC 自检:启动时校验 PAC 模板必须是纯 ASCII —— 历史上这里混进中文会让
/pac返回 500,
浏览器拿不到 PAC,症状是「网页能开但按钮点不动」,极难定位。 - 版本号只有一个来源(
github_direct.py的APP_VERSION),不再在面板和打包脚本里各写一份。
顺带修掉的
Fix-GitHub.ps1以前根本跑不起来:文件是 UTF-8 无 BOM,PowerShell 5.1 按 ANSI 读,
中文变乱码后字符串与花括号被破坏,直接 ParserError(实测 3 个语法错误;补上 BOM 后为 0)。
它是旧版备用方案(改 hosts + 装计划任务,需要管理员),与主程序二选一。- 文档与实现不一致:
使用说明.txt曾写 PAC 会代理githubusercontent.com/githubassets.com,
而代码和 README 都明确说这两个域名要走直连、走代理反而坏;下载处的文件名也与实际发布附件不符。 build_exe.py改为从源码读版本号、产出 ASCII 名FoxPath-v<版本>.exe;去掉用不到的--hidden-import PIL。publish_files.py以前只能首次上传(更新已存在的文件会因缺少sha返回 422),现在会先取远端sha。
用法
- 下载 exe,双击运行
- 浏览器自动打开控制面板
http://127.0.0.1:8788/ui - 勾选「开机自启」即可后台常驻
首次启动请等 15~20 秒(要并发体检 49 个候选 IP),体检完成前代理尚未完全生效。
已知边界
- 只代理
github.com/www.github.com;githubassets.com/githubusercontent.com/api.github.com
保持直连(走代理反而连不上,会让页面只剩裸 HTML、按钮点不动) - 不能用
nohup ... &在 shell 里后台启动,那样命令结束进程会被终止 - 控制面板只监听
127.0.0.1,但没有鉴权:本机上的其它程序或网页理论上可以调用它的接口
(本地回环,风险很低;如果你在意,下一版可以加一个启动时随机生成的访问令牌)
上一版
- v1.0.0(2026-09-19)首个版本:本地代理 + PAC、每 5 分钟 IP 体检、候选池自动刷新、全灭自愈、退出还原