DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

elliotsu1107 /

elliotsu1107/dsh-proxy-gate

Verified

DSH plugin: switch DeepSeek Harness's outbound HTTP proxy at runtime from the Plugins settings page or the /proxy command. Not the system proxy; NAS-wide programs stay direct.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@5dafbb87

dsh-proxy-gate

DSH 出站代理开关:在会话里用 /proxy 命令一键切换,不改系统代理、不改 .env、不重启 DSH。

  • 开:把 DSH 进程的 undici 全局 dispatcher 换成指向你指定代理的 dispatcher(模型 API、web_search、web_fetch、MCP、插件下载、bash 子进程一起生效)。
  • 关:恢复 DSH 启动时的网络策略(通常是直连)。NAS 上其它程序(如 qbittorrent)始终不受影响。
  • 代理地址可以是局域网内另一台机器,例如 Ubuntu 虚拟机上的 Clash:http://192.168.1.50:7890。
  • 代理挂掉时 /proxy off 仍然可用:命令在 Host 侧执行,不经过模型,Web UI 又走回环直连。

安装

dsh plugin --profile web add /vol2/1000/dev/dsh-proxy-gate --ignore-scripts

或通过 plugin_manager 以本目录安装。行 id 为 include:proxy-gate。

图形界面

装好后打开 设置 → 插件 → 出站代理:

  • 顶部状态胶囊:已开启 / 已关闭 / 已开启(未生效)
  • 代理地址输入框 + 保存(回车即保存),保存后立即生效
  • 启用代理 / 关闭代理 一键切换
  • 测试连通性:走当前通道打一次 HTTP,直接显示状态码与耗时
  • 底部显示当前真实出口(代理地址或直连)与最近错误

面板与 /proxy 命令读写同一份配置,两边操作互相可见;面板每 2.5 秒刷新一次状态。

命令

命令 说明
/proxy 或 /proxy status 查看开关、配置地址、当前真实出口(代理 / 直连)
/proxy on 启用代理,立即生效
/proxy off 关闭代理,立即恢复直连
/proxy set http://192.168.1.50:7890 设置代理地址(可省略 http://)
/proxy test [url] 走当前通道做一次 HTTP 测试,输出状态码、耗时和响应片段
/proxy help 用法

“当前出口”来自 DSH 自己的路由判定(proxyRouteFor,与真实请求同一套逻辑),不是读命令行环境变量。

配置项

在插件配置里可改,也可只用命令;四个字段都是 volatile,保存后原地生效,不重启插件:

字段 默认 说明
enabled false 是否启用代理
proxyUrl http://127.0.0.1:7890 代理地址;只支持 http(s),不支持内嵌账号密码
noProxy 空 额外直连名单(逗号分隔,不支持 CIDR);回环地址由核心强制直连
testUrl https://www.gstatic.com/generate_204 /proxy test 默认地址;直连时打不开属正常,正说明没走代理

行为说明

  • 回环地址(localhost / 127.0.0.1 / ::1 / [::1])始终直连,Web UI 不会绕进代理。
  • 子进程(bash 工具、curl、git、pnpm)通过 proxyEnvironmentForChild() 继承同一策略,HTTP_PROXY/HTTPS_PROXY/NO_PROXY 大小写都会写入。
  • 地址非法(SOCKS、带账号密码、带路径)时命令直接报错,不会静默直连;已启用状态下地址出错会保持直连并记录错误。
  • 代理不可达时不会自动改配置:/proxy off 回直连,或 /proxy set 换代理。

验证记录

  • 单元测试:node --test test/*.test.mjs(6 项,覆盖地址校验、volatile 读取、开启/关闭/非法地址/释放状态机)。
  • 实机切换(本机 18090 端口起了一个可转发代理做对照):
    • 开启后:子进程环境出现 HTTP_PROXY/HTTPS_PROXY=http://127.0.0.1:18090、NO_PROXY=localhost,127.0.0.1,::1,[::1];对照代理记录到 CONNECT opencode.ai:443(本会话模型请求)与测试请求,说明 Host 进程自身流量已走代理。
    • 关闭后:子进程环境中的代理变量全部消失,对照代理不再收到新连接。
  • 未由我验证的部分:/proxy 命令由用户在聊天框提交,我无法代替提交;插件行 include:proxy-gate 已是 active,命令注册在同一插件上下文内。

卸载

dsh plugin --profile web remove dsh-proxy-gate

卸载即释放:插件 dispose 会调用安装时拿到的 restore 函数,恢复进程原有 dispatcher 与环境变量。

依赖

运行时从 DSH 安装解析 @deepseek-ai/dsh-http-proxy、@deepseek-ai/schemastery(optional peerDependency),无第三方运行时依赖。

—/ 5

No ratings yet

Verified DSH bundle

Commit 5dafbb87fa1e

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout