
mafeis/dsh-net-proxy
30最近提交 2026年8月14日
dsh-net-proxy DSH 插件
dsh-net-proxy 是一个 DSH 插件,拦截 agent 的全局 fetch 调用,使其通过 HTTP/HTTPS-CONNECT 或 SOCKS5 代理发送请求。配置保存在 `$DSH_HOME/net-proxy.json` 中,可通过 `/_dsh/net-proxy` 设置页管理,修改即时生效,无需重启。
如何安装 dsh-net-proxy DSH 插件
dsh plugin --profile web add github:mafeis/dsh-net-proxy复制不会执行命令。安装 dsh-net-proxy DSH 插件前请核对仓库和版本。
dsh-net-proxy DSH 插件数据来源
dsh-net-proxy DSH 插件快照日期:2026年8月16日
discovered
dsh-net-proxy DSH 插件能做什么
- 包装 agent 的全局 fetch,使所有出站请求经过配置的代理(手写转发,无第三方代理依赖)。
- 支持 HTTP/HTTPS-CONNECT(隧道)和 SOCKS5 代理协议。
- 配置持久化存储于 `$DSH_HOME/net-proxy.json`,包含主机、端口、协议、可选认证(用户名/密码)及 NO_PROXY 列表。
- 可视化设置页(DSH Web 设置 → 网络代理),即时生效,无需重启。
- 默认 NO_PROXY 排除本地回环地址(127.0.0.1、localhost、::1)。
dsh-net-proxy DSH 插件适合哪些场景
- 让 agent 的 web_search 和 web_fetch 通过公司代理访问内部或受限资源。
- 在受审查的网络环境中使用 SOCKS5 代理绕过限制。
- 通过代理统一审计 agent 发出的所有 HTTP/HTTPS 请求(配合代理日志)。
- 为需要认证代理的外部 API 调用提供代理身份验证。
dsh-net-proxy DSH 插件适合谁
- 需要通过代理访问互联网的 DSH 用户(如处于公司防火墙后或网络受限环境)。
- 在必须通过特定代理或网关出站的环境中部署 DSH 的开发者和运维人员。
dsh-net-proxy DSH 插件的限制
- 仅支持 HTTP/HTTPS-CONNECT 和 SOCKS5 代理协议,不支持其他类型(如 SOCKS4、HTTP/2 代理)。
- 配置存储在 `$DSH_HOME` 目录下,要求 DSH 环境正确设置。
- 代理设置全局应用于 agent 的 fetch,无法按请求单独覆盖。
- 插件仍处于早期开发阶段(v0.2.5),某些边缘情况或性能优化可能尚未完善。
dsh-net-proxy DSH 插件的仓库 README 摘录
以下文字摘自 dsh-net-proxy DSH 插件的上游仓库 mafeis/dsh-net-proxy 的 README,版权归原作者,仅作引用。
DeepSeek Harness 网络代理插件:让 **agent 自己发起的网络请求**(`web_search` / `web_fetch` / 外部 API)走你配置的 HTTP / HTTPS-CONNECT / SOCKS5 代理,配置持久化、启动即自动生效,并提供可视化设置页。 - 服务端:包装 agent 进程的全局 `fetch`,让所有请求走代理(手写转发,无第三方代理依赖)。 - 配置存储在 `$DSH_HOME/net-proxy.json`,设置页经同源路由 `/_dsh/net-proxy` 读写,改动即时生效、无需重启。 - `NO_PROXY` 默认排除本地回环。 ## 安装 ```bash dsh plugin --profile web add github:mafeis/dsh-net-proxy ``` 安装后重启 `dsh web`,在 设置 → 网络代理 里启用并填写代理地址(如 `127.0.0.1:7890`)。 也可手动在 profile 的 `cordis.patch.yml` 加入: ```yaml - insert: - id: net-proxy name: 'dsh-net-proxy' ``` ## 配置字段(net-proxy.json) | 字段 | 默认 | 含义 | |---|---|---| | `enabled` | `false` | 是否启用代理 | | `protocol` | `http` | `http`(含 CONNECT 隧道)或 `socks5` | | `host` / `port` | `127.0.0.1` / `7890` | 代理地址 | | `username` / `password` | 空 | 可选认证 | | `noProxy` | `["127.0.0.1","localhost","::1"]` | 命中则直连 | ## 许可证 MIT ## 变更记录 ### v0.2.5 - `index.js` 的设置路由 handler 抽到 `lib/routes.js`(纯函数,新增 4 项单测,共 24 项全绿)。 - `client.js` 拆组件:把 `NetProxySection` 的巨型 return 拆为 `Header`/`StatusBadge`/`StatusToggle`/`ProbeResult` 纯展示子组件(渲染等价、不动 UMD 结构)。 - 新增 eslint 门禁(`eslint.config.js` + `npm run lint`,接入 CI;`--legacy-peer-deps` 适配私有 `@deepseek-ai/*` peer);加 `.gitignore`。
阅读完整 README仓库许可: MIT
dsh-net-proxy DSH 插件常见问题
如何安装 dsh-net-proxy?
在终端中执行 `dsh plugin --profile web add github:mafeis/dsh-net-proxy`,然后重启 `dsh web` 服务。重启后进入设置 → 网络代理,启用并填写代理地址即可。
支持哪些代理协议?
插件支持 HTTP(包括 HTTPS-CONNECT 隧道)和 SOCKS5。你可以在配置的 `protocol` 字段中设置协议类型(默认是 `http`)。SOCKS5 也支持通过用户名和密码进行认证。
如何配置代理?
可以通过可视化设置页(设置 → 网络代理)直接配置,也可以编辑 `$DSH_HOME/net-proxy.json` 文件。文件包含 `enabled`、`protocol`、`host`、`port`、`username`、`password` 和 `noProxy` 字段。修改后立即生效,无需重启 agent。
代理会影响 agent 的所有请求吗?
是的,插件会包装全局的 `fetch` 函数,因此 agent 发出的所有 HTTP/HTTPS 请求(包括 web_search、web_fetch 和外部 API 调用)都会经过代理。但匹配 `noProxy` 列表的请求(默认排除 localhost、127.0.0.1、::1)会直连,不经过代理。
如何验证代理是否生效?
在设置中启用代理,然后执行一个访问外部网站的 web_search 或 web_fetch 动作。如果代理配置正确,你应该能在代理的访问日志中看到该请求。也可以查看 agent 的调试输出,确认代理正在被使用。