DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Wsl Expose — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-wsl-expose

Wsl Expose

通过反向代理(Lucky)将 WSL2 中的 DeepSeek Harness Web GUI 通过 IPv6 或 IPv4 暴露到公网。一个 /wan 命令即可设置 socat 回环中继、Windows portproxy、防火墙规则、IPv6 检测和受信主机限制。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-wsl-expose@1.7.0
README兼容性版本

兼容性与来源证明

Wsl Expose 以 dsh-wsl-expose 发布,当前版本为 1.7.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/9/20

版本

1.7.0stable
2026/8/20
1.6.1stable
2026/8/19
1.5.1stable
2026/8/18

相关插件

正在加载相关插件…

最新版
1.7.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
80 kB
文件数
9
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 0
周下载
59
最近提交
2026/8/20
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

README

dsh-wsl-expose

Expose the DeepSeek Harness Web GUI to the public internet from WSL2 over IPv6 through a reverse proxy — one /wan command.

English | 中文

What problem it solves

DSH's Web GUI binds to 127.0.0.1 only (--host 0.0.0.0 is intentionally refused), and every /api request must pass a browser-trust fence keyed to the request Host. Reaching it from a phone over IPv6 — through WSL2's NAT plus a LAN reverse proxy like Lucky — normally takes a chain of fragile manual steps.

This plugin automates everything that runs on your machine:

public IPv6 user ──> your domain (AAAA) ──> Lucky (reverse proxy)
        └─> [Windows global IPv6]:3082  (portproxy v6tov4)
                └─> WSL eth0:3082       (socat relay)
                        └─> 127.0.0.1:<web port>  (DSH Web GUI)

What it automates

  • Detects WSL2, the WSL eth0 IPv4, and Windows global IPv6 (via netsh.exe/ipconfig.exe)
  • Starts the socat loopback relay (TCP-LISTEN:<relayPort> → 127.0.0.1:<webPort>), detached so it survives restarts
  • Adds the Windows netsh interface portproxy v6tov4 rule ([WindowsIPv6]:relayPort → WSL:relayPort)
  • Adds the Windows firewall inbound rule for relayPort
  • Writes the connection trusted-host override into the profile's cordis.patch.yml, so the 403 fence accepts your public domain automatically (no --trusted-host flag needed)

What it cannot automate (it prints exact instructions instead): Lucky reverse-proxy config, router IPv6 inbound firewall, and DDNS AAAA records — those live on other machines.

Install

dsh plugin --profile web add dsh-wsl-expose

Restart dsh web, then in any conversation run:

/wan up dsh.your-domain.cn

Commands

CommandAction
/wan up [domain]Set up relay + portproxy + firewall + trusted-host. The domain is optional — reads the saved one
/wan set-domain <d>Save the domain once; then /wan up needs no argument
/wan get-domainShow the saved domain
/wan set-port <p>Save the relay port (1-65535); tears down the old port's artifacts when it changes
/wan get-portShow the saved relay port (and the effective one)
/wan set-web-port <p>Save the forward port — the DSH web server's port on 127.0.0.1 (default 3080)
/wan get-web-portShow the saved forward port (and the effective one)
/wan downTear it all down (removes the managed trusted-host block too)
/wan statusShow current state
/wan doctorDiagnose the chain (including the classic Lucky io timeout)

Set the domain and ports — UI or commands

Both surfaces read and write the same persisted settings (the wsl-expose namespace in settings.yaml).

UI: after restarting dsh web, open Settings → Plugins → dsh-wsl-expose — edit the domain, relay port, forward port, and the trusted-host fence switch; Save commits them.

Commands:

/wan set-domain dsh.your-domain.cn
/wan set-port 3082        # optional — relay listen port (default 3082)
/wan set-web-port 3080    # optional — forward target (default 3080)

Then just /wan up (no argument). The values are persisted in the plugin's settings namespace (wsl-expose), so they survive restarts. Resolution order — domain: CLI arg → saved setting → config domain; ports: saved setting → config → defaults (3082 / 3080).

Configuration (file / profile)

Lower-level options live in the profile's cordis.patch.yml (the user patch layer):

- id: dsh-wsl-expose
  config:
    mode: ipv6          # 'ipv6' (v6tov4, default) or 'ipv4' (v4tov4)
    relayPort: 3082     # port Lucky points at (default 3082)
    domain: dsh.your-domain.cn   # fallback default when neither CLI arg nor UI setting is set
    windowsAddress: ''  # pin the Windows listen address if auto-detect picks the wrong one

mode: 'ipv4' listens on the Windows LAN IPv4 (Lucky upstream http://<WindowsIPv4>:3082); mode: 'ipv6' listens on the Windows global IPv6 (upstream http://[<WindowsIPv6>]:3082).

webPort is auto-detected from the running webserver; the config webPort is only a fallback.

Prerequisites

  • socat in WSL: sudo apt install socat
  • Windows IP Helper service running (netsh portproxy depends on iphlpsvc)
  • A global IPv6 prefix (not just fe80::) assigned to Windows and the Lucky host
  • Lucky (or any reverse proxy) on another LAN machine

Manual steps the plugin prints (Lucky / router / DDNS)

  1. Lucky: add a reverse-proxy rule — upstream http://[<WindowsIPv6>]:3082, listen on 80/443, and pass the original Host header through (do not rewrite to the upstream address).
  2. Router: allow inbound IPv6 to the Lucky host on 80/443 (IPv6 has no NAT, so this is a firewall allow, not port forwarding).
  3. DDNS: point an AAAA record at your home IPv6 prefix (Lucky has a built-in DDNS module).

After /wan up, restart dsh web once so the trusted-host fence picks up the new domain.

Security

--trusted-host / the trusted-host fence is not authentication — it only defeats DNS-rebinding and cross-site requests. Exposing DSH to the internet exposes an agent that can run commands. Add real auth at the Lucky layer (password / Basic Auth / IP allowlist) before opening it publicly.

Troubleshooting

  • Lucky reports io timeout → run /wan doctor. Almost always one of: the Windows IPv6 changed, iphlpsvc is stopped, or the firewall rule is missing. Test from the Lucky host with curl -v --connect-timeout 5 "http://[<WindowsIPv6>]:3082" (do not use ping — Windows drops ICMPv6 echo by default).
  • 403 on the workspace → the domain isn't in the trusted-host fence yet. Confirm /wan up wrote it and restart dsh web.
  • socat won't start → install it, or relayPort is already in use.

License

MIT

相关插件

继续浏览 security-access 分类下经过校验的插件。

Doctor@linxin666/dsh-doctorDSH 配置档案的事务性救援模式,配备受监督的启动器、隔离的恢复容器、确定性修复、健康监控以及本地 Web 恢复控制台Pocketdsh-pocket把 DeepSeek Harness 装进你的口袋:一个包、一个设置页,手机扫码即同步访问电脑上的 DSH(局域网 + 公网,实时同屏)。DSCODE@toddzheng024/dscode-bundle完整的 DeepSeek 编码代理,支持持久化 shell、Ultra 协作和自动权限审查。Auto Reviewdsh-auto-review针对 DeepSeek Harness 审批请求的第二模型 AI 自动审查:只读审查子代理在审批应答链上决定允许或拒绝,并采用故障关闭回退机制和完整的会话日志审计。