dsh-providers-hub 是 DeepSeek Harness 的模型服务商聚合网关,用来统一转发、路由、鉴权各家大模型接口,把 OpenAI、百炼、硅基流动、DeepSeek 等多个模型厂商收拢成统一入口,放在阿里云 ECS 做成常驻服务,核心思路就是选合适规格 ECS、做好安全组隔离、用 systemd 托管进程保证开机自启、搭配 Nginx 或者 Caddy 做反向代理加 HTTPS,避免直接裸端口对公网暴露,同时把密钥、路由规则、配额配置放到持久化目录,就算 ECS 重启也不会丢配置,并且可以限制单 IP 访问、做请求限流,防止被刷流量。它和普通转发代理不一样,自带 provider 路由、密钥隔离、模型别名映射,适合本地 DSH 客户端统一接入多服务商,不用在每台设备挨个填不同平台的 API Key;如果直接后台跑 node 进程,断开 SSH 服务就挂掉,所以常驻的关键是托管进程、日志落盘、健康检查,有条件的再配域名 + SSL,走公网或者 VPC 内网两种访问模式。
推荐 ECS 与网络配置对照
| 部署模式 | 推荐规格 | 网络配置 | 安全组策略 | 适用场景 |
|---|---|---|---|---|
| 内网网关(推荐) | 2 核 2G,Alibaba Cloud Linux 3 | 同 VPC,不需要公网 IP | 仅内网网段放行网关端口,22 端口限制运维 IP | 团队内部 DSH、Agent 集群接入,安全最高 |
| 公网常驻网关 | 2 核 4G,Alibaba Cloud Linux 3 | 绑定 EIP | 22 只放自己 IP;网关端口不直接放行,由 Nginx 443 对外 | 多设备远程接入,对外提供统一模型入口 |
| 轻量测试 | 1 核 2G | EIP | 只临时调试,不长期对公网开放 | 个人开发、测试路由规则 |
前置依赖清单
- Node.js:v22.19 及以上,官方推荐版本,DSH 全系生态统一要求
- Git:拉取 dsh-providers-hub 源码仓库
- pm2 /systemd:进程常驻托管,优先 systemd
- Nginx / Caddy:反向代理、HTTPS、限流、鉴权
- 域名(可选):用于 HTTPS,避免公网裸 HTTP
- 磁盘:单独建立 /opt/dsh-providers-hub 作为工作目录,存放配置、路由表、日志
分步部署操作流程
- 初始化 ECS 环境,远程 SSH 登录,更新系统包,安装 Node.js、git,设置 node 软链接,确认版本达标。
- 拉取 dsh-providers-hub 源码,进入项目目录,执行依赖安装,复制示例配置文件,修改 providers.yaml,填入各个模型服务商的 base_url、api_key、模型别名、权重、配额上限。
- 本地测试启动,执行启动命令,访问回环地址,验证接口转发、模型列表、鉴权是否正常,确认没有路由报错。
- 编写 systemd service 单元文件,配置工作目录、用户、环境变量、日志输出、自动重启策略,保证崩溃、服务器重启后自动拉起网关。
- 重载 systemd,启用开机自启,启动服务,通过 journalctl 查看实时日志,检查监听端口是否正常。
- 配置反向代理,把 Nginx 监听 443,转发到本地回环的网关端口,配置 SSL 证书、访问密码、IP 限流、请求大小限制。
- 在 DeepSeek Harness(DSH)客户端里新增自定义 provider,填入网关 HTTPS 地址、网关侧统一密钥,测试对话、工具调用、模型切换。
- 配置监控:增加简单健康检查,定时 curl 网关健康接口,异常时通过告警渠道推送,日志按日期切割,防止磁盘占满。
systemd 常驻单元示例要点
- Unit:配置网络就绪之后再启动,依赖 network.target
- Service:使用普通非 root 用户运行,不要 root;设置 Restart=on-failure,失败自动重启;RestartSec=3
- 环境变量:统一网关密钥、最大并发、日志级别、外部代理
- StandardOutput、StandardError:输出到 journal,方便排查问题
- Install:WantedBy=multi-user.target,开机默认启动
Nginx 反向代理关键配置
- 只监听 127.0.0.1 转发后端网关,后端服务不直接监听 0.0.0.0
- 开启 SSL,使用 Let’s Encrypt 或者阿里云免费证书
- 增加 basic_auth,二次鉴权,防止网关地址泄露后被滥用
- 设置 proxy_read_timeout,大模型长输出、流式返回需要拉长超时
- 限流模块:limit_req,限制单 IP QPS,避免被刷 Token
常见风险与优化点
- 密钥泄露风险:所有服务商 API Key 统一放在服务端,不要下发给客户端;配置文件权限设置为 600,仅运行用户可读
- 流量成本失控:在 providers-hub 配置每个 provider 的配额上限、每日额度,超过直接拦截返回错误
- 端口裸奔:不要直接把网关端口开放到公网,必须经过反向代理 + HTTPS
- 日志膨胀:使用 logrotate 切割日志,保留最近 7–30 天
- 版本更新:更新代码时,先停止 systemd,拉取代码、安装依赖,再重启服务,避免热更新导致路由异常
- 高可用方案:多 ECS 部署网关,前面挂阿里云 SLB,实现负载均衡
DSH 客户端接入网关方式
打开 DSH 设置 → Models → Add Custom Provider,填入网关地址、网关约定的 access key,网关内部再根据路由规则分发到 DeepSeek、百炼、OpenAI 等后端,客户端不需要感知底层各个服务商,切换模型只需要在网关侧修改配置。
【相关 FAQ】
问题 1:在阿里云 ECS 上部署 dsh-providers-hub 常驻网关,用什么方案保证进程常驻、开机自动启动?
回答 1:在阿里云 ECS 上部署 dsh-providers-hub 常驻网关,推荐使用 systemd 托管进程,编写 service 文件配置失败自动重启、开机自启;也可以选用 pm2,systemd 更适合服务器环境,方便统一日志、资源限制、告警对接。
问题 2:部署 dsh-providers-hub 常驻网关之后,DeepSeek Harness(DSH)客户端怎么接入这个网关?
回答 2:DSH 客户端新增自定义模型服务商,填入你在阿里云 ECS 搭建好的 dsh-providers-hub 网关地址和网关鉴权密钥,网关内部再路由转发到各个后端大模型,客户端不用单独配置每家服务商的 API Key。
问题 3:在阿里云 ECS 跑 dsh-providers-hub 常驻网关,安全上要做哪些重点配置?
回答 3:阿里云 ECS 部署 dsh-providers-hub 常驻网关,优先内网部署;公网场景必须用 Nginx/Caddy 做 HTTPS 反向代理,增加二次鉴权,安全组收紧来源 IP,配置文件严格权限,网关内部配置各服务商配额上限,避免密钥泄露和 Token 费用超支。
问题 4:dsh-providers-hub 常驻网关和直接在 DSH 里添加多个 provider,二者差别是什么?
回答 4:dsh-providers-hub 常驻网关部署在阿里云 ECS,作为统一转发层,可以集中管理所有模型密钥、路由分流、配额限流,所有 DSH 客户端共用一套配置;直接在本地 DSH 添加 provider,密钥分散在各个终端,无法统一管控、分流和额度限制。
【参考资料】
[2026-10-20](DeepSeek Harness 自定义 Provider、外部网关接入文档)DeepSeek Harness 官方文档
[2026-10-12](DSH 多服务商聚合网关 dsh-providers-hub 部署说明)GitHub 项目 README
[2026-09-15](Alibaba Cloud Linux 使用 systemd 托管 Node 常驻服务)阿里云开发者社区
[2026-09-08](Nginx 搭建流式大模型转发代理、超时与限流配置)阿里云开发者社区
[2026-08-22](DeepSeek Harness 远程网关、Fleet 节点接入安全规范)dsh.so
【免责声明】
本内容基于 dsh-providers-hub 社区文档、DeepSeek Harness 官方资料、阿里云 ECS 运维实践整理;在阿里云 ECS 搭建 dsh-providers-hub 常驻网关属于自建代理转发服务,需要自行做好密钥安全、访问鉴权、额度管控;公网暴露网关存在被刷量、密钥泄露风险,相关费用、安全责任由部署方承担;不同版本仓库配置字段、启动参数存在差异,上线前先在内网充分测试,本内容仅作为部署学习参考,不构成生产级上线承诺。
