error: --host 0.0.0.0 is intentionally not supported yet for safety 报错:DSH plugin 安全限制排查

故障排查发布于 2026-10-13作者: DeepSeek Plugin 插件市场
DeepSeek HarnessDSH plugin0.0.0.0SSH 隧道安全限制报错排查
dsh web 传 --host 0.0.0.0 会报 error: --host 0.0.0.0 is intentionally not supported yet for safety,官方为防远程代码执行拒绝绑定全网卡;改用默认 127.0.0.1 加 SSH 隧道访问。

这条报错的完整原文是「error: --host 0.0.0.0 is intentionally not supported yet for safety: it would expose remote code execution to the network; use 127.0.0.1 instead」——报错 X → 执行 W:别再试绑定全网卡,改用默认的 127.0.0.1 起服务,再通过 SSH 隧道从本机访问(来源)。 它不是用法失误,而是官方的安全决策:dsh web 能以 Host 用户权限执行命令、读写本机文件,绑到 0.0.0.0 就等于把远程代码执行能力交给整个网络。远程连接方式的完整讲法在《dsh ssh 怎么远程连接》,本篇专打这条安全限制报错。

「--host 0.0.0.0 is intentionally not supported yet for safety」报错是什么意思

它表示你给 dsh web 传了 --host 0.0.0.0,而 CLI 故意不支持这个绑定,因为那会把具备命令执行能力的 Web 界面暴露到网络,所以直接以错误退出(来源)。 三个关键点:

  1. intentionally not supported 是「有意不支持」 —— 这是官方刻意的设计,不是尚未实现的缺口,别等它「以后支持」。
  2. for safety 点明了动机 —— 拒绝的理由是安全:绑定全网卡会暴露远程代码执行能力。
  3. use 127.0.0.1 instead 已经给出正解 —— 官方让你用回环地址,也就是默认行为。

先看清默认行为与非法改动的差别:

用法结果说明
dsh web(默认)正常监听 127.0.0.1:3080只有本机能访问
dsh web --port 8080正常,改端口端口可改,绑定地址不可改
dsh web --host 0.0.0.0报这条安全错误官方拒绝,属于用法错误
dsh web --trusted-host <主机名>正常,限制来源用于信任特定主机,不是开放全网

一句话:端口随你改,绑定地址没得商量——127.0.0.1 是唯一的受支持绑定。

报这个错该怎么办:改用默认的 127.0.0.1

看到这条报错,正解只有一个:别再传 --host 0.0.0.0,用回环地址(也就是 dsh web 的默认行为)把 DeepSeek Harness 起起来;要从另一台机器访问,就走 SSH 隧道,而不是改绑定。 隧道怎么建、回环为何够用,属于远程访问方向的既有题面——《dsh ssh 怎么远程连接》逐条写了服务器侧起服务、ssh -L 3080:127.0.0.1:3080 <用户>@<服务器>、本机打开带 ?token= 的地址,以及用可重复的 --trusted-host 限制来源主机;本篇只留这条安全限制报错本身。

别忘了区分它和端口占用: 这条是安全拒绝,与 3080 被占用导致的打不开完全是两回事,后者见《127.0.0.1:3080 打不开、访问被拒排查》。

为什么这么设计:远程代码执行风险与官方取舍

核心原因只有一条:dsh web 是一个能执行命令、读写本机文件的界面,一旦匿名可达就等于把机器控制权交出去,所以官方用「拒绝绑定」来守住底线,而不是靠事后加认证(来源)。 逐层看:

  1. 能力即风险 —— 界面带着本机的文件与命令执行能力,能做的事越多,暴露的后果越重。
  2. 没有 TLS 与代理约定 —— 官方没有为「把服务直接暴露到网络」提供 TLS、转发 header 解释或代理配置支撑,贸然开放等于裸奔。
  3. 认证解决的是「谁能在本机用」 —— 启动令牌是给「已经能到达本机」的人用的,它不等于「可以安全开到公网」。
  4. 宁拒绝不暗示 —— 与其提供一个容易被误用的开关,官方选择在参数层直接拒绝,避免让人以为「绑定全网卡」是受支持的部署方式。

边界条件要说清:这条限制是官方决策,任何绕过(改环境变量、用插件替换启动器、反向代理直推)都超出受支持范围。真要做局域网或公网访问,先用 SSH 隧道这类加密通道,并在评估风险后再决定;远程访问的整体安全前提已在《dsh ssh 怎么远程连接》里讲过。

排查 DSH plugin 远程访问报错前的须知

在远程环境里装任何 DSH插件 之前,先把「连接方式是否受支持」确认清楚,能免掉一次注定失败的尝试。 三条须知:

  1. 受支持的连法只有 SSH 隧道 —— 别去和 --host 0.0.0.0 较劲,把精力放在隧道与令牌上。
  2. 令牌一次性、别外传 —— 带 ?token= 的地址会留在历史里,取到后立刻换成会话 cookie,别截图外发。
  3. 服务只该待在回环里 —— 确认 dsh web 绑定的是 127.0.0.1;远程进去后要补插件,用 DSH Plugin Hub 在界面里挑即可,不必在隧道两端来回敲命令。

使用 DSH plugin 的注意事项与局限

  1. 绑定地址不可改 —— 127.0.0.1 与拒绝 --host 0.0.0.0 是官方决策,任何绕过都超出受支持范围。
  2. 端口可以改、地址不能改 —— --port 随意,--host 只有回环受支持,两者别混为一谈。
  3. 令牌每次启动都变 —— 远程访问每次都要从服务器终端重新取一次带令牌的地址,无法预先收藏。
  4. 常驻要自己托管 —— 官方未提供服务化方案,长期运行请用终端复用器或系统服务自行托管。
  5. 报错文案以官方版本为准 —— 措辞可能随版本微调,但「拒绝绑定全网卡」这一点不会变。

与其为了远程访问去绕过官方的绑定限制、把服务推到网上,不如就在受支持的回环里用 DSH Plugin Hub 把远程环境打理好:确认安装弹窗让每一次安装都可核对,装了哪个、来自哪个仓库写得明明白白,比在隧道两端手敲包名稳当得多。

确认安装

来源:dsh CLI README、dsh CLI behavior reference。

常见问题

dsh web --host 0.0.0.0 报 error: --host 0.0.0.0 is intentionally not supported yet for safety 为什么?

DeepSeek Harness 的 dsh web 刻意拒绝绑定 0.0.0.0。把这台机器上具备文件读写与命令执行能力的 Web 界面暴露给整个网络,等于把远程代码执行能力送出去,属于官方明确要避免的风险,所以在参数层直接拦下。

不能绑 0.0.0.0,那怎么从另一台机器访问 dsh web?

DeepSeek Harness 受支持的远程访问方式是 SSH 本地端口转发:先在服务器上跑 dsh web(默认绑 127.0.0.1:3080),再在本机执行 ssh -L 3080:127.0.0.1:3080 <用户>@<服务器>,然后在本地浏览器打开服务器终端打印的带令牌地址。核心是隧道,不是改绑定。

局域网里其他设备也想访问,能不能放宽这个绑定?

对 DeepSeek Harness 来说这个绑定不能放宽,也不受支持。CLI 有意不支持 --host 0.0.0.0,同网段直连也不在受支持范围内;要限制来源主机,用可重复的 --trusted-host 添加受信主机名,而不是把服务推向全网。

用 nginx 之类的反向代理把 3080 推出去行不行?

对 DeepSeek Harness 来说,用反向代理把 3080 推出去同样超出受支持范围。官方没有为远程部署提供 TLS、转发 header 解释或代理配置支持;真要在受控网络里暴露,也应先评估远程代码执行风险,而不是默认它受支持。

为什么这条报的是安全原因而不是用法错误?

DeepSeek Harness 把这条报成安全原因,是因为它保护的是「谁能执行命令」这条底线。dsh web 能以 Host 用户权限执行命令、读写本机文件,一旦匿名可达就等于交出机器控制权,所以官方宁可用硬性拒绝,也不暗示支持网络部署。

相关术语

--host 0.0.0.0
--host 0.0.0.0 是让服务绑定到所有网卡的启动参数;在 DeepSeek Harness 里它被明确拒绝,因为它会把 Web 界面连同远程代码执行能力暴露到网络。— dsh CLI README
远程代码执行(RCE)
远程代码执行指攻击者能在目标机器上运行任意命令;dsh web 以 Host 用户权限执行命令,若匿名可达即构成远程代码执行风险,这正是官方拒绝绑定 0.0.0.0 的原因。— dsh CLI README
SSH 本地端口转发
SSH 本地端口转发是用 ssh -L 把本机端口映射到远端回环地址的做法,让本机浏览器以为连的是本地端口,实际流量经加密隧道抵达服务器。— dsh CLI behavior reference
--trusted-host
--trusted-host 是 dsh web 可重复使用的参数,向 /api 浏览器信任栅栏加入受信主机名;它用于限制来源主机,不用于把服务暴露到网络。— dsh CLI behavior reference

来源