为什么需要 Token?以及为什么只需带一次?
30天长期免密
DSH Launch Token 是被控端启动时随机生成的访问密钥,用来杜绝未授权的公网扫描攻击。
🎉 极简体验 :您只需在首次访问时使用【带 Token 远程直达】 打开一次,DSH 就会为当前浏览器签发并写入长达 30 天有效的安全 Cookie。之后在同一台电脑/手机上,直接打开纯二级域名就能秒进,不需要重复填写!
1
方法一:终端启动回车后首行直接查看 (最标准)
官方推荐 · 零依赖
在被控电脑终端执行启动命令。无论输入 npx @deepseek-ai/dsh web、dsh web 还是 dsh --profile web(三者 100% 完全等价 !),终端就绪时输出的前几行会直接显示访问地址:
$ npx @deepseek-ai/dsh web
dsh web: http://127.0.0.1:3080/?token=YteLGTRaRhYSdJPoV4jTglHT8zu-TIi0NTYx9jUyhSI
dsh web: opening the default browser; pass --no-open to disable
👉 鼠标选中复制 token= 后的长字符串(如上图中的 YteLG...hSI),在 Hub 节点卡片点击【🔑】或详情弹窗中粘贴保存即可。
2
方法二:在会话中直接让 AI 查询 (最省心 · 零操作)
懒人必备
若您的被控电脑当前已经打开了 DSH 交互窗口(不管是本地浏览器还是之前的终端会话),您根本无需去翻看日志!
在聊天输入框中直接对 AI 发送:“帮我看下当前 DSH 的 token”
复制提问指令
💡 作为运行在宿主机上的 Agent,它会直接读取当前运行的进程描述符或日志,立刻把实时 Token 复制给您。
3
方法三:终端已被刷屏或后台运行时的一键提取命令
进程/日志排查
如果服务在后台运行(如 tmux、systemd 或 nohup),或终端被大量输出刷下去了,可在被控机新开终端运行:
cat /proc/$(pgrep -f "dsh web" | head -n 1)/fd/1 2>/dev/null | grep -o 'token=[^ ]*' | head -n 1 | cut -d= -f2
复制命令
grep -rn "token=" /tmp/dsh*.log 2>/dev/null | head -n 1
复制命令
进阶建议:被控机启动时附带可信域名参数 (杜绝 403 跨域防护)
DSH 内部具备 Host 请求头防篡改机制。为确保 Cloudflare 远程域名访问 100% 顺畅,被控机启动时可直接附带 --trusted-host:
npx @deepseek-ai/dsh web --trusted-host 你的二级域名.dugekeysage.date
复制命令
Windows 运维
Linux (Ubuntu/CentOS/Debian)
macOS
Docker 容器
1
终止当前服务 (停止后台运行)
net stop cloudflared
# CMD 或 PowerShell 均可直接执行(必须管理员身份)
2
关闭开机自启 / 彻底卸载服务
cloudflared service uninstall
# 该命令会注销系统中的 cloudflared 服务,开机不再自动启动
3
再次启动服务 (恢复穿透)
net start cloudflared
# 重启服务:net stop cloudflared & net start cloudflared
4
重新配置新的隧道 (换绑新 Token)
net stop cloudflared cloudflared service uninstall cloudflared service install <您的新Token> net start cloudflared
# 先卸载旧凭证,再用新 Token 重新安装即可,无需重新下载客户端
# 或在 CMD 管理员窗口执行: net start cloudflared
4
重新配置新的隧道 (换绑新 Token)
cloudflared service uninstall cloudflared service install <您的新Token>
# 先卸载旧凭证,再用新 Token 重新安装即可,无需重新下载客户端
5
免管理员权限前台运行 (测试/临时使用)
cloudflared tunnel run --token <您的Token>
# 普通终端即可运行,不需要管理员权限,关闭该黑框终端后隧道即断开
1
终止当前服务 (停止运行)
sudo systemctl stop cloudflared
# 若为当前用户的 User 服务模式: systemctl --user stop cloudflared
2
关闭开机自启 / 卸载服务
sudo systemctl disable cloudflared
# 若彻底从系统卸载服务定义: sudo cloudflared service uninstall
3
再次启动服务 / 重启
sudo systemctl start cloudflared sudo systemctl restart cloudflared
4
重新配置新隧道 (更新 Token)
sudo cloudflared service uninstall sudo cloudflared service install <新Token> sudo systemctl enable --now cloudflared
1
停止服务
sudo launchctl stop com.cloudflare.cloudflared
2
关闭自启与卸载
sudo cloudflared service uninstall
3
再次启动服务
sudo launchctl start com.cloudflare.cloudflared
4
换绑新 Token
sudo cloudflared service uninstall sudo cloudflared service install <新Token>
1
停止容器服务
docker stop <容器名称>
2
关闭开机自启 / 移除容器
docker update --restart no <容器名称> docker rm -f <容器名称>
3
再次启动容器
docker start <容器名称>
4
更新为新 Token
docker rm -f <旧容器名> docker run -d --name <新容器名> --restart always --net=host cloudflare/cloudflared:latest tunnel --no-autoupdate run --token <新Token>
Windows 桌面端应用 (.exe / 窗口客户端) 远程控制原理
桌面端专属适配
DSH 桌面端虽然是窗口应用,但其后台完全跑着相同的 DSH Web 核心服务 (默认监听本地 http://127.0.0.1:3080)。
若需要通过公网二级域名远程连接,唯一需要解决的就是:让桌面端信任您的公网二级域名(防止 403 跨域或左下角一直显示“重新连接”) 。配置方法极其简单,任选下方一种即可:
A
方案 A(最简推荐):修改桌面快捷方式目标参数
30 秒搞定 · 免改代码
1.
在 Windows 桌面或开始菜单找到 DeepSeek Harness 快捷方式图标;
2.
鼠标右键 点击该图标 → 选择【属性】 ;
3.
在【快捷方式】标签页中的【目标(T)】 输入框最末尾,敲一个空格 ,然后追加参数:
--trusted-host 你的二级域名.dugekeysage.date
复制参数
💡 完整目标示例:"C:\Program Files\DeepSeek Harness\DeepSeek Harness.exe" --trusted-host mylab.dugekeysage.date
4.
点击【确定】保存。以后只要双击桌面图标启动,就会自动带上受信任白名单,公网访问 WebSocket 秒连!
B
方案 B(原生永久生效):写入 Windows 全局配置文件
双击 exe 永久生效
若您希望直接双击原始 .exe 也能自动加载白名单,可直接写入 DSH 用户配置:
1.
按键盘 Win + R 键打开运行窗口,粘贴并按回车:
%USERPROFILE%\.dsh\profiles\web\
复制路径
2.
找到 cordis.patch.yml 文件,用记事本 打开;
3.
滑动到文件末尾,另起两行粘贴以下内容(将域名替换为您自己的):
复制代码
- id: client-connection
config:
trustedHosts:
- 你的二级域名.dugekeysage.date
4.
保存记事本即可。之后无论何种方式启动桌面端,都会自动信任该域名!
桌面端如何获取当前 Token?(零门槛捷径)
一句话搞定
在已打开的 DSH 桌面端窗口中,随便新建一个对话,直接对 AI 说:
请告诉我当前 Web GUI URL 和 Token
复制提问
AI 会直接将 http://127.0.0.1:3080/?token=... 打印出来。复制其中的 Token 到本平台的节点卡片上保存并点击【带 Token 远程直达】,即可实现完美远程控制!
错误 1:Windows 提示 Access is denied 权限拒绝?
权限不足
错误现象 :Cannot establish a connection to the service control manager: Access is denied
根本原因 :在 Windows 上注册系统开机自启服务(cloudflared service install)必须具备操作系统管理员权限。
解决步骤 :
1. 按键盘 Win 键 ,在搜索框输入 cmd 或 powershell;
2. 鼠标右键 点击搜索结果,选择【以管理员身份运行】 ;
3. 确保弹出的黑框窗口左上角标题显示有「管理员:」 字样,再粘贴执行一键脚本即可成功注册!
错误 2:访问远程 DSH 提示 dsh web authentication required (401 拦截)?
未验证 Token
根本原因 :DSH 原生设计为了保护您的机器安全,首次在新的浏览器或域名访问时,必须携带被控机启动时生成的 Launch Token。
解决步骤 :
1. 切换到本手册第一项【🔑 如何获取 DSH Token】 获取当前被控端的 Token;
2. 在控制台节点卡片上点击【🔑】 图标,将 Token 粘贴并保存;
3. 点击【打开远程 DSH 界面】 (链接会自动附带 ?token=...),打开后 DSH 会在您的浏览器中植入长达 30 天的专属安全 Cookie,之后可直接访问纯二级域名免密使用!
错误 3:提示 Host Header Rejected (403 跨域防护)?
Host白名单
根本原因 :DSH 默认只信任本地回环地址(127.0.0.1 / localhost)。当通过 Cloudflare 转发的自定义子域名接入时,可能触发 Host 头防护。
解决方案 :在被控机启动命令后添加 --trusted-host 参数将该域名加入受信任列表:
npx @deepseek-ai/dsh web --trusted-host 你的子域名.dugekeysage.date
场景 4:Windows 上的 DSH 是桌面端应用 (.exe),如何配置远程?
桌面端专属
桌面端原理 :Windows 桌面端内部同样内置了本地 Web 服务(默认监听 127.0.0.1:3080)。要让公网子域名正常连接,只需为桌面端加上受信任域名即可:
方案 A (最简推荐:改桌面快捷方式) :
1. 找到桌面上的 DSH 快捷方式图标,鼠标右键点击选择【属性】 ;
2. 在【快捷方式】标签页的【目标】 末尾追加一个空格和:
--trusted-host 你的子域名.dugekeysage.date
3. 点击【确定】保存。双击桌面图标启动即自动生效!
方案 B (修改用户配置文件,双击 exe 直接生效) :
按键盘 Win + R 键输入 %USERPROFILE%\.dsh\profiles\web\ 打开目录,用记事本打开 cordis.patch.yml,在末尾添加:
- id: client-connection
config:
trustedHosts:
- 你的子域名.dugekeysage.date
如何获取桌面端的 Token :在桌面端内随便新建一个对话,直接对 AI 说:“请查看我的当前 Token”,AI 就会为您输出当前桌面端的登录直达链接!