| 配对码 | 设备名 | 剩余 |
|---|
新设备上运行 agent 会打印配对码,这里输入或点击批准即可。
| 设备 | 状态 | 访问域名 / 证书 | 操作 |
|---|
签发约需 1 分钟。设备 agent 的 TUNNEL_HOSTNAMES 加上同一个域名后,会自动拉取并热加载。
浏览器 ──TLS──▶ 中继 443 ──按 SNI 分流──┬─ home.43-155-239-141.sslip.io → 盲转回家,TLS 在家里终止
├─ admin.43-155-239-141.sslip.io → 控制台(中继终止 TLS)
└─ relay.43-155-239-141.sslip.io → agent 回连(WSS)
中继只看得到 TLS 握手中的 SNI 字段,看不到 DSH 的明文流量。
| 访问 DSH | https://home.43-155-239-141.sslip.io/ |
| 设备控制台 | https://admin.43-155-239-141.sslip.io/ |
| 门禁口令 | ?k=<口令> 拼在 DSH 地址后面,种一年期 Cookie |
dev2),等约 1 分钟变成「LE 至 …」。src/ 目录,装 Node 20+ 和 ws 依赖。scripts/install-agent.sh 安装并启动,关键环境变量:TUNNEL_HOSTNAMES=dev2.43-155-239-141.sslip.io、CERT_SYNC_HOST=dev2.43-155-239-141.sslip.io、
RELAY_URL=wss://relay.43-155-239-141.sslip.io/agent、GATE_KEY=<口令>、TARGET_PORT=3080~/.config/dsh-tunnel/device.json(权限 600)。certbot.timer 自动续期。/opt/dsh-tunnel/acme/<域名>/,agent 在
通道建立时和每 12 小时自动拉取,不需要重启。dsh-cert-worker.path 里真正调用 certbot,本进程不提权。ssh ubuntu@<中继IP> sudo certbot certonly --webroot -w /var/www/acme -d <域名> --non-interactive --agree-tos --register-unsafely-without-email --keep-until-expiring --deploy-hook /usr/local/bin/dsh-cert-deploy sudo RENEWED_LINEAGE=/etc/letsencrypt/live/<域名> /usr/local/bin/dsh-cert-deploy
systemctl status dsh-tunnel-relay journalctl -u dsh-tunnel-relay -f # 改控制台密码(会同时让所有旧会话失效) CONSOLE_PASSWORD='新密码' node /opt/dsh-tunnel/ctl.mjs set-password sudo systemctl restart dsh-tunnel-relay # 设备台账 / 吊销 node /opt/dsh-tunnel/ctl.mjs devices node /opt/dsh-tunnel/ctl.mjs revoke <deviceId>
systemctl --user status dsh-tunnel-agent journalctl --user -u dsh-tunnel-agent -f # 重新配对:删掉令牌后重启,会重新打印配对码 rm ~/.config/dsh-tunnel/device.json systemctl --user restart dsh-tunnel-agent
| 现象 | 先查什么 |
|---|---|
| DSH 页面打不开 | 「设备」页是否在线 → 中继 systemctl status → agent 日志 |
| 页面能开但一直「重连中」 | DSH 的 --trusted-host 是否包含当前域名 |
| 浏览器报证书错误 | 控制台的证书状态;未签发就在本页「申请证书」 |
agent 日志 403 domain_not_yours | 申请的域名不在 .43-155-239-141.sslip.io 命名空间下 |
| 配对码一直不出现 | agent 能否解析 relay.43-155-239-141.sslip.io,以及 443 是否放行 |
dsh-watchdog.timer 每 5 分钟检查:中继存活、agent 在线、证书剩余天数、根分区占用、备份新鲜度。/opt/dsh-tunnel/health.json,本页顶部会显示告警条。ALERT_WEBHOOK=<机器人地址>,异常状态变化时推一条 JSON。dsh-backup.timer 每天备份台账/凭据/证书到 backups/,保留 14 份。cd /opt/dsh-tunnel TUNNEL_TOKEN=$(sudo grep -oP 'TUNNEL_TOKEN=K.*' /etc/systemd/system/dsh-tunnel-relay.service) RELAY_ADMIN_URL=https://relay.43-155-239-141.sslip.io node ctl.mjs doctor
逐项检查中继、设备在线、证书、状态文件、备份、近期日志,异常会返回非零退出码。
?k= 门禁在家里那侧执行,中继不参与。/pair/new 每 IP 每分钟 10 次、待批配对码上限 20。