按用途分流模型与网页请求,代理故障自动回落直连
30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/20 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add fengyevvv/dsh-egress-router该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · model
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 13 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令
查看扫描证据(共 1 处,展示前 1 条)
- 执行外部命令来自配置/变量lib/windows-proxy.js:15
return execFileSync(file, args, options);
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-http-proxy@deepseek-ai/dsh-launch-environment@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DSH 出站流量路由插件:DeepSeek 直连,外网模型与网页抓取走代理 · Egress router for DeepSeek Harness.
README
由 DeepSeek 最新模型翻译生成dsh-egress-router
给 DeepSeek Harness(DSH) 用的出站分流插件:
- 模型请求(DeepSeek)直连,不经过代理;
- web_fetch / 子进程走代理(Clash、V2Ray 等);
- 代理挂了自动回落直连,恢复后自动切回;
- 在 设置 → 通用 → 出站分流 里切换:全部直连 / 跟随系统 / 手动代理。
不依赖 .env,不写任何状态文件,启动路径零 I/O,任何异常都降级为直连。
当前版本:0.1.1 · 平台:Windows(system 模式读 Windows 注册表)· 适配 DSH 0.2.1-rc.2
它解决什么问题
DSH 原生只在启动时读一次代理环境变量,之后没有运行时开关:
- 模型请求和网页抓取走同一条路,没法按用途分开;
- 代理关掉后 web_fetch 直接失败,不会自动回落;
- 切换代理要改 ~/.dsh/.env 并重启。
展开完整文档(README 剩余 1 节)
dsh-egress-router 给 DeepSeek Harness(DSH) 用的出站分流插件: - 模型请求(DeepSeek)直连,不经过代理; - web_fetch / 子进程走代理(Clash、V2Ray 等); - 代理挂了自动回落直连,恢复后自动切回; - 在 设置 → 通用 → 出站分流 里切换:全部直连 / 跟随系统 / 手动代理。 不依赖 .env,不写任何状态文件,启动路径零 I/O,任何异常都降级为直连。 当前版本:0.1.1 · 平台:Windows(system 模式读 Windows 注册表)· 适配 DSH 0.2.1-rc.2 它解决什么问题 DSH 原生只在启动时读一次代理环境变量,之后没有运行时开关: - 模型请求和网页抓取走同一条路,没法按用途分开; - 代理关掉后 web_fetch 直接失败,不会自动回落; - 切换代理要改 ~/.dsh/.env 并重启。 这个插件把策略装进 @deepseek-ai/dsh-http-proxy 的进程级 active 策略: - dsh-web-fetch-http 每次请求都会调用 proxyRouteFor(url),所以换策略立刻改变 web_fetch 的走向; - 普通 fetch() 读全局 undici dispatcher,也一起改变; - 子进程通过导出的 HTTP(S)_PROXY / NO_PROXY 跟随; - deepseek.com 始终在 NO_PROXY 里。 三种模式 | 模式 | 行为 | | direct | 不装任何代理,全部直连 | | system | 读 Windows 注册表 HKCU\...\Internet Settings 的 ProxyEnable / ProxyServer / ProxyOverride(也就是 Clash 的「系统代理」开关) | | manual | 用配置里的 proxy 地址 | 健康检查:每 probeIntervalMs 毫秒对代理做一次 TCP 连接探测;失败且 fallbackToDirect: true 时切到直连,恢复后自动切回。 兼容性 | 项 | 要求 | | DSH | 0.2.1-rc.2(同版本实测) | | 平台 | Windows 10/11(system 模式依赖注册表) | | Node | DSH 自带运行时即可(Node 22+) | | 代理 | HTTP(S) 代理;Clash 的「混合端口」用 http://127.0.0.1:7897 即可 | 非 Windows 上 system 模式只读启动环境变量,不会读系统代理设置。 安装 方式 A:手动安装(已实测,推荐) 1. 从 Releases 下载 dsh-egress-router-0.1.1.zip,解压;或直接 clone 本仓库。 2. 把 lib/ 和 package.json 复制到 profile 的 node_modules 下: $src = ".\dsh-egress-router" # clone 出来的目录;Release 解压后按实际文件夹名改 $dst = "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\dsh-egress-router" New-Item -ItemType Directory -Force $dst | Out-Null Copy-Item "$src\lib" $dst -Recurse -Force Copy-Item "$src\package.json" $dst -Force 3. 在 %USERPROFILE%\.dsh\profiles\desktop\cordis.patch.yml 末尾追加: - insert: - id: egress-router name: dsh-egress-router config: mode: system proxy: http://127.0.0.1:7897 keepModelDirect: true 4. 完全退出 DSH(托盘也要退),重新打开。 方式 B:作为 bundle 安装(发布到 npm 后) dsh plugin --profile web add dsh-egress-router 或在 Web UI:设置 → 插件 → 添加插件,填 dsh-egress-router。 desktop profile 由桌面应用管理,不要用命令行 dsh plugin --profile desktop;桌面上请走 Web UI 的「添加插件」。 上面的 web 只是示例 profile 名,换成你自己的 profile。 本包带有 dsh.bundle.patch,bundle 安装会自己创建 egress-router 行。不要再按方式 A 手写 insert,否则会出现两条同 id 的条目。 方式 B 未在干净 DSH 上实测,建议先用 lab profile 验证。 配置 | 字段 | 默认 | 说明 | | enabled | true | 总开关;false 时还原启动时的策略 | | mode | system | direct / system / manual | | proxy | http://127.0.0.1:7897 | manual 模式的代理地址,只支持 http:// / https:// | | keepModelDirect | true | 把 deepseek.com 加进 NO_PROXY | | noProxy | [] | 额外直连主机(可写具体 IP / 主机名,不支持 192.168. 这类网段) | | fallbackToDirect | true | 代理不可用时回落直连 | | probeIntervalMs | 5000 | 探测周期;0 关闭探测 | | probeTimeoutMs | 800 | 单次探测超时 | 环境变量 kill switch:DSH_EGRESS_DISABLE=1 时插件完全不接管。 Web UI 设置 → 通用 → 出站分流: - 下拉框:全部直连 / 跟随系统 / 手动代理; - 手动模式显示代理地址输入框; - 「模型请求直连」复选框。 保存后写入 profile 的 cordis.patch.yml,Host 收到配置更新后立即重新安装策略,无需重启。 验证 - 问模型一句话,能正常回复 → 模型直连正常; - 让智能体抓 https://en.wikipedia.org/robots.txt → 200 说明网页走了代理; - 设置页能看到「出站分流」→ client 半边加载正常; - 关掉 Clash,等 5~10 秒再抓外网 → 应报网络错误而不是卡死;重新打开 Clash 后应自动恢复。 安全设计 1. apply() 不读写文件、不探测网络、不抛异常; 2. 所有探测/换策略都在 setImmediate 之后异步执行; 3. 任何失败(代理 URL 非法、注册表读失败、install 抛错)都回落直连; 4. 不使用 setInterval,定时器由插件生命周期管理并在卸载时清理; 5. 卸载/关闭时把启动时的策略还原,包括环境变量; 6. 不写任何 JSON / 状态文件,重启不会读到半截数据。 回退 1. 完全退出 DSH; 2. 删除 cordis.patch.yml 里本插件的 - insert: 块; 3. 重启; 4. 可选:删除 profiles\<name>\node_modules\dsh-egress-router。 不会影响 profile 里其他插件配置。 已知限制 - 只支持 HTTP(S) 代理;SOCKS 会被 @deepseek-ai/dsh-http-proxy 拒绝并跳过。 - Windows ProxyOverride 里的 192.168.、10.*、CIDR 无法用共享匹配器表达,会被丢弃;web_fetch 本来就拒绝私有地址,所以只影响局域网 MCP / 子进程访问内网设备。需要时用 noProxy 列出具体主机。 - Clash 的 fake-ip 模式(DNS 返回 198.18.0.0/15)不影响走代理的请求;只在“回落直连”时可能被 DSH 的私有地址校验拦住。 - 代理地址不要写带账号密码的 URL(会明文落盘)。 - system 模式只读 Windows 注册表;macOS / Linux 只读启动环境变量。 开发 无构建步骤;lib/client.js 是手写的 window.__ModuleLoader__ bundle。 node test/policy.test.mjs License MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
fengyevvv/dsh-egress-router
按用途分流模型与网页请求,代理故障自动回落直连
相关插件 · 模型接入
API 中继安全审计toby-bridges/api-relay-audit
面向 AI API 中转与 LLM 代理的本地安全审计。
★ 897已汉化DSH
69.4
免费搜索插件DDDMUC/dsh-free-search
DeepSeek Harness 免费搜索插件 —— 无需 API key,零成本,多引擎可切换。 一个给…
★ 761已汉化DSH
68.7
免费联网搜索liustack/modsearch
在官方 App 里模型能联网,切到 API 就不能了。ModSearch 把联网补回来:网页搜索、X…
★ 863已汉化DSH
68.5
OpenCode 免费模型FishBottle7/opencode2dsh
在 DSHDeepSeek Harness里原生使用 OpenCode Zen 的免费匿名模型。
★ 379已汉化DSH
67.8
AI 模型网关tingly-dev/tingly-box
Tingly Box Web UI 演示
★ 373已汉化DSH
67.4
WorkBuddy 账号池XDTrees/dsh-xdpool
把你能白嫖的模型额度接进 DSH 同一个池:WorkBuddy 多账号自动容错、十三家扫码登录、76…
★ 359已汉化DSH
67.1