ProxyNodeHub 使用说明
根据开源仓库 wanvfx/ProxyNodeHub 的 README 整理:在 GitHub 上发现活跃免费节点仓库、评分去重并导出订阅。含 Windows 客户端与 Docker Web 两条路径。
个人笔记,仅供学习,风险自负。 请遵守当地法律与各服务条款;免费节点波动大,勿用于网银等敏感场景。
一句话:自动在 GitHub 上找「还在更新」的免费节点仓库,评分、去重,导出可用订阅链接。不用自己一个个翻。
有两个入口:
| 方式 | 适合谁 | 怎么跑 |
|---|---|---|
| Windows 客户端 | 本机用、顺手导出 | 解压运行 ProxyNodeHub.exe |
| Docker Web | 服务器 / NAS 常开、手机也能开网页 | 拉镜像,浏览器登录 |
两边共用同一套「搜索 + 分析」核心。Web 不会替你跑桌面里的测速内核;测速要另接可选的 subs-check。
一、Windows 客户端(最快上手)
1. 下载
打开 Releases:
- 不想装任何运行时:下
ProxyNodeHub_v*_self-contained.zip - 机器已有 .NET 8 Desktop Runtime:可用更小的框架依赖版
2. 运行
- 解压到任意目录(建议路径不要带中文空格)
- 双击
ProxyNodeHub.exe - 按 F5,或点「搜索并分析」
3. 常用快捷键
| 键 | 作用 |
|---|---|
F5 |
开始 / 取消搜索 |
Ctrl+C |
复制最佳订阅链接 |
Ctrl+L |
详情面板 |
Ctrl+D |
收藏夹 |
Ctrl+F |
筛选框 |
Esc |
关弹窗 |
4. 处理模式(按耐心选)
- 极速:并发高、快,漏检稍多
- 标准:日常推荐
- 深度:更慢、更全
- 兼容:网络差、镜像不稳时用
5. GitHub Token(可选但建议)
不填也能搜,但容易撞 API 限额。填了更稳。
- 在 GitHub → Settings → Developer settings → Personal access tokens 建一个 只读 Token(搜公开仓库够用)
- 桌面端会明文写在 EXE 同目录的
settings.json:别分享、别提交 Git
6. 本机数据在哪
状态不塞进 EXE,而在 %AppData%\ProxyNodeHub\(搜索历史、日志、特征库等)。已知仓库映射 known_repos.json 随程序分发。
二、Docker Web(服务器常驻)
适合挂在 NAS / VPS,浏览器当工作台:发现、收藏、导出、定时任务、接外部测速。
官方说明镜像:helloworldz1024/proxynodehub(以仓库 README / Actions 为准)。当前发布多为 linux/amd64。
1. 准备目录与管理员密码(只做一次)
把下面路径换成你自己的(示例沿用 README):
mkdir -p /mnt/usb1-1/proxynodehub/data /mnt/usb1-1/proxynodehub/secrets
test -e /mnt/usb1-1/proxynodehub/secrets/admin-password || \
(umask 077; openssl rand -base64 -out /mnt/usb1-1/proxynodehub/secrets/admin-password 32)
chown -R 1654:1654 /mnt/usb1-1/proxynodehub/data /mnt/usb1-1/proxynodehub/secrets
chmod 750 /mnt/usb1-1/proxynodehub/data /mnt/usb1-1/proxynodehub/secrets
chmod 600 /mnt/usb1-1/proxynodehub/secrets/admin-password
密码只在服务器上看,不要发到聊天里。
2. 启动容器
先拉镜像:
docker pull helloworldz1024/proxynodehub:latest
生产建议用 sha-<完整提交> 钉死版本,不要只信 latest。
docker run -d \
--name proxynodehub \
--restart always \
--read-only \
--tmpfs /tmp:rw,noexec,nosuid,size=64m \
--cap-drop ALL \
--security-opt no-new-privileges \
--memory 512m --cpus 1 --pids-limit 128 \
--log-opt max-size=5m --log-opt max-file=2 \
-p 192.168.31.122:8388:8080 \
-e ADMIN_PASSWORD_FILE=/run/secrets/admin-password \
-e GITHUB_TOKEN="${GITHUB_TOKEN:-}" \
-e REFRESH_HOURS=6 \
-e REPO_COUNT=10 \
-e INACTIVE_DAYS=7 \
-e AUTO_REFRESH=true \
-v /mnt/usb1-1/proxynodehub/data:/data \
-v /mnt/usb1-1/proxynodehub/secrets/admin-password:/run/secrets/admin-password:ro \
helloworldz1024/proxynodehub:latest
把 192.168.31.122 换成你的内网 IP。不要把端口直接暴露到公网;跨不可信网络请再加 HTTPS 反代。
浏览器打开:http://<你的IP>:8388,用密码文件内容登录。
也可 -e ADMIN_PASSWORD=...(至少 12 位),与 ADMIN_PASSWORD_FILE 二选一。
3. Web 六个入口怎么用
- 发现仓库:点搜索/分析,看评分与候选;可筛选、多选、导出、批量收藏
- 我的收藏:长期跟的仓库
- 订阅检测:接上外部 subs-check 后才有速度/媒体结果(可选)
- 运行记录:每轮任务日志、清理搜索记忆
- 学习记录:特征库学到的路径
- 服务设置:Token、定时(1–24 小时)、候选数、检测器连接等
4. 重要接口含义(别搞混)
| 地址 | 含义 |
|---|---|
/live |
进程活着(Docker healthcheck) |
/health |
有约 25 小时内有效结果,否则 503 |
/subscriptions.txt |
来源订阅 URL 清单,不是测速后的节点包 |
首次成功发现前,/subscriptions.txt 可能 503;失败时尽量保留上一份有效快照。
5. 可选:接 subs-check
在已有检测器配置里追加(别整文件覆盖):
sub-urls-remote:
- http://172.17.0.1:8388/subscriptions.txt
网桥 IP 按你机器改。清单接口一般不需要 API Key。
要在 Web 里管检测器,再到「服务设置」填 SUBSCHECK_API_URL / Key,或创建容器时用环境变量。
三、日常推荐流程
客户端
- F5 跑一轮
- 看活跃度高、更新勤的仓库
- 复制最佳订阅 / 导出合并结果
- 导入 Shadowrocket / Clash 等客户端
- 自己测延迟;工具帮你找源,不保证每条节点永远可用
Web
- 登录 → 服务设置里填 GitHub Token(建议)
- 开自动发现,或手动跑一轮
- 收藏靠谱源;需要测速再接 subs-check
- 客户端订阅「清单」或导出的 URI/Base64(按你客户端支持的格式)
免费节点波动大:冷门、更新勤的源往往更耐用;榜单热门容易挤爆。
四、配置速查(Web 环境变量)
| 变量 | 说明 |
|---|---|
ADMIN_PASSWORD / ADMIN_PASSWORD_FILE |
必填,二选一 |
GITHUB_TOKEN |
可选;也可在页面覆盖 |
REFRESH_HOURS |
首次默认 6;之后以页面 state.json 为准 |
REPO_COUNT |
首次默认分析 10 个候选 |
INACTIVE_DAYS |
首次默认只看近 7 天有更新的 |
AUTO_REFRESH |
是否后台自动发现 |
SUBSCHECK_* |
可选检测器连接 |
调度类变量只初始化新数据卷;改完页面设置后以 /data/state.json 为准。备份请整卷备份 /data(含密钥环);丢密钥环会解不开在线连接配置。
五、常见问题
搜不到 / 限额?
加 GitHub Token;换「兼容」模式;看日志是否镜像全挂。
Web 登录不上?
确认密码文件挂载、chown 1654:1654、端口映射;改密码后旧会话会失效。
有清单但 Clash 里没节点?
/subscriptions.txt 只是「去哪下载订阅」的列表。真正节点要客户端或 subs-check 再拉那些 URL。YAML 不完整、空模板不会被算作有效节点。
升级 Docker?
记下当前镜像 digest → 停旧容器 → 同参数起新版 → 同一 /data,不要两个容器同时写同一卷 → 查 /live、/health。
和自己买的机场 / VPS 节点什么关系?
这是「从 GitHub 公开仓库挖免费源」的工具,和自建机场、付费订阅是另一条线;可当补充源,别当唯一出口。
六、自己编译(可选)
需要 .NET 8 SDK(桌面)/ Web 侧文档要求 .NET 10:
# Windows 自包含
dotnet publish src/ProxyNodeHub.csproj -c Release -r win-x64 -p:SelfContained=true -o dist/self-contained
# 框架依赖
dotnet publish src/ProxyNodeHub.csproj -c Release -r win-x64 -p:SelfContained=false -o dist/framework-dependent
许可:MIT。作者页面见仓库说明。
说明根据仓库 README 整理;镜像名、端口、路径以你实际部署为准。