局域网访问 dsh web:DeepSeek Harness 的绑定地址、防火墙与自签证书
让局域网里的手机或另一台电脑访问 DeepSeek Harness 的 dsh web,要同时解决三件事:绑定地址、端口放行、设备信任。 只改绑定或只放行端口都会失败,正确顺序是先监听对外地址、再放行端口、最后处理证书。另外注意:绑到全部网卡等于把本地工具变成局域网服务,不受信任的网络里要谨慎。
局域网访问 DeepSeek Harness 要解决的三件事
一句话结论:绑定地址决定「谁连得上」、防火墙决定「能不能过」、证书决定「浏览器信不信」——三件事必须同时成立。
| 环节 | 失败表现 | 修法 |
|---|---|---|
| 绑定地址 | 本机能开、别的设备超时 | 改成对外网卡地址或全部网卡 |
| 防火墙 | 能 ping 通但端口连不上 | 放行该端口(限定来源网段) |
| 证书信任 | 能连上但浏览器报不安全 | 手动信任自签证书,或用可信来源签发的证书 |
DSH plugin 局域网访问的三种方案对比
一句话结论:只在受信任网段临时共享选方案 A;想最小暴露面选方案 B;完全不想开端口选方案 C。
| 方案 | 做法 | 适合 | 代价 |
|---|---|---|---|
| A. 直接绑对外网卡 | 监听全部网卡 + 放行端口 | 家里/办公室内网共享 | 同网段均可访问,需配合来源限制 |
| B. 只绑回环 + 反代 | 服务不对外,反代对外 | 需要 HTTPS 与访问认证 | 多一层组件要维护 |
| C. SSH 隧道 | 服务不对外,客户端转发 | 临时、单人使用 | 每台设备要配 SSH |
方案 A:直接绑对外网卡(最快)
一句话结论:把监听地址改成全部网卡、放行端口,两步走通;这是「只在受信任局域网里用」的最短路径。
- 起服务时指定监听地址与端口(参数名以
dsh web --help为准):
dsh web --host 0.0.0.0 --port 3080
# 预期:启动输出显示监听 0.0.0.0:3080
- 本机自测(排除服务问题):
curl -I http://127.0.0.1:3080 # 预期:返回 HTTP 响应头
- 查本机在局域网中的地址:
# macOS / Linux
ipconfig getifaddr en0 2>/dev/null || hostname -I
# Windows(PowerShell)
# (Get-NetIPAddress -AddressFamily IPv4).IPAddress
- 在另一台设备上访问
http://<你的局域网IP>:3080。 - 不确定时用诊断命令三步走(见第 6 节)。
方案 B:只绑回环 + 反代(暴露面最小)
一句话结论:dsh web 只监听本机、由反代对外提供访问——可以集中加 HTTPS 与访问认证,适合「要给几个人用」的场景。
- 服务端保持默认(只绑回环),反代层对外监听。
- 反代配置要满足三条硬要求(WebSocket 升级、不缓冲、长超时),写法见 给 dsh web 配反向代理与 HTTPS。
- 在反代层加来源限制:只允许内网网段访问,或叠加基础认证。
- 证书用可信来源:内网有 CA 就签内网证书,设备一次信任、长期有效。
- 故障定位上一节的三步同样适用。
方案 C:SSH 隧道(不开端口)
一句话结论:服务只监听本机、客户端通过 SSH 把端口转发到自己这边——不开任何对外端口,适合临时、单人使用。
- 在电脑上按默认方式起服务(只绑回环即可)。
- 在手机或另一台设备上做本地端口转发(示意,具体命令取决于你用的 SSH 客户端):
ssh -N -L 3080:127.0.0.1:3080 你的用户名@你的电脑IP
# 预期:本机 3080 端口被转发到远端 dsh web
- 在本机浏览器访问
http://127.0.0.1:3080。 - 取舍:每次使用要建隧道;多人共享不方便;好处是不改变服务暴露面,也不需要动防火墙。
DeepSeek Harness 绑定地址的三种取值与后果
一句话结论:回环=只有本机、指定网卡 IP=只有该网段、全部网卡=所有网卡都对外——选哪个取决于「谁能连」,不取决于「能不能连」。
127.0.0.1(回环):默认值,只本机可达——最安全,也最常被误当成「服务坏了」。- 指定网卡 IP(例如
192.168.1.20):只监听该网卡,适合机器同时接多个网络(内网 + 其它)时限定范围。 0.0.0.0(全部网卡):所有网卡都监听——风险等同于「该机器可达的所有网络都能访问」,务必配合防火墙来源限制。- 切换时机:临时需要共享时改、用完改回;把「长期绑全部网卡」当默认是不必要的暴露。
DSH plugin 的防火墙与端口选择(含证书信任)
一句话结论:放行要精确到「端口 + 来源网段」;证书信任是一次性动作,用自签就要接受每台设备手动信任一遍。
- 选高位端口(避免落在系统保留区间被拒,也避开常见服务端口冲突)。
- 放行精确到网段(示意):
# Linux(ufw 示例)
sudo ufw allow from 192.168.1.0/24 to any port 3080 proto tcp
# 预期:同一网段可访问,其它来源仍被拦
- 自签证书信任三步:生成证书 → 在服务端启用 HTTPS → 在每台设备上安装并信任(iOS 需在证书信任设置里启用;Android 装为用户证书)。细节各设备不同,装完记得验证一次。
- 更省事的替代:内网 CA 或公网域名签发的证书,省掉逐设备信任的麻烦。
- 信任之后仍要收敛来源:加密不等于授权。
DeepSeek Harness 局域网访问的验证与排查三步
一句话结论:本机 curl → 另一设备 ping → 端口探测,三步分别定位服务、网络、防火墙,不要一上来就改绑定。
- 第一步(服务):在本机
curl -I http://127.0.0.1:<端口>。不通 → 问题在服务本身(端口被占/权限),与局域网无关。 - 第二步(网络):在另一设备
ping <你的局域网IP>。不通 → 两台设备其实不在同一网段(访客网络、AP 隔离是常见原因)。 - 第三步(端口):能 ping 通但端口不通 → 防火墙拦了;用端口探测工具确认,再按上一节放行。
- 还不行再看绑定:确认启动输出里真的是对外地址,而不是仍绑在回环上。
- 顺手看一眼服务日志:有请求到达与否,是区分「没连上」与「连上但报错」的最快判据。
DSH plugin 排查注意事项
一句话结论:局域网共享时,先确认「能访问」再谈「插件能不能用」——两个问题分属网络层与应用层。
- 网络层先通:按第 6 节三步验证。
- 应用层再看:能打开页面但插件功能异常时,属于插件侧问题(如容器/权限前提),见 DeepSeek Harness 容器化安装 与 DeepSeek Harness 端口冲突排查。
- 共享时把插件清单写清:谁在什么设备上要用哪个插件,用 DSH Plugin Hub 的已安装列表对齐,避免「我这边有、你那边没有」。
- 用完记得收:把绑定改回回环、关掉临时放行的规则。
- 移动端与局域网是两件事:移动网络/外网访问另有方案(见 apps/cli/README.md 与反代一文),别把内网方案直接搬到公网。
- 修复状态如实:本文绑定参数与命令基于官方 CLI 说明;防火墙、证书与 SSH 隧道的具体做法因操作系统与设备而异,
dsh web的准确参数名以你机器上的--help输出为准。
局域网共享时建议先把「谁在什么设备上用哪些插件」写清——用 DSH Plugin Hub 的已安装列表对着刷一遍,就不会出现「你那边有、我这边没有」。

来源:apps/cli/README.md、Microsoft Learn · WSL networking、nginx Docs · WebSocket proxying。
常见问题
在 DeepSeek Harness 里,因为 dsh web 默认只监听本机回环地址,设计前提是「单机使用」。要把 DeepSeek Harness 分享给同一局域网的其他设备,需要把监听地址改成对外网卡(例如全部网卡),并在系统防火墙上放行对应端口,两件事都做完才连得上。
在 DeepSeek Harness 里,绑 0.0.0.0 等于监听本机所有网卡,除了局域网,若机器还有公网地址或处于不受信任网络(如咖啡店 WiFi),同一个网络里的人都可能访问到。做法是只在受信任网段使用、配合防火墙限制来源、必要时叠加访问认证;公网场景应当用反代加 TLS 与鉴权,而不是直接绑全网卡暴露。
在 DeepSeek Harness 里,自签证书天然不被设备信任,需要在设备上手动信任一次:iOS 需在描述文件里安装并到证书信任设置里启用,Android 需安装为用户证书或对特定应用放行。更省事的做法是内网用一个可信来源签发证书(例如内网 CA 或公网域名签发的证书),或在受信任网络里用明文配合网络隔离。
在 DeepSeek Harness 里,有,用 SSH 隧道:手机通过 SSH 客户端把远端(你的电脑)上的 dsh web 端口转发到本机,服务端不需要对外监听。代价是手机侧要配 SSH 客户端与密钥,而且每次使用要建立隧道;适合临时用,不适合长期多人共享。
三步:一先在本机 curl 该端口,确认 DeepSeek Harness 服务本身正常;二在另一台设备上 ping 你的机器 IP,确认二层三层通;三用端口探测确认端口没被防火墙拦。三步分别对应「服务问题、网络问题、防火墙问题」,比反复改绑定地址快得多。
相关术语
- 绑定地址(bind address)
- 绑定地址是服务监听的本机网络接口地址。DeepSeek Harness 的 dsh web 默认只绑定回环地址,因此仅本机可访问;改成对外网卡地址或全部网卡地址后,局域网内其它设备才能连接。— https://github.com/deepseek-ai/deepseek-harness/blob/master/apps/cli/README.md
- 回环地址(loopback address)
- 回环地址(127.0.0.1)指只在本机内部有效的地址,数据包不出网卡。它是 dsh web 的默认绑定目标,也是「别人打不开」最常见的原因。— https://learn.microsoft.com/windows/wsl/networking
- 自签证书(self-signed certificate)
- 自签证书是用自己的私钥签发的 TLS 证书,未经第三方认证机构背书。局域网内用它加密 dsh web 的流量可行,但每台设备都需要手动信任一次。— https://nginx.org/en/docs/http/websocket.html
- SSH 隧道
- SSH 隧道是通过已建立的 SSH 连接转发端口的技术,可在不对外监听的情况下访问远端服务。它常被用来在手机上临时访问运行在电脑上的 dsh web。— https://learn.microsoft.com/windows/wsl/networking
来源
- deepseek-ai/deepseek-harness — apps/cli/README.md(dsh web 入口与绑定参数)· deepseek-ai(GitHub)
- Microsoft Learn — WSL networking(本机转发与端口访问)· Microsoft
- nginx Docs — WebSocket proxying(需要长连接时的代理要求)· nginx