dsh-mcp-panel 是官方 DeepSeek Harness MCP 客户端之上的管理控制台,README 里的装法只有一行命令。但把它真正跑在阿里云 ECS 上时,卡住大多数人的不是那行命令,而是三件平时不显眼的事:出不出得去网、安全组放没放通出向、profile 备份落在哪块盘上。站内对它的网络提示很直白——「该插件运行需访问外部网络 / 远程 API,部署在国内无外网环境时可能无法正常使用」。想先看它在清单里的位置,可打开 DeepSeek Harness Hub 插件清单。
事实对齐:插件由 PerryLink 维护,Apache-2.0,Star 66,周下载 1,575,Node 引擎要求 ^22.19.0 || >=24.0.0,兼容基线 dsh-v0.1.7-rc.2(已验证 2026-09-25);站内信任档位是仅索引,未做真实安装。动手前先确认三件事:能出网、DNS 可达、Node 版本达标。
第一步:给安全组加一条出向规则
默认出向规则通常是「允许所有」,但团队做安全加固时往往会收紧成白名单,这时要显式加回来。原则是插件要连谁,就放通到谁的目标端口与域名:给实例所属安全组加一条 egress 规则,协议按目标服务器而定(Streamable HTTP 一般是 TCP 443 或你自建服务的端口),授权对象填域名或 IP 段,别写 0.0.0.0/0;自建服务填 VPC 内网地址或对端公网 IP。探测是完整往返,出向比入向更关键。
第二步:没有公网 EIP 时,用 NAT 网关加 SNAT 出网
不少生产实例不绑公网 EIP,只放私网 IP。这种配置下前面的出向规则配了也没用——包根本出不了 VPC。做法是:给实例所在交换机绑一张 NAT 网关,加 SNAT 规则把源网段指向实例私网网段,再确认路由表已把默认路由指向 NAT 网关。验证用 curl -sS -o /dev/null -w '%{http_code}\n' https://dpharness.com/plugin/PerryLink/dsh-mcp-panel:能拿到状态码说明 SNAT 与 DNS 都正常。
第三步:装插件并验证服务器行
第二条确认 profile 里多了 mcp-panel 这一行。随后重启 DSH,打开「设置 → 插件 → MCP」选项卡或跑 /mcp。/mcp 里没有服务器不是安装失败,而是你还没添加服务器行——桥接仍是 @deepseek-ai/dsh-mcp-client,每个服务器都得占一行配置。
第四步:用 ssh -L 把远端 MCP 端口映射到本机
MCP 服务跑在远端、端口不对外开放时,不必改安全组入向规则,本地端口转发更干净:
它把本机 8080 映射到 ecs.example.com 视角下的 10.0.0.12:8080,本机探测 http://127.0.0.1:8080 就等于在探那台内网服务。好处是入向安全组一行都不用改,隧道随用随开;要长期跑就放进 systemd 单元。
第五步:VPC 内自建 MCP 服务,直接走内网地址
如果在同一 VPC 内自建了 MCP 服务器(比如把 filesystem、git 这类本地能力包成 HTTP 服务),不要绕公网——直接在那一行 config 里写内网 IP 或内网域名。收益是延迟低、不消耗公网带宽、也不用开公网入向规则。要注意安全组内互访也要放通:源填实例私网 IP,目的是 MCP 服务端口;这一步容易漏,表现就是状态一直停在连不上。
第六步:实例规格与系统盘余量
写入是仅追加的,每次都会在 $DSH_HOME 下留一份 cordis.patch.yml 备份,backupCount 默认保留 5 份。所以:系统盘要有余量,别把根分区用满到 95% 才想起写配置;备份要落在会做快照的盘上,把 $DSH_HOME(通常是 ~/.dsh)放进定期快照。控制台本身很轻,开销来自挂载的 MCP 服务器进程——同挂三台以上带子进程的服务器,建议起步 2 核 4 GiB。
安装过程中最容易踩的四个坑
坑一:状态栏显示 unknown,就以为插件坏了
现象。 某台服务器的连接状态一直显示 unknown,甚至出现 -1 或 —。原因。 该字段来自上游 mcp/status 接缝,未观测时如实留空(带 statusSource: 'derived'),是「没有虚假状态」的刻意设计。解法。 先用 /mcp probe 主动探一次;还是空就回 ECS 侧确认服务器有没有启动。
坑二:点了写入却被判定为失败
现象。 点写入后控制台报失败,但去看 cordis.patch.yml 发现那一行其实在文件里。原因。 那一行是 $DSH_HOME/cordis.patch.yml 插入的,profile 层补丁无法触及;控制台按「加载器重新应用后的状态」验证,没应用上就如实失败。解法。 要么把这台服务器改到 profile 层管理,要么接受它只能只读。
坑三:面板加载正常,服务器却全部连接失败
现象。 面板 UI 一切正常,但所有服务器都连不上,诊断清一色超时或解析失败。原因。 站内明确提示该插件运行需访问外部网络 / 远程 API;ECS 常见根因是没绑 EIP 又没配 NAT,或出向安全组把目标端口收掉了。解法。 确认出网链路(NAT 网关 / SNAT / EIP / 代理),放通到目标地址的流量。
坑四:写入要审批,备份还越攒越多
现象。 写入被挂起等待审批;$DSH_HOME 下出现多个备份文件。原因。 写入走「仅追加 + 需审批 + 自动备份」路径,backupCount 默认 5 份,writeEnabled 是终止开关。解法。 批量改配置就一次写完;纯查看场景把 writeEnabled 设为 false(复制功能仍可用)。
总结
在阿里云 ECS 上跑 dsh-mcp-panel,门槛不在安装命令,而在出网链路与备份落盘:安全组出向、NAT 网关加 SNAT、VPC 内网地址、ssh -L 转发、系统盘余量对齐了,控制台才真正好用;先翻一遍 DeepSeek Harness Hub 插件清单 摸清全貌,再按本文顺序落地。
适合与不适合
适合:在阿里云 ECS 上跑 DSH、并已挂载或准备挂载多台 MCP 服务器的运维;没有公网 EIP、需要靠 NAT 网关出网又拿不准出向规则的团队;MCP 服务藏在 VPC 内网、想用 ssh -L 临时验证而不改安全组的人。
不适合:完全无法出网、也不打算开 NAT 或代理的纯内网机器,探测与远程 API 访问都会失败;只挂一到两台服务器、且已熟手手写 cordis.yml 的个人用户,多一层审批与备份收益有限;不能接受未实装验证与 0 人评分风险的谨慎派,建议等本站实装结论再上。
标签:dsh-mcp-panel、DeepSeek Harness、阿里云 ECS、MCP 接入、部署教程
本文由 DeepSeek Harness Hub 自动整理,数据来源于插件详情页。