wingsky-1/dsh-plugin-hub--packages-dsh-lan-proxy16

@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),证书可配置或自动生成自签名。

包名
@wingsky-1/dsh-lan-proxy
版本
0.2.3
许可证
MIT
最近更新
2026年9月12日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:wingsky-1/dsh-plugin-hub#9dc74922bc481b9e517f245538501740b6b9bbb4&path:packages/dsh-lan-proxy

配置

默认说明
enabledtrue总开关(关闭后转发器停止监听)
host0.0.0.0监听地址
port3081HTTP 监听端口
httpsPort3443HTTPS 监听端口
targetHost127.0.0.1回环上游主机(仅允许回环地址
targetPort自动上游端口(默认取 web 服务器实际绑定端口)
httpsEnabledtrue是否并存 HTTPS
tlsCertFile / tlsKeyFile自定义证书(mkcert 等)
printBannertrue启动时是否在终端打印监听横幅(LAN 访问地址等)
wsBridgeEnabledtrueWebSocket 桥接总开关(issue #552):true = 所有 WS 升级一律走「终结 + 桥接」(保活基座:ws 库自动代答上游 Ping + 半开探活);false = TCP 字节透传(显式放弃保活与压缩,移动端切后台可能被上游心跳判死而频繁断连重连,见「WebSocket 压缩」节)
wsCompressEnabledtrue是否对命中 wsCompressPaths 的 WebSocket 做压缩桥接(仅控制压缩,不影响桥接保活)
wsCompressPaths/api/remote.mux参与 WebSocket 压缩的路径白名单(清空 = 桥接不压缩,保活不受影响)
wsDeflatePolicy{browser:true, uaDeny:[iPhone…]}WS 压缩协商策略:browser 为 false 全局关压缩;uaDeny 为不协商压缩的 UA 片段列表(iOS Safari 默认拦截,见「WebSocket 压缩」节)
httpCompressEnabledtrueHTTP 响应压缩总开关(转发层对可压缩响应协商 gzip/Brotli;Brotli 生效条件见「HTTP 响应压缩」节,合并自 dsh-gzip)
httpCompressLevel1压缩档位预设 0..3:0 默认 / 1 低(gzip 1 / br 2,最快)· 2 中(gzip 5 / br 5,均衡)/ 3 高(gzip 9 / br 9,最高压缩比),gzip 与 Brotli 两侧参数同时按下发;旧配置整数 4..9 自动迁移为 3
injectTokentrue自动注入启动令牌(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 不再生效

健康检查(回环;含压缩配置与生效状态/协商计数)

curl -s http://127.0.0.1:3081/api/dsh-lan-proxy/health