Skip to content

v1.0.1

Choose a tag to compare

@kele551 kele551 released this 22 Sep 04:45
· 89 commits to main since this release

狐径 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。

用法

  1. 下载 exe,双击运行
  2. 浏览器自动打开控制面板 http://127.0.0.1:8788/ui
  3. 勾选「开机自启」即可后台常驻

首次启动请等 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 体检、候选池自动刷新、全灭自愈、退出还原

反馈:75219857@qq.com