dev-sidecar

docmirrorMPL-2.0活跃维护 有专家点评

给开发者用的本地代理边车,解决 GitHub 打不开、clone 和 release 下载慢、Stack Overflow 访问卡的问题,装好即可加速。

开发者边车,github打不开,github加速,git clone加速,git release下载加速,stackoverflow加速

v2.3.5发布于 2026-11-03 10:30 UTC25,022star +45 / 7 天3,043fork同步于 2026-11-11 05:21 UTC

专家点评

上手难度:进阶更新于 2026-11-11

在本机起一个代理,把 GitHub 和 Stack Overflow 的请求改道到国内镜像,替代手动改 hosts 和配 git proxy

适用场景

  • 国内网络下 git clone 大仓库或下 release 二进制:它改 SNI 走直连、失败切镜像,比手动维护 hosts 条目省事,但镜像本身挂了就得自己换配置
  • 团队里非网络背景的同事要拉 GitHub 依赖:Electron 图形界面装完点一下就行,比让他们各自配 git/npm proxy 和根证书可控
  • npm 装包慢:内置 registry 一键切换和 npm 代理,省掉单独装 nrm 再配一遍
  • 需要同时加速 GitHub 和 Stack Overflow 的日常开发机:一个进程覆盖两类域名,不用为每个站点找单独方案

踩坑

  • 它会接管系统代理,和 Clash、公司 VPN 这类已有代理直接冲突,Watt Toolkit 用户还得切 hosts 模式;机器上已经有代理链路时先想清楚谁在最外层
  • 应用异常退出或开着它重启电脑会导致断网,得重新打开应用恢复;这是它改系统代理的固有代价,不是偶发 bug
  • 加速依赖第三方镜像域名,issue 里反复出现镜像失效、换配置文件的帖子(fgit.ml、fastgit、ghproxy 都出现过),意味着长期维护成本落在你身上,不是装上就不用管
  • 火狐不读系统根证书,要手动导入 ~/.dev-sidecar 下的证书;卸载前没正常退出还得手工清系统代理和 git/npm 配置

同类对比

如果只是偶尔 clone 一两个仓库,用 git 的 url insteadOf 配镜像或直接走已有代理更轻;需要全局透明代理和分流规则时,Clash、sing-box 这类通用代理客户端比它更合适,它只解决 GitHub 系域名的加速。

怎么上手

由 README 提炼,执行前请确认
下载对应平台安装包:Windows 选 DevSidecar-x.x.x-windows-universal.exe,Mac 选 DevSidecar-x.x.x-macos-universal.dmg,Linux 选 .deb 或 .AppImage;首次打开按提示安装根证书
硬件要求按 README 说明

README 未说明硬件要求;支持 Windows、Mac、Linux(Ubuntu),以 Electron 桌面应用形式运行

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

本地代理型开发者边车,把 GitHub、Stack Overflow 等请求转到国内加速通道

给开发者用的本地代理边车,解决 GitHub 打不开、clone 和 release 下载慢、Stack Overflow 访问卡的问题,装好即可加速。

核心能力

  • 用本地代理把 https 请求转发到国内加速镜像
  • DNS 优选按网络状况挑选最快域名 IP
  • 请求拦截支持多镜像备份与失败自动切换
  • 修改 SNI 实现 github 直连与 clone、release 下载加速
  • 支持 npm registry 一键切换与 npm 代理

容易踩的坑

启动会自动修改系统代理,与其他代理软件冲突,Watt Toolkit 需改用 hosts 模式;应用意外关闭或开着它重启电脑可能导致无法上网,需重新打开应用恢复;火狐浏览器不走系统根证书,需手动导入 ~/.dev-sidecar 下的证书;卸载前未正常退出需手动关闭系统代理并清理 git/npm 代理配置

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v2.3.5
  1. v2.3.5最新正式版2026-11-03 · 2026-11-03 10:30 UTC

    一、更新内容:

    【摘要】

    v2.3.5 是修复版本:解决 2.3.4 打开代理即报 secretVault.migrate is not a function、点「安装证书」没有任何反应、全新安装时无证书可装、P2P 节点分享验签失败等问题。安装包从 132 MB 减小到约 107 MB(移除未使用依赖、原生模块按目标架构裁剪),Electron 升级到 42.11.18,内置官方配置补上 Grok 的 ECH 规则。本版 Windows 安装包未签名。

    【优化】
    • 安装包减小约 25 MB:渲染层依赖不再打进包内,未使用的运行时依赖已移除;koffi 等原生模块按目标架构裁剪,x64 安装包不再携带 arm64/ia32 的二进制。
    • Electron 升级到 42.11.18:开发环境与打包版本此前不一致(一个 42.11.18、一个 42.11.16),现已统一,跟随安全补丁。
    • 内置官方配置更新:新增 Grok(grok.com / x.ai)的 ECH 规则,grok.ai 不兼容 ECH,保持普通连接。
    • 更新对话框补回入口:恢复「下载完整安装包」和「手动下载」两个入口,更新失败时不必再自行找下载页。
    【问题修复】
    • 修复打开代理服务报错:2.3.4 在部分环境点「开启代理」会弹 Error invoking remote method 'apiInvoke': TypeError: secretVault.migrate is not a function,代理不启动。原因是密钥存储模块导出的是命名空间,实例挂在其 vault 属性上,调用处却把命名空间当实例用;现已修正,并且迁移或环境准备失败不会再中断启动。
    • 修复「安装证书」点了没反应:Electron 的 openPath 失败时不抛异常、只返回错误文本,旧逻辑丢弃返回值并直接把「根证书已安装」写进设置,于是失败表现为「什么都没发生 + 假成功」。现在会先判断文件是否存在,失败时显示具体错误,必要时回退到 certutil 直接导入。
    • 修复全新安装无证书可装:CA 以前只在代理子进程启动时生成,而 2.3.4 恰好起不来代理,形成死循环。现在点安装证书会按需生成 CA;证书与密钥库缺一半时自动恢复,两边都没有才新生成;证书还在但私钥彻底丢失则明确报错,不会静默换发导致已安装的根证书失效。
    • 修复 P2P 节点分享验签失败:身份文件里记录的公钥与密钥库里的私钥曾经不是一对(密钥存储后端切换过),导致卡密报 bad signature、对端接口返回 400。现在启动时会用私钥重建公钥与 nodeId,保持两者一致。
    • 修复本地打包钩子崩溃:打包钩子 require('builder-util') 在 pnpm 严格布局下解析不到,打包直接失败;现已改为不依赖该包。
    • 修复本地 install-app-deps 失败:配置文件不是 electron-builder 的默认名,子命令读不到 electronVersion,会退回到 package.json 里的范围值并报错;已补上默认名的转发配置。
    【其他】
    • 测试套件重构:原先「require 即执行、失败就 process.exit(1)」的脚本式测试改为子进程运行,新增 CA 按需生成、服务启动密钥迁移、P2P 身份自愈等回归用例,core 与 mitmproxy 两套测试恢复稳定。
    • 本地与 CI 的 node_modules 布局统一为 hoisted;CI 测试步骤改为从仓库根按 pnpm --filter 运行,避免跨进子仓库的 workspace 根。
    • 修复 dns-over-http 未声明依赖 is-browser 导致的 DNS-over-HTTPS 模块加载失败(此前被 mitmproxy 的直接依赖顺带满足)。

    二、安装前请仔细阅读安装说明

    各平台安装说明

    win10/macOS Monterey以下版本的用户参见electron升级说明

    本版 Windows 安装包未签名(签名服务当时不可用),SmartScreen 会提示一次,选择「仍要运行」即可。

    覆盖安装会保留 ~/.dev-sidecar 下的配置和证书;卸载时可选择是否一并删除。首次使用可以直接点「安装证书」,不需要先启动代理。

    三、贡献者列表

    非常感谢以下朋友们的贡献:

    • @cute-omega

    同时还要感谢以下朋友们在过去几个正式版本中提供的功能雏形,PR不能衡量他们的贡献:

    • @8odream

    另外专门感谢以下群友的赞助打赏:(排列按时间先后顺序)

    • 凌云志 ¥20

    也感谢反馈问题并提供日志与建议的朋友们。

    四、Full Changelog

    v2.3.4...v2.3.5

  2. v2.3.4v2.3.4-testpre-release2026-11-02 · 2026-11-02 07:17 UTC
    查看更新说明

    一、更新内容:

    【摘要】

    本版本存在功能性问题,请勿更新本版本;相关问题已在v2.3.5中修复。版本标题故意修改为不符合版本号规则,以避免触发ds的自动更新


    v2.3.4 修复了升级到错误泄露版本后主进程启动崩溃、自动更新下载增量包未走代理导致超时、大文件上传被误判超时等问题;证书方面 CA 私钥不再落盘、私钥缺失时不再静默换发新 CA;同时收紧了 SNI 证书校验策略(#745)。增强功能口令与 P2P 令牌迁入系统密钥库,配置文件权限收紧为 0600。

    【优化】
    • 证书私钥不再落盘:CA 私钥改由环境变量注入代理子进程,磁盘上只保留证书;私钥缺失时不再静默换发新 CA,避免已安装的根证书失效。
    • SNI 证书校验策略调整(#745):sni 只负责修改握手时的 SNI,不再顺带关闭证书校验;免校验必须显式配置 unVerifySsl: true(或 ssl: false);两者现在可以叠加使用,sni: "" 也能配合免校验;内置的 42 条依赖 SNI 伪装的规则已显式补充 unVerifySsl: true。
    • 更新对话框可读性:「更新方式说明」改为深浅主题都可读的样式。
    • 检查更新按钮:状态改为响应式,不再长时间转圈。
    • 默认配置跟随官方配置更新:新增 docker、onedrive、archive 等加速规则,补充 *.vsassets.io 的 DNS 解析(VSCode 扩展下载)。

    自定义 sni 规则的用户请注意:如果之前依赖「改写 SNI 即免校验」的隐式行为,现在需要自行补上 unVerifySsl: true 或 verifyHost,否则会按真实域名校验证书。

    【问题修复】
    • 修复升级后主进程启动崩溃:安装到错误泄露的版本后,主进程报 Cannot find module '../../utils/util.secret-vault'(overwall / share 插件的 require 路径少了一层);已修正为全量加载测试能覆盖到的路径。
    • 修复自动更新增量包下载未走代理:修正 Electron proxyRules 的格式,下载增量包不再直连 GitHub 导致 60 秒无数据超时。
    • 修复大文件上传被误判超时:上传超过 60 秒不再被当作「上游无响应」中断(GitHub Release 上传等场景,见 #684)。
    • 修复 Linux 系统代理排除列表不支持 IP 通配符:192.168.*.* 现在会同时写入 192.168.0.0/16,GNOME 与 libproxy 两种后端都能生效(#483)。
    • 修复 X(Twitter)ECH 规则误伤相似域名:规则里的反斜杠被 JSON5 转义吞掉,导致 www.okx.com 等域名被误判为 ECH 域名。
    • 修复 DNS 错误路径的 uncaught TypeError:reportIPv6Error 导出丢失(#742)。
    【安全】
    • 增强功能口令与 P2P 令牌迁入系统密钥库,不再明文写入配置文件。
    • 配置文件权限收紧为 0600。
    • 反馈打包的脱敏逻辑覆盖 JSON 形式的凭据。

    二、安装前请仔细阅读安装说明

    各平台安装说明

    win10/macOS Monterey以下版本的用户参见electron升级说明

    2.3.3 已经把 REQUESTS_CA_BUNDLE、SSL_CERT_FILE、CURL_CA_BUNDLE 指向「系统根证书 + DS CA」的合并包;2.3.4 继续沿用,不改变该行为。

    覆盖安装会保留 ~/.dev-sidecar 下的配置和证书;卸载时可选择是否一并删除。

    三、贡献者列表

    非常感谢以下朋友们的贡献:

    • @cute-omega

    也感谢反馈 #684、#742、#745、#483 等问题并提供日志与建议的朋友们。

    四、Full Changelog

    v2.3.3...v2.3.4

  3. v2.3.32026-10-25 · 2026-10-25 01:37 UTC
    查看更新说明

    一、更新内容:

    【摘要】

    v2.3.3 修复了开启 npm 加速时代理进程因无限递归而崩溃的问题,并集中处理了安装、更新与证书信任三块:安装器和卸载器现在每次都会给出「是否删除用户数据」的选项;Windows 增量更新遇到 Program Files 不可写时会请求 UAC 提权;CA 环境变量改为指向「系统根证书 + DS CA」的合并包,不再只信任 DS 自己的证书。功能上新增了 Xget 加速插件和一键反馈(打包日志、运行参数并预填 issue),并修复了网页诊断页报错、npm 缺失时的错误提示等问题。

    【新特性】
    • Xget 加速插件:启用并填写 Xget 实例地址后,会把 Xget 的平台加速规则合并进配置。实例地址支持子路径、http 与端口;规则按用户本地配置的优先级合并,用户自己的同名规则仍然优先;关闭插件即移除规则。
    • 一键反馈(#42):帮助中心「反馈问题」按钮和托盘菜单都能一键打包 ~/.dev-sidecar/logs 下的日志、running.json 与环境信息,生成 年-月-日-时-分-秒 Logs.zip。打包前对 token/password/authorization 等字段打码;running.json 与日志一起打进压缩包,打包完成后自动打开所在目录并选中文件,用户把压缩包拖入 issue 页面即可。issue 标题和正文按模板预填。
    • 安装选项常显:安装器每次都会显示「安装选项」页,用户可选择是否删除已有的 ~/.dev-sidecar。升级安装默认不勾选,保留原配置。
    • 彻底卸载:卸载器新增「卸载选项」页,勾选后一并删除 ~/.dev-sidecar,完成彻底卸载。静默卸载和升级时的旧卸载器不会显示该页,也不会删除数据。
    【优化】
    • Windows 增量更新请求 UAC:安装目录不可写时,不再直接失败或强制下载完整包,而是请求管理员权限,由提权进程结束应用、解压增量包并重启。
    • 增量包补齐:CI 现在上传 linux-arm64 和 linux-armv7l 的增量包,更新器也支持 armv7l;增量包缺失或写入失败时仍会回退完整安装包。
    • CA 环境变量改为合并包:REQUESTS_CA_BUNDLE、SSL_CERT_FILE、CURL_CA_BUNDLE 指向 ~/.dev-sidecar/ca-bundle.pem,内容为 Windows 证书存储(Root,排除 Disallowed)/ macOS 系统钥匙串 / Linux 系统 CA 包,加上 DS CA;每次开启系统代理时重新生成。合并包不做 CRL/OCSP 吊销检查,详见 doc/caroot.md。
    • 预发布版本比较按 semver:修复 beta.100 < beta.99、alpha.10 < alpha.9 这类按字符串比较导致的误判,数字段现在按数值比较。
    • 反馈信息更可读:issue 里的系统版本改为 Windows 11 10.0.26300 (x64)、macOS 14.7.2 (arm64)、Ubuntu 24.04 … 这类名称。
    • fork 的 CI 发布标记为 alpha:非官方仓库构建出的 Release 标题带 -alpha.<run_number> 并标记 prerelease,不会占用 latest(对普通用户无影响)。
    • 默认窗口更大:默认尺寸改为 1200×860,最小 960×640,启动居中,并限制在当前屏幕工作区内,小屏不会被挤出可见范围。
    • 更新检查与下载改用 Electron 网络栈:GitHub 资产会跨域重定向到 release-assets.githubusercontent.com,原 request 客户端经本地代理会挂起或报 Parse Error;改用 Chromium 网络栈后跟随重定向、代理与证书校验都更稳。
    • 版本规则文档化:新增 doc/versioning.md,记录 alpha/beta/dev/rc/正式版的优先级与更新策略。
    【问题修复】
    • 修复开启 npm 加速时代理进程栈溢出:npm 插件的包装函数 runNpm 内部把自己也替换成了 runNpm,导致无限自递归,开启 npm 加速时代理进程报 Maximum call stack size exceeded 并停止工作;现已恢复为调用 shell.exec。
    • 修复网页诊断页报 l.loadURL is not a function:主窗口未开启 webviewTag,<webview> 只是普通元素;现已开启。
    • 修复 macOS 打开 npm 页面报 Api invoke error(#427):系统找不到 npm 时不再直接抛 /bin/sh: npm: command not found,改为提示安装 Node.js 或把 npm 命令填成绝对路径。
    • 修复安装器没有「全新安装」选项:之前检测到旧安装就跳过安装选项页,现在每次安装都会显示。
    • 修复卸载器没有「彻底卸载」选项:改为独立的卸载选项页,勾选后删除用户数据。
    • 修复 Windows 增量更新写入失败:Program Files 下 resources 普通权限不可写,现走 UAC 提权解压。
    • 修复安装包构建失败:卸载页误用了 include 阶段尚未定义的 isUsed 宏,导致 makensis 编译报错。
    • 修复 Linux/macOS 安装根证书必失败:@vscode/sudo-prompt 的 name 只接受字母数字和空格,原来的 dev-sidecar 含连字符,在校验阶段就被拒绝;同时装有 p11-kit 的 Debian/Ubuntu 被 hasCmd('trust') 误判为 Arch。现在名称改为 devsidecar,Arch 只按 /etc/arch-release 或 pacman 源判断。
    • 修复检查更新/自动更新报 Parse Error 或卡在 0 字节:更新流程不再使用 request,检查更新和下载都改走 Electron 网络栈;下载增加 60 秒无数据超时与 404 提示。
    【其他】
    • 新增安全报告流程:说明支持版本范围、报告渠道(GitHub 私密报告 / PGP 加密邮件)与 PGP 指纹,并处理代码扫描告警。
    • 添加 .dockerignore,把 node_modules 与构建产物排除出 Docker 构建上下文。

    二、安装前请仔细阅读安装说明

    各平台安装说明

    win10/macOS Monterey以下版本的用户参见electron升级说明

    从 2.3.2 升级:2.3.2 自带的更新器在下载 GitHub 资产时可能报 Parse Error 或卡在 0 字节,若自动更新失败请直接手动下载安装包;安装 2.3.3 之后,后续版本才会使用修复后的更新链路。2.3.3 起 Windows 支持 UAC 提权的增量更新。

    三、贡献者列表

    非常感谢以下朋友们的贡献:

    • @cute-omega

    另外专门感谢以下群友的赞助打赏:(排列按时间先后顺序)

    • 赵不言 ¥20
    • 匿名人士 ¥20
    • 李耳不好摸 ¥12
    • 匿名人士 ¥20

    也感谢反馈 #427、#42 并提供日志与建议的朋友们。

    四、Full Changelog

    v2.3.2...v2.3.3

  4. v2.3.22026-10-22 · 2026-10-22 14:41 UTC
    查看更新说明

    一、更新内容:

    【摘要】

    v2.3.2 在 v2.3.1 的基础上补齐了界面侧的大块改动:新增「服务分组」「网页诊断」两个页面,底栏支持切换共享/个人远程配置的历史版本;安装器增加可选的「全新安装 / 完全卸载」。这一版也集中修了更新链路和网络解析上的问题:代理未开启时不再误报检查更新失败,更新检查更快也更省流量,ECH 失败的回退与 DNS 兜底都更稳,Steam 商店图片这类不支持 ECH 的站点不会再因握手失败而加载不出来。

    【新特性】
    • 服务分组:加速服务页新增「服务分组」页面,内置 391 个常用服务的分组开关,按分组批量启用/禁用,并保留配置文件里的注释与自定义顺序。名单支持通配符与正则,改动直接写回配置,不需要手工编辑 json5。
    • 网页诊断:新增「网页诊断」页面,记录并展示经过代理的请求与错误,支持刷新、清空和一键导出日志,排查某个网站为什么加速失败时不用再去翻日志文件。
    • 远程配置版本切换:底栏新增「共享远程版本」「个人远程版本」下拉,可在最新配置与历史快照之间切换;每次远程配置下载成功都会留一份快照,选错了可以随时切回。
    • 全新安装 / 完全卸载(可选):安装器新增「删除 dev-sidecar 数据目录」选项,卸载时也会询问是否一并删除 ~/.dev-sidecar。默认不勾选,需要彻底清理时再选。
    【优化】
    • 更新检查更快、更省流量:releases 接口只取最近 10 个版本,并开启 gzip,响应体从约 900KB 降到约 100KB;检查请求增加 15 秒超时,界面不会一直停在「检查更新中」。
    • GitHub 限流有明确提示:未登录请求按出口 IP 限流时,会直接提示「GitHub API 请求频率超限,请稍后再试」,不再显示一段英文错误。
    • 代理未开启时不再误报:检查更新不再硬编码 31181 端口,改为读取实际配置;代理未开启且没有外部代理时直接提示「代理未开启,请先在首页开启加速服务」,不再发请求、也不会尝试直连(issue #732)。
    • ECH 回退更稳:ECH 握手失败后的原生 TLS 回退改用系统 DNS 重新解析,不再复用 ECH 专用 DNS 的 IP;服务端明确拒绝 ECH 时按域名拉黑 10 分钟,减少反复失败握手带来的卡顿。
    • DNS 兜底:系统 DNS 失败(如 EAI_AGAIN)时,先用配置里的其它 DNS 提供方解析,全部失败才回退系统解析,减少必须手动刷新的情况。
    • CA 环境变量修正:设置页的证书路径选项改为写入 REQUESTS_CA_BUNDLE 与 SSL_CERT_FILE 两个变量,Python requests 与 OpenSSL 系程序都能用上;旧版本写错的 REQUEST_CA_BUNDLE 会被自动清理。
    • 依赖与构建:Electron 升级至 42,显式声明 webpack 依赖,修复 pnpm 下的安装链路;本地打包版本号继续使用工作区指纹。
    【问题修复】
    • 修复 Steam 商店图片加载失败:访问 store.st.dl.eccdnx.com 时报 SSLV3_ALERT_HANDSHAKE_FAILURE(alert 40)。原因是该域名命中了 ECH 名单,而 Steam CDN 不支持 ECH;现在 ECH 失败后的回退会重新解析,服务端拒绝 ECH 时也会延长负缓存。
    • 修复检查更新报 ECONNREFUSED 127.0.0.1:31181(#732):代理未开启时不再用硬编码端口发起请求。
    • 修复配置里显式 null 的删除语义:高优先级配置中的 null 会正确删除低优先级对应项,不再被占位 null 压掉。
    • 修复空响应 guard 误杀流式响应:流式接口不会再被提前中断。
    • 修复 macOS 更新包下载与资源匹配:更新包命名与下载地址匹配正确,自动更新可以正常拿到安装包。
    • 修复 Linux 全局快捷键抢占系统设置页(#701):快捷键已被占用时跳过注册,不再反复弹出桌面快捷键设置。
    • 修复打包后 extra/ 的 rootDir 解析(#728)。
    • 修复更新就绪弹窗报 TypeError: e is not a function。
    • 修复 Linux 上安装根证书说明缺失:补充火狐浏览器导入根证书的步骤(#720)。
    • 修复 P2P 证书 identity 并发竞态:并发初始化时不再误报 private key not loaded。

    二、安装前请仔细阅读安装说明

    各平台安装说明

    win10/macOS Monterey以下版本的用户参见electron升级说明

    三、贡献者列表

    非常感谢以下朋友们的贡献:

    • @cute-omega

    另外专门感谢以下群友的赞助打赏:(排列按时间先后顺序)

    • 谁来煮酒 ¥10
    • 匿名人士 ¥10
    • 凌云志 ¥5

    也感谢反馈 #732、#720、#701、#728 等问题并提供日志的朋友们。

    四、Full Changelog

    v2.3.1...v2.3.2

  5. v2.3.12026-10-08 · 2026-10-08 16:44 UTC
    查看更新说明

    一、更新内容:

    【摘要】

    在 v2.3.0 的基础上补齐界面侧改动:新增 NAT64 直连配置,远程配置与帮助中心的几处问题也一并修正。本版还修复了 2.3.1 早期构建安装后无法启动、弹窗报 Cannot find module 的问题。

    【新特性】
    • NAT64 直连:加速服务页新增「NAT64直连」标签页。把域名解析出的真实 IPv4 嵌入 IPv6 前缀,经 IPv6 网络访问;可单独指定解析用的 DoH(查询走 NAT64 通道,本机 DNS 被投毒也能拿到真实 IP),可设置 A 记录缓存时间,并按域名名单生效(支持通配符与正则)。名单为空时不启用、也没有额外开销;所在网络访问不了该前缀时自动回退普通解析,不影响其他域名。NAT64 前缀需要自行查询你所使用的 NAT64 服务后填写,本版不再内置默认前缀(该前缀属第三方中转,由使用者自行选择与信任);不填前缀时不生效,启动时会给出提示。
    • 底栏显示内核 SHA:底栏展示所用内核的短 SHA,鼠标悬停可看到完整提交号,提 issue 时能直接附上。
    • ECH 更稳:ECH 连接失败时会自动更换 IP 重试,并把结果反馈给 DNS 优选,减少连不上的情况。
    【优化】
    • 远程配置地址只接受 HTTPS:设置页明确提示不再支持裸 HTTP(明文下载会被中间人篡改),填写 `http://` 开头的地址会被自动改写为 `https://` 并保存。
    • 写明配置优先级:本地修改配置 > 个人远程配置 > 共享远程配置 > 默认配置。
    • 开机自启:支持 `--hideWindow=true`,并兼容旧自启参数的引号写法。
    • 文档同步:说明文档补充了 NAT64 直连的用法,并为 SNI 拦截器的 `verifyHost` 字段加上安全警告与正确/错误用法示例。
    • 更新提示时机:窗口在后台时不弹「发现新版本」,切回窗口后再提示;手动检查或窗口在前台时行为不变。
    • 深色模式配色:域名框、代码块、弹窗等组件改用主题变量,深色模式下不再残留浅色底。
    • GitHub 状态监控页:时间线第一个节点不再被滚动容器裁掉。
    【问题修复】
    • 修复安装后启动报错:此前构建出的安装包在部分机器上启动会弹出 `Cannot find module` 的错误窗口。该构建未正式发布,本版已修复。
    • 修复旧配置地址纠正未生效:以往把历史官方配置地址纠正为 HTTPS 的逻辑没有作用到实际生效的配置上,现在会正确纠正并保存;你自己填写的镜像地址与留空地址不受影响。
    • 修复远程配置下载失败的误报:以前下载失败会弹出通用的「Api invoke error」,看起来像功能坏了;现在会明确提示已继续使用本地缓存并自动重试,代理不受影响。
    • 修复帮助中心显示旧内容:页面打开期间远程配置更新后,帮助中心会重新读取内容;可编辑页面不会自动重载,避免冲掉你正在修改、尚未保存的内容。
    • 修复取消勾选后 GitHub 加速仍被启动:勾选状态已修正,取消勾选后不会再被自动启动。
    • 修复系统代理启用失败:Windows 上启用系统代理失败时会自动回退,减少无法开启代理的情况。
    • 远程配置获取更稳:启动时若本地代理尚未就绪,会依次尝试其他方式获取远程配置。

    二、安装前请仔细阅读安装说明

    各平台安装说明

    三、贡献者列表

    非常感谢以下朋友们的贡献:

    • @cute-omega

    另外首先要专门感谢以下群友的赞助打赏:(排列按时间先后顺序)

    • 天马 ¥10

    并特别感谢以下群友们的token赞助:(排列按时间先后顺序)

    • 紫星辰
    • 自由飞翔

    四、Full Changelog

    v2.3.0...v2.3.1

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    dev-sidecar

    开发者边车,命名取自service-mesh的service-sidecar,意为为开发者打辅助的边车工具(以下简称ds) 通过本地代理的方式将https请求代理到一些国内的加速通道上

    Star History Chart

    Gitee上的同步项目已被封禁,请认准本项目唯一官方仓库地址https://github.com/docmirror/dev-sidecar 【狗头保命】

    我将继续奋战在开源一线,为社区贡献更多更好的开源项目。

    感兴趣的可以关注我的主页 【github】 【gitee】

    打个广告

    https://github.com/certd/certd

    我的开源证书管理工具项目,全自动申请和部署证书,有需求的可以去试试,帮忙点个star

    重要提醒

    ------------------------------重要提醒1---------------------------------

    注意:由于electron无法监听windows的关机事件,开着ds情况下直接重启电脑,会导致无法上网,你可以手动启动ds即可恢复网络,你也可以将ds设置为开机自启。

    关于此问题的更多讨论请前往:https://github.com/docmirror/dev-sidecar/issues/109

    注:此问题已在 1.8.9 版本中得到解决。

    ------------------------------重要提醒2---------------------------------

    注意:本应用启动会自动修改系统代理,所以会与其他代理软件有冲突,一起使用时请谨慎使用。

    与 Watt Toolkit(原Steam++) 共用时,请以hosts模式启动Watt Toolkit

    与 TUN网卡模式运行的游戏加速器 可以共用

    本应用主要目的在于直连访问github,如果你已经有飞机了,那建议还是不要用这个自行车(ds)了

    一、 特性

    1.1、 dns优选(解决***污染问题)

    • 根据网络状况智能解析最佳域名ip地址,获取最佳网络速度
    • 解决一些网站和库无法访问或访问速度慢的问题
    • 建议遇到打开比较慢的国外网站,可以优先尝试将该域名添加到dns设置中(注意:被***封杀的无效)

    1.2、 请求拦截

    • 拦截打不开的网站,代理到加速镜像站点上去。
    • 可配置多个镜像站作为备份
    • 具备测速机制,当访问失败或超时之后,自动切换到备用站点,使得目标服务高可用

    1.3、 github加速

    • github 直连加速 (通过修改sni实现,感谢 fastGithub 提供的思路)
    • release、source、zip下载加速
    • clone 加速
    • 头像加速
    • 解决readme中图片引用无法加载的问题
    • gist.github.com 加速
    • 解决git push 偶尔失败需要输入账号密码的问题(fatal: TaskCanceledException encountered / fatal: HttpRequestException encountered)
    • raw/blame加速

    以上部分功能通过 X.I.U 的油猴脚本实现, 以下是仓库和脚本下载链接,大家可以去支持一下。

    由于此脚本在ds中是打包在本地的,更新会不及时,你可以直接通过浏览器安装油猴插件使用此脚本,从而获得最新更新(ds本地的可以通过 加速服务->基本设置->启用脚本 进行关闭)。

    1.4、 Stack Overflow 加速

    • 将ajax.google.com代理到加速CDN上
    • recaptcha 图片验证码加速

    1.5、 npm加速

    • 支持开启npm代理
    • 官方与淘宝npm registry一键切换
    • 某些npm install的时候,并且使用cnpm也无法安装时,可以尝试开启npm代理再试

    安全警告:

    • 请勿使用来源不明的服务/远程配置地址,有隐私和账号泄露风险
    • 本应用及服务/默认远程配置端承诺不收集任何信息。介意者请使用安全模式。

    二、快速开始

    支持windows、Mac、Linux(Ubuntu)

    2.1、DevSidecar桌面应用

    1)下载安装包

    Windows: 请选择DevSidecar-x.x.x-windows-universal.exe

    Mac: 请选择DevSidecar-x.x.x-macos-universal.dmg

    Debian系及其他支持deb安装包的Linux: 请选择DevSidecar-x.x.x-linux-[架构].deb

    其他Linux: 请选择DevSidecar-x.x.x-linux-[架构].AppImage (未做测试,不保证能用)

    linux安装说明请参考 linux安装文档

    注意:由于没有买应用证书,所以应用在下载安装时会有“未知发行者”等安全提示,选择保留即可。

    2)安装后打开

    界面应大致如下图所示:

    注意:mac版安装需要在“系统偏好设置->安全性与隐私->通用”中解锁并允许应用安装

    3)安装根证书

    第一次打开会提示安装证书,根据提示操作即可

    更多有关根证书的说明,请参考 为什么要安装根证书?

    根证书是本地随机生成的,所以不用担心根证书的安全问题(本应用不收集任何用户信息)

    你也可以在加速服务设置中自定义根证书(PEM格式的证书与私钥)

    火狐浏览器需要手动安装证书

    4)开始加速吧

    去试试打开github、huggingface、docker hub吧

    2.2、开启前 vs 开启后

    开启前开启后
    头像
    clone
    zip 下载秒下的,实在截不到速度的图

    三、模式说明

    3.1、安全模式

    • 此模式:关闭拦截、关闭增强、不使用远程配置、开启dns优选、开启测速
    • 最安全,无需安装证书,可以在浏览器地址栏左侧查看域名证书
    • 功能也最弱,只有特性1,相当于查询github的国外ip,手动改hosts一个意思。
    • github的可访问性不稳定,取决于IP测速,如果有绿色ip存在,就 有可能 可以直连访问。

    3.2、默认模式

    • 此模式:开启拦截、关闭增强、使用远程配置、开启dns优选、开启测速
    • 需要安装证书,通过修改sni直连访问github
    • 功能上包含特性1/2/3/4。

    四、 最佳实践

    • 把dev-sidecar一直开着就行了(注意部分版本的windows下开着ds重启电脑,可能会无法上网,重新打开ds即可。)
    • 建议遇到打开比较慢的国外网站,可以尝试将该域名添加到dns设置中(注意:被***封杀的无效)

    其他加速

    1)git clone 加速
    • 方式1:快捷复制:

      开启脚本支持,然后在复制clone链接下方,即可复制到加速链接

    • 方式2:

      1. 使用方式:用实际的名称替换 {} 的内容,即可加速clone https://hub.fastgit.org/{username}/{reponame}.git
      2. clone 出来的 remote "origin" 为fastgit的地址,需要手动改回来
      3. 你也可以直接使用他们的clone加速工具 fgit-go
    2) 镜像网站
    1)github.com 的镜像网站(注意:部分镜像网站不能登录)
    1. hub.fastgit.org (2024/11/18:这个好像失效了?)
    2. github.com.cnpmjs.org 这个很容易超限(2024/11/18:这个好像失效了?)
    3. bgithub.xyz(edge浏览器可能报毒)
    4. kkgithub.com
    5. 5github.com
    2) youtube.com的镜像网站(建议ipv6访问)
    1. https://s3.dualstack.us-east-1.amazonaws.com/zhifan/ytb.html
    2. https://s3.dualstack.us-east-1.amazonaws.com/zhifan/ytb2.html

    五、api

    5.1、拦截配置

    没有配置域名的不会拦截,其他根据配置进行拦截处理。

    在【加速服务-拦截设置】中配置,格式如下:(更多内容参见wiki)

    {
      // 要拦截的域名
      "github.com": {
        // 需要拦截url的正则表达式
        "/.*/.*/releases/download/": {
          // 拦截类型
          // "redirect": "url",        // 临时重定向(url会变,一些下载资源可以通过此方式配置)
          // "proxy": "url",           // 代理(url不会变,没有跨域问题)
          // "abort": true,            // 取消请求(适用于被***封锁的资源,找不到替代,直接取消请求,快速失败,节省时间)
          // "success": true,          // 直接返回成功请求(某些请求不想发出去,可以伪装成功返回)
          // "cacheDays": 1,           // GET请求的使用缓存,单位:天(常用于一些静态资源)
          // "options": true,          // OPTIONS请求直接返回成功请求(该功能存在一定风险,请谨慎使用)
          // "optionsMaxAge": 2592000, // OPTIONS请求缓存时间,默认:2592000(一个月)
    
          // 拦截配置示例:
          "redirect": "download.fastgit.org"
        },
        ".*": {
          "proxy": "github.com",
          "sni": "baidu.com" // 修改sni,规避***握手拦截
        }
      },
      "ajax.googleapis.com": {
        ".*": {
          "proxy": "ajax.loli.net", // 代理请求,url不会变
          "backup": ["ajax.proxy.ustclug.org"], // 备份,当前代理请求失败后,将会切换到备用地址
          "test": "ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js",
          "replace": "/(.*)/xxx" // 当加速地址的链接和原链接不是完全相同时,可以通过正则表达式replace,此时proxy通过$1$2来重组url, proxy:'ajax.loli.net/xxx/$1'
        }
      },
      "clients*.google.com": {
        ".*": {
          "abort": true // 取消请求,被***封锁的资源,找不到替代,直接取消请求,快速失败,节省时间
        }
      }
    }
    

    注:sni 只改握手 SNI,证书默认仍按真实目标域名校验。伪装 SNI 后若对端返回别的证书,请求会因证书不匹配失败, 此时可用 verifyHost 指定校验域名,或用 unVerifySsl: true 显式关闭校验(详见 wiki 的「SNI 拦截器」说明)。

    5.2、DNS优选配置

    某些域名解析出来的ip会无法访问,(比如api.github.com会被解析到新加坡的ip上,新加坡的服务器在上午挺好,到了晚上就卡死,基本不可用)

    通过从dns上获取ip列表,切换不同的ip进行尝试,最终会挑选到一个最快的ip(该功能需要事先配置好所用DNS),更多说明参见wiki

    {
      "dns": {
        "mapping": {
          "api.github.com": "cloudflare", // "解决push的时候需要输入密码的问题",
          "gist.github.com": "cloudflare", // 解决gist无法访问的问题
          "*.githubusercontent.com": "cloudflare" // 解决github头像经常下载不到的问题
        }
      }
    }
    

    注意:暂时只支持IPv4的解析

    六、问题排查

    6.1、dev-sidecar的前两个开关没有处于打开状态

    1. 请先检查你是否开启了其他代理软件。dev-sidecar不能与其他端口代理类软件同时使用,但host/TUN类软件应可正常工作。如您正在同时使用watt toolkit(原steam++)等软件,请将其改为host模式。
    2. 尝试将开关按钮手动打开
    3. 请尝试右键dev-sidecar图标,点退出。再重新打开
    4. 如果还不行,请将日志发送给作者

    如果是mac系统,可能是下面的原因

    1)Mac系统使用时,首页的系统代理开关无法打开

    出现这个问题可能是没有开启系统代理命令的执行权限

    networksetup -setwebproxy 'WiFi' 127.0.0.1 31181
    #看是否有如下错误提示
    ** Error: Command requires admin privileges.
    

    如果有上面的错误提示,请尝试如下方法:

    取消访问偏好设置需要管理员密码

    系统偏好设置—>安全性与隐私—> 通用—> 高级—> 访问系统范围的偏好设置需要输入管理员密码(取消勾选)

    6.2、没有加速效果

    1. 本应用默认仅开启https加速,一般足够覆盖需求。 如果你访问的是仅支持http协议的网站,请手动在【系统代理】中打开【代理HTTP请求】
    2. 检查浏览器是否装了什么插件,与ds有冲突
    3. 检查是否安装了其他代理软件,与ds有冲突
    4. 请确认浏览器的代理设置为使用IE代理/或者使用系统代理状态
    5. 可以尝试换个浏览器试试
    6. 请确认网络代理设置处于勾选状态 正常情况下ds在“系统代理”开关打开时,会自动设置系统代理。

    6.3、浏览器打开提示证书不受信任

    一般是证书安装位置不对,重新安装根证书后,重启浏览器

    1)windows: 请确认证书已正确安装在“本地计算机-将所有的证书都放入下列存储:受信任的根证书颁发机构”下
    2)mac: 请确认证书已经被安装并已经设置信任
    3)火狐浏览器:火狐浏览器不走系统的根证书,需要在设置中添加根证书
    1. 火狐浏览器->设置->隐私与安全->连接与软件安全->高级设置->证书->管理证书(旧版本为:设置(或选项)->隐私与安全->证书->查看证书) 新版界面(2026 年左右的火狐,设置页改版后): 旧版界面:
    2. 证书颁发机构->导入
    3. 选择证书文件 C:\Users(用户)\Administrator(你的账号)\.dev-sidecar\dev-sidecar.ca.crt(Mac或linux为 ~/.dev-sidecar 目录)
    4. 勾选信任由此证书颁发机构来标识网站,确定即可

    6.4、打开github显示连接超时

    DevSidecar Warning: Error: www.github.com:443, 代理请求超时
    
    1. 检查测速界面github.com是否有ip ,如果没有ip,则可能是由于你的网络提供商封锁了dns服务商的ip(试试能否ping通:1.1.1.1 / 9.9.9.9 )
    2. 如果是安全模式,则是因为不稳定导致的,等一会再刷新试试
    3. 如果是增强模式,则是由于访问人数过多,正常现象

    6.5、查看日志是否有报错

    如果还是不行,请在下方加官方QQ群或提issue,附上服务日志(server.log)以便进行分析

    日志打开方式:加速服务->右边日志按钮->打开日志文件夹

    6.6、某些原本可以打开的网站打不开了

    1. 可以尝试关闭pac
    2. 可以将域名加入白名单

    6.7、应用意外关闭导致没有网络了

    应用开启后会自动修改系统代理设置,正常退出会自动关闭系统代理 当应用意外关闭时,可能会因为没有将系统代理恢复,从而导致完全无法上网。

    对于此问题有如下几种解决方案可供选择:

    1. 重新打开应用即可(右键应用托盘图标可完全退出,将会正常关闭系统代理设置)
    2. 如果应用被卸载了,此时需要手动关闭系统代理设置
    3. 如果你是因为开着ds的情况下重启电脑导致无法上网,你可以设置ds为开机自启

    6.8、卸载应用后上不了网,git请求不了

    如果你在卸载应用前,没有正常退出app,就有可能无法上网。请按如下步骤操作恢复您的网络:

    1、关闭系统代理设置,参见:手动关闭系统代理设置 2、执行下面的命令关闭git的代理设置(如果你开启过 Git.exe代理 的开关)

    git config --global --unset http.proxy
    git config --global --unset https.proxy
    git config --global --unset http.sslVerify
    

    3、执行下面的命令关闭npm的代理设置(如果你开启过npm加速的开关)

    npm config delete proxy
    npm config delete https-proxy
    

    6.9、其他问题

    请查阅wiki

    也可以查阅有文档tag的issue,它们被开发者认证为相当于文档级别的参考issue。

    七、在其他程序使用

    八、贡献代码

    8.1、准备环境

    1)安装 nodejs 及其他环境

    推荐安装 nodejs 22.x.x 的版本,其他版本未做测试

    Windows上需要msvc,推荐使用VS 2022(node-gyp对VS 2026支持可能存在问题),安装时选择C++桌面开发工作负载即可。

    另外还需要带distutils的python,推荐安装自带setuptools的python 3.11版本。如果本地有uv,则可以简单的运行以下命令

    uv init .
    uv sync
    .venv/Scripts/activate.ps1 # for windows pwsh
    .venv/Scripts/activate.bat # for windows cmd
    source .venv/bin/activate # for linux/mac
    

    这会根据.python-version文件自动安装python 3.11版本。如不想使用python 3.11,也可删除.python-version文件,pyproject.toml已经指定了所需依赖。

    2)安装 pnpm

    运行如下命令即可安装:

    npm install -g pnpm --registry=https://registry.npmmirror.com
    

    8.2、开发调试模式启动

    运行如下命令即可开发模式启动

    # 拉取代码
    git clone https://github.com/docmirror/dev-sidecar
    
    cd dev-sidecar
    
    # 注意不要使用 `npm install` 来安装依赖,因为 `pnpm` 会自动安装依赖
    pnpm install
    
    # 运行DevSidecar
    cd packages/gui
    npm run electron
    
    

    如果electron依赖包下载不动,可以开启ds的npm加速 如果pnpm install只是单纯卡住,大概是因为你忘记进python环境了

    8.3、打包成可执行文件

    # 开发者本地打包(版本号带 -dev.<工作区指纹>)
    npm run electron:build
    
    # CI/正式版本打包(使用 package.json 正式版本号)
    npm run electron:build:ci
    

    8.4、提交pr

    如果你想将你的修改贡献出来,请提交pr

    九、联系作者

    欢迎bug反馈,需求建议,技术交流等

    加官方QQ群(请备注dev-sidecar,或简称DS)

    • QQ 1群:390691483,人数:500 / 500(满)
    • QQ 2群:667666069,人数:500 / 500(满)
    • QQ 3群:419807815,人数:500 / 500(满)
    • QQ 4群:438148299,人数:1004 / 2000(推荐)
    • QQ 5群:767622917,人数:200 / 500

    十、求star

    我的其他项目求star

    十一、感谢

    本项目曾使用lerna包管理工具

    lerna

    本项目参考如下开源项目

    特别感谢

    本项目部分加速资源由如下组织提供