网络代理设置 johnsonpanq-ctrl/dsh-network-config
DeepSeek 客户端在设置页切换系统代理、直连或自定义路由
30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/johnsonpanq-ctrl/dsh-network-config.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
生态插件
可安装,未声明 dsh 能力
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 32 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-network-config(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/10 21:27:37
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 7 处,展示前 7 条)
- 发起网络请求lib/index.js:280
const response = await fetch(url, { - 发起网络请求client/client.js:149
const response = await fetch(ROUTE + path, { - 读取本地文件lib/store.js:145
const parsed = JSON.parse(await readFile(this.#path, 'utf8')) - 写入本地文件lib/store.js:167
await mkdir(dirname(this.#path), { recursive: true }) - 写入本地文件lib/store.js:168
await writeFile(temporary, `${JSON.stringify(config, null, 2)}\n`, 'utf8') - 写入本地文件lib/store.js:169
await rename(temporary, this.#path) - 执行外部命令来自配置/变量lib/system-proxy.js:168
execFile(file, args, { windowsHide: true, timeout: 5000, maxBuffer: 1 << 20 }, (error, stdout) => {
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 切换系统代理
- 直连模式
- 自定义路由
DeepSeek Harness 的代理设置——跟随系统代理、直连或自定义。
README
由 DeepSeek 最新模型翻译生成dsh-network-config
给 DeepSeek Harness 加一个「设置 → 网络」页面 —— 选择整个应用怎么访问外网,保存即生效。
设置 → 网络 ( ) 跟随系统 读取 Windows 系统代理,并跟随它的开关 ( ) 直连 完全不用代理 (•) 自定义 手填 http(s) 代理地址 + 绕过列表
不用重启,不用导出环境变量,不用改 YAML。点保存的那一刻,模型调用、网页搜索、网页抓取、HTTP MCP 就都换成新路由了。
为什么做这个
DeepSeek Harness 只在启动时读一次出站代理策略,来源是 http_proxy / https_proxy / no_proxy / all_proxy 这几个环境变量。于是有两个日常麻烦:
1. 必须先设好环境变量再启动应用,代理一变就得重启。
2. 它根本不支持「跟随系统代理」 —— 上游有意不读操作系统的代理配置,所以你在代理软件里把开关拨了,仍然得自己去导出环境变量(这是上游文档里写明的限制)。
这个插件补上了这块界面。顺便,它还修了一个会悄悄弄坏内网访问的 bug —— 见下。
展开完整文档(README 剩余 1 节)
dsh-network-config
给 DeepSeek Harness 加一个「设置 → 网络」页面 —— 选择整个应用怎么访问外网,保存即生效。
设置 → 网络 ( ) 跟随系统 读取 Windows 系统代理,并跟随它的开关 ( ) 直连 完全不用代理 (•) 自定义 手填 http(s) 代理地址 + 绕过列表
不用重启,不用导出环境变量,不用改 YAML。点保存的那一刻,模型调用、网页搜索、网页抓取、HTTP MCP 就都换成新路由了。
为什么做这个
DeepSeek Harness 只在启动时读一次出站代理策略,来源是 http_proxy / https_proxy / no_proxy / all_proxy 这几个环境变量。于是有两个日常麻烦:
1. 必须先设好环境变量再启动应用,代理一变就得重启。
2. 它根本不支持「跟随系统代理」 —— 上游有意不读操作系统的代理配置,所以你在代理软件里把开关拨了,仍然得自己去导出环境变量(这是上游文档里写明的限制)。
这个插件补上了这块界面。顺便,它还修了一个会悄悄弄坏内网访问的 bug —— 见下。
内建的直连规则(重点)
只要在走代理,下面这些目的地永远直连,不需要你配置任何东西:
| 类别 | 范围 |
| 回环 | localhost、127.0.0.0/8、::1 |
| 私有网段(RFC 1918) | 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 |
| 链路本地 | 169.254.0.0/16、fe80::/10 |
| 运营商级 NAT | 100.64.0.0/10(Tailscale 也在这里) |
转发代理是在它自己的网络里解析地址的,把内网目的地交给它,结果只会是超时或 502。
而 Harness 单独运行时只豁免回环,别的什么都不管。
操作系统写进绕过列表的条目也全部被尊重 —— 包括 Harness 自己的匹配器表达不了的那些写法:
| Windows 写的条目 | 含义 | 只有 Harness | 加上本插件 |
| 192.168. | 前缀通配 | ❌ 永远匹配不上 | ✅ |
| 10.0.0.0/8 | 网段(CIDR) | ❌ 永远匹配不上 | ✅ |
| <local> | 任何不带点的主机名 | ❌ 永远匹配不上 | ✅ |
| .corp.example | 后缀 | ✅ | ✅ |
| api.test:8443 | 带端口的主机 | ✅ | ✅ |
在真实机器上实测(系统代理已开启,内网地址直连约 20 ms)。
下表里的地址与端口用的是文档保留段,用来代替实际使用的内网地址:
| 目标 | 只有 Harness | 加上本插件 |
| http://100.64.0.10:8080/v1/models (CGNAT 段) | HTTP 502 · 5175 ms | HTTP 401 · 22 ms |
| http://172.20.0.10:8080/v1/models (私有段) | 401 · 8 ms | 401 · 4 ms |
| https://www.deepseek.com/ | 200 | 200 · 253 ms (仍走代理 —— 正确) |
安装
环境要求: DeepSeek Harness 桌面版(「跟随系统」模式需要 Windows;其它系统上插件照常可用,但该模式会退回读环境变量),以及 PowerShell。
1. 从 releases 页面 下载 dsh-network-config-1.0.0.zip —— 或者直接 clone 本仓库。
2. 解压到任意位置,在该文件夹里执行:
powershell -ExecutionPolicy Bypass -File .\install.ps1
3. 完全退出并重新打开 DeepSeek Harness。 模块图是在启动时构建的,正在运行的进程不会加载新装的插件。
4. 验证:
powershell -ExecutionPolicy Bypass -File .\verify.ps1
1. Is the plugin mounted at http://127.0.0.1:19387 ? YES
2. mode: system route: http://127.0.0.1:7890/
bypass entries: 21 private direct: True full matcher: True
3. Reach a public address (must use the proxy) : https://www.deepseek.com/
reachable - HTTP 200 in 163 ms
完整步骤、手动安装做法、迁移到另一台机器、以及排错清单见 INSTALL.md。
卸载
powershell -ExecutionPolicy Bypass -File .\install.ps1 -Uninstall
然后重启应用。插件在 profile 里只占一个目录和 dsh.profile.bundles 里的一行;它唯一的数据文件是 %USERPROFILE%\.dsh\network-config.json。
实现原理
插件不会从零自己造一套代理策略。它把解析好的模式交给 Harness 自己的 @deepseek-ai/dsh-http-proxy,于是 proxyRouteFor()、发布出去的环境变量、以及每个子进程看到的仍然是同一个答案。
然后它把真正承载流量的那个 dispatcher 换成自己的逐 origin agent —— 因为那个包的绕过匹配器只做「主机名相等或后缀相等」。两半都需要:官方包维持进程级的契约,插件的匹配器负责实现那套契约表达不了的条目。
设置 → 网络 (client/client.js) │ GET /dsh-network-config/state │ POST /dsh-network-config/state { mode, custom: { proxy, bypass } } ▼ host 半侧 (lib/index.js) │ validate → store.save → resolvePolicy ├─ installProxyFromEnvironment ← 官方策略:proxyRouteFor()、环境变量、子进程 └─ installRouting(compileBypass) ← 真正承载流量的 dispatcher ▼ undici 全局 dispatcher + http_proxy / https_proxy / no_proxy
源码地图
| 文件 | 职责 |
| lib/index.js | Host 半侧:设置文档、模式解析、安装传输策略、HTTP 路由 |
| lib/bypass.js | 绕过匹配器:通配、CIDR、<local>、后缀、端口,以及内网判定 |
| lib/routing.js | 逐 origin 的 undici dispatcher,每个请求都问 lib/bypass.js 该去哪 |
| lib/system-proxy.js | Windows 系统代理读取(reg query → 代理 URL + 绕过列表) |
| lib/policy.js | 三种模式 → 一份传输策略 |
| lib/store.js | network-config.json 的校验与原子读写 |
| lib/text.js | Host 半侧的中文提示文案 |
| client/client.js | 浏览器半侧:一个打包好的 window.__ModuleLoader__ 模块,把页面注册进 settings.section |
| install.ps1 / verify.ps1 | 安装器 / 重启后验证器 |
| build-package.ps1 | 打可移植 zip |
| test/ | 39 条单元测试 |
插件的 HTTP 路由和 Harness 自己的插件路由用了同一道围栏:Host 头必须是回环地址,浏览器标为 cross-site 的请求一律拒绝。这是防 DNS rebinding,不是身份认证。
已知限制
- 不支持 SOCKS,也不支持 PAC。 传输层只接受 http(s):// 代理 URL。系统配置了 PAC 脚本(AutoConfigURL)时,插件会说明并按直连处理,而不是假装生效。
- proxyRouteFor() 用的是官方包那套较窄的匹配器。 因为官方策略是原样安装的, dsh-web-fetch-http 判断「这次抓取要不要走代理」时用的是它 —— 所以抓取一个内网 URL 仍可能走代理。公开网页抓取不受影响。真正承载流量的一侧(模型、搜索、MCP)走的是本插件的匹配器。
- 子进程只在 Node 22.21+/24+ 跟随策略。 这是 dsh-http-proxy 的行为,由 NODE_USE_ENV_PROXY 决定。在「直连」模式下插件会额外清掉 all_proxy / ALL_PROXY,避免子进程继续使用代理。
- 需要 profile 内可解析到 undici。 取不到时插件会退回官方包的 dispatcher,并在页面上说明 —— 退路可用,但通配条目与内网直连不再生效。
- 和别的代理插件互斥。 谁最后调用 setGlobalDispatcher,谁说了算;不要和 dsh-clash-proxy 之类的插件同时启用。
- 系统代理只在 Windows 上读注册表,其它平台退回环境变量。
开发
npm test # 等价于 node --test test/*.test.mjs
没有构建步骤,没有依赖。浏览器半侧是手写的 window.__ModuleLoader__ bundle,测试完全按客户端的方式装载它,然后断言页面的元素树 —— 所以不需要 DOM,也不需要 React 渲染器。
欢迎贡献 —— 见 CONTRIBUTING.md。
许可
MIT —— 见 LICENSE。
本项目与 DeepSeek 官方无关。「DeepSeek Harness」指被本插件扩展的上游应用。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
johnsonpanq-ctrl/dsh-network-config
在设置页切换系统代理、直连或自定义路由
相关插件 · 其他
模型破甲清洗HunYiSage/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,993已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,266已汉化DSH
70.7
这是你的仓库?认领条目