wingsky-1/dsh-plugin-hub--packages-dsh-lan-proxy ↗★ 16
@wingsky-1/dsh-lan-proxy
局域网访问 dsh web UI:在 0.0.0.0:<port> 监听,把 HTTP/HTTPS 与 WebSocket/wss 转发到回环 web 服务器(默认 127.0.0.1:3080)。重写 Host/Origin 以通过 /api 浏览器信任围栏,仅接受 IP 字面量或 localhost 的 Host 头(DNS 重绑定防护)。HTTPS 默认并存(3443),证书可配置或自动生成自签名。
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:wingsky-1/dsh-plugin-hub#9dc74922bc481b9e517f245538501740b6b9bbb4&path:packages/dsh-lan-proxy说明文档
阅读完整 README ↗配置
| 键 | 默认 | 说明 |
|---|---|---|
enabled | true | 总开关(关闭后转发器停止监听) |
host | 0.0.0.0 | 监听地址 |
port | 3081 | HTTP 监听端口 |
httpsPort | 3443 | HTTPS 监听端口 |
targetHost | 127.0.0.1 | 回环上游主机(仅允许回环地址) |
targetPort | 自动 | 上游端口(默认取 web 服务器实际绑定端口) |
httpsEnabled | true | 是否并存 HTTPS |
tlsCertFile / tlsKeyFile | 无 | 自定义证书(mkcert 等) |
printBanner | true | 启动时是否在终端打印监听横幅(LAN 访问地址等) |
wsBridgeEnabled | true | WebSocket 桥接总开关(issue #552):true = 所有 WS 升级一律走「终结 + 桥接」(保活基座:ws 库自动代答上游 Ping + 半开探活);false = TCP 字节透传(显式放弃保活与压缩,移动端切后台可能被上游心跳判死而频繁断连重连,见「WebSocket 压缩」节) |
wsCompressEnabled | true | 是否对命中 wsCompressPaths 的 WebSocket 做压缩桥接(仅控制压缩,不影响桥接保活) |
wsCompressPaths | /api/remote.mux | 参与 WebSocket 压缩的路径白名单(清空 = 桥接不压缩,保活不受影响) |
wsDeflatePolicy | {browser:true, uaDeny:[iPhone…]} | WS 压缩协商策略:browser 为 false 全局关压缩;uaDeny 为不协商压缩的 UA 片段列表(iOS Safari 默认拦截,见「WebSocket 压缩」节) |
httpCompressEnabled | true | HTTP 响应压缩总开关(转发层对可压缩响应协商 gzip/Brotli;Brotli 生效条件见「HTTP 响应压缩」节,合并自 dsh-gzip) |
httpCompressLevel | 1 | 压缩档位预设 0..3:0 默认 / 1 低(gzip 1 / br 2,最快)· 2 中(gzip 5 / br 5,均衡)/ 3 高(gzip 9 / br 9,最高压缩比),gzip 与 Brotli 两侧参数同时按下发;旧配置整数 4..9 自动迁移为 3 |
injectToken | true | 自动注入启动令牌(issue #380):LAN 设备首次访问 GET / 由转发层自动补当前 token 铸造会话 cookie,固定设备免手工拿 token;带失效 cookie 的请求在上游 401 后自动重放自愈。安全语义见「安全模型」 |
GUI 设置入口:设置 → 插件 → 「局域网访问」卡片(保存即热更新)。
配置存储(单一通道)
- 全部配置存于 dsh 官方 settings 存储(
settings.register注册的dsh-lan-proxy命名空间,落盘在宿主统一管理的 settings 文档中),组合层cordis.patch.yml的 config 作为 base 层生效;热更新由官方scope.watch驱动,无需重启。 - 本插件不再维护自建
~/.dsh/lan-proxy/config.json。升级后首次启动会自动把 存量 config.json 一次性迁移进官方存储:原文件原子改名保留为config.json.migrated.bak备份;若写入官方存储失败会自动还原改名、下次 启动重试;若进程在写入完成前退出(中断),下次启动检测到备份残留会自动 从备份重放写入并以日志提示。确认运行正常后可手动删除该备份。 此后手改 config.json 不再生效。
配置存储(单一通道)
- 全部配置存于 dsh 官方 settings 存储(
settings.register注册的dsh-lan-proxy命名空间,落盘在宿主统一管理的 settings 文档中),组合层cordis.patch.yml的 config 作为 base 层生效;热更新由官方scope.watch驱动,无需重启。 - 本插件不再维护自建
~/.dsh/lan-proxy/config.json。升级后首次启动会自动把 存量 config.json 一次性迁移进官方存储:原文件原子改名保留为config.json.migrated.bak备份;若写入官方存储失败会自动还原改名、下次 启动重试;若进程在写入完成前退出(中断),下次启动检测到备份残留会自动 从备份重放写入并以日志提示。确认运行正常后可手动删除该备份。 此后手改 config.json 不再生效。