fastgithub-accelerate:为 DSH 自动接入 GitHub 加速

前言

在 DeepSeek Harness(DSH)里做开发时,web_fetch、web_search 以及子进程里的 git、curl 经常要访问 GitHub。DSH 的 dsh-web-fetch-http 会对公网 IP 做 pin,若域名解析到私网或回环地址,会拒绝请求并返回 WEB_BLOCKED_URL——除非流量走已安装的代理策略,由代理侧完成解析,此时 pin 会被跳过。

本地 FastGithub、gh-proxy 或公司 HTTP(S) 代理都能把 GitHub 流量接到更快路径上,但要在 DSH 里逐项改环境变量或浏览器扩展,既麻烦又容易和 Harness 自带的代理逻辑打架。下面介绍社区插件 fastgithub-accelerate(维护者 zijinggong):把加速源写进 DSH 的代理策略,安装后 web_fetch / web_search、git / curl 以及 Node 侧 fetch 对 GitHub 的访问可透明加速,Composer 里还有小徽章显示当前加速源与状态。

这是什么

fastgithub-accelerate 是 DSH 的 bundle 插件(npm 包名 fastgithub-accelerate,当前资料中版本 0.3.0,MIT 许可证)。它不做浏览器层面的 URL 改写(浏览器走 origin-form,通用正向代理无法按同样方式服务),而是在 Host 侧选择活跃加速源,通过 Harness 共用的 @deepseek-ai/dsh-http-proxy 调用 installProxyFromEnvironment,把 DSH 出站 GitHub 相关流量接到:

  • 本机 FastGithub(DNS 劫持生效时,经插件本地回环转发代理 127.0.0.1:39467),或
  • 你在配置里指定的 自定义 HTTP(S) 上游代理(无需本地 FastGithub、无需 MITM 根证书)。

若启动 DSH 时已通过环境导出代理,该代理始终优先于插件 endpoint;插件不会覆盖用户自有代理,徽章会反映继承到的策略。

插件目录页:skillhub.cn/plugins/zijinggong/fastgithub-accelerate。源码与说明:github.com/zijinggong/fastgithub-accelerate。

核心功能

双路径加速源

Host(index.js)按 status.source 选择当前源:

  1. fastgithub:FastGithub 的 DNS 劫持已生效时,DSH 流量经插件回环转发代理(默认端口 39467),DNS 解析落到 FastGithub 拦截器上。
  2. custom-proxy:在 config.proxyUrl 已设置且 FastGithub 不可用或 mode 指定走自定义代理时,流量直接指向上游 HTTP(S) 代理(gh-proxy、Cloudflare Workers 加速、公司代理、VPN 节点等)。

mode 默认为 auto:DNS 劫持在则优先 FastGithub,否则在配置了 proxyUrl 时回退到自定义代理。

注入 DSH 代理策略

插件从 Harness canonical realpath 加载 @deepseek-ai/dsh-http-proxy(与 Harness 同一模块实例),对活跃 endpoint 调用 installProxyFromEnvironment,因此:

  • web_fetch / web_search 经隧道转发,原先因回环解析被挡的 GitHub 请求有机会恢复正常;
  • git、curl 等子进程继承 http(s)_proxy 环境变量;
  • undici 全局 dispatcher 路由 Node 侧 fetch。

探测与状态接口

约每 60 秒探测 FastGithub 劫持与配置的代理;提供 GET /fastgithub/status 供查询。Client(client.js)在 Composer 渲染状态徽章(例如 FastGithub 加速中、自定义代理加速中、或无可用源)。状态字段含义见 README 中的 Status 表,主要包括:

字段 含义
accelerating 代理已安装且存在活跃加速源
source fastgithub / custom-proxy / none
policy proxied / none
proxyUrl 自定义代理 URL(source 为 custom-proxy 时)
fastgithub.dnsHijack github.com 是否解析到回环
fastgithub.interceptor443 FastGithub :443 拦截器是否就绪
module dsh-http-proxy 导入是否 ok
port / endpoint 插件回环代理地址

安装与启用

在目标 DSH 环境中,任选 README 给出的一种方式(勿自行拼接未在文档出现的 install 语法)。

本地 bundle 路径安装:

plugin_manager → action: install_bundle → target: <path-to>/fastgithub-accelerate

从 GitHub 仓库或 npm(发布后)安装:

dsh plugin --profile web add <owner>/<repo>

将 <owner>/<repo> 换为实际仓库,例如 zijinggong/fastgithub-accelerate。更完整的前置条件(FastGithub 运行、DNS 劫持、MITM 根证书信任)与验证步骤见仓库内 INSTALL.md。

典型用法

仅 FastGithub

在本机已按 FastGithub 文档完成安装与启动(如 fastgithub.exe start 或 UI 启动),并满足 README 要求:http.sslverify false、根证书 CN=FastGithub 已加入信任库。插件 mode 保持默认 auto 即可;DNS 劫持生效后,source 应为 fastgithub。

无 FastGithub,只用自定义代理

在 profile 的 cordis.patch.yml 中为该插件写入配置。修改后需重启 DSH。

# in the profile's cordis.patch.yml
- id: fastgithub-accelerate
  config:
    mode: auto        # auto | fastgithub | custom-proxy
    proxyUrl: http://<proxy-host>:<proxy-port>
  • mode: auto(推荐):FastGithub 劫持在则用之,否则用 proxyUrl。
  • mode: custom-proxy:强制走 proxyUrl,忽略 FastGithub。

重启后访问 GET /fastgithub/status,应看到 "source": "custom-proxy"、"proxyUrl": "<your proxy>"、"accelerating": true;web_fetch 与 git 的 GitHub 流量经该代理,无需本地 FastGithub、DNS 劫持或 MITM 根证书。

配置项汇总:

Key 默认值 含义
mode auto auto | fastgithub | custom-proxy
proxyUrl (空) 上游 HTTP(S) 代理,形如 http://host:port

适用场景与注意

适合谁: 经常在 DSH 里拉 GitHub 仓库、用 web_fetch 读 README 或 API,又已在本机跑 FastGithub,或有一台可信、能稳定访问 GitHub 的 HTTP(S) 代理的开发者。

前置条件(二选一):

  • FastGithub 已运行且 DNS 劫持、443 拦截与证书信任按 FastGithub / INSTALL 文档就绪;或
  • 配置了可达的 proxyUrl。

两者皆无则插件仍可加载,但 source 为 "none",不会加速。

安全与运维: 自定义代理必须能可靠访问 GitHub 且值得信任;使用公共 gh-proxy 时需关注稳定性与证书策略。README 对此有明确提醒。

权限与审阅: 插件在当前 DSH 进程权限下运行,会安装进程级代理策略并周期性探测网络。安装前请阅读 源码与 LICENSE,确认符合你的安全策略。DSH 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

fastgithub-accelerate 把 FastGithub 或自定义 HTTP(S) 代理接到 DSH 统一代理策略里,减少手工改代理和因回环解析导致的 GitHub 访问失败,并用 Composer 徽章和 /fastgithub/status 暴露当前加速源。需要细节时以仓库 README、INSTALL.md 为准。

  • 目录页:https://www.skillhub.cn/plugins/zijinggong/fastgithub-accelerate
  • GitHub:https://github.com/zijinggong/fastgithub-accelerate
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye