[Feature]: 关于远程服务器的网页服务映射
- 主要言語
- Rust
- スター
- 2.2k
- フォーク
- 229
- 平均マージ
- 2時間 46分
- マージ済み PR(30日)
- 577
説明
### Problem / opportunity
如图,在远程服务器的shell 启动了一个网页服务端,点击之后在本地浏览器打开了一个本地对应链接的网址,而没有进行端口的映射。vscode 有类似的端口映射功能。
---
**标题**:`dsh web` 在远程服务器上启动后,本地浏览器无法直接访问,需额外端口映射
**类型**:文档 / 体验改进(Feature request)
### 问题描述
在远程服务器(无本地图形界面,通过 SSH / VSCode Remote-SSH / JetBrains Gateway 连接)上运行 `dsh web`:
1. 终端启动 Web UI,输出 `dsh web: http://127.0.0.1:`;
2. `--host 0.0.0.0` 被官方**有意禁止**(`error: --host 0.0.0.0 is intentionally not supported yet for safety: it would expose remote code execution to the network`),服务只能绑定回环地址;
3. 因此终端里显示的 URL 只在服务器本地有效,用户从**本地浏览器**访问必然失败;
4. 必须额外手动配置端口映射才能访问:`ssh -L :127.0.0.1: `,或 IDE 的端口转发面板。
### 实际现象(截图)
> 在远程 shell 启动网页服务端后,点击终端中的链接,本地浏览器打开的是**本地对应的链接地址**,而无需手动做端口映射——这是 IDE(如 VSCode Remote-SSH)的自动端口转发能力。
### 期望行为
1. **补充远程使用文档**:在 README / Web UI 指南中增加"Remote usage"章节,说明 SSH 隧道与 IDE 端口转发两种访问方式;
2. **终端提示**:`dsh web` 启动时若检测到远程/无桌面环境,直接输出一行访问提示,例如:
```
Web UI: http://127.0.0.1:3080 (server-local)
Remote access: run `ssh -L 3080:127.0.0.1:3080 ` on your local machine, then open the URL above.
```
3. **(可选)受控远程绑定**:考虑提供带访问令牌的安全远程绑定方式,作为 `0.0.0.0` 禁止的替代,方便远程容器/开发机直接访问。
### 环境信息
- `dsh` 版本:`0.1.0-rc.6`(`@deepseek-ai/dsh`,全局 npm 安装)
- 服务器:openEuler 24.03 (LTS-SP2),aarch64,容器内运行(PID 1 为 bash 脚本,无 systemd)
- Node.js:v24.19.0
- 连接方式:SSH(VSCode Remote-SSH 或原生 ssh)
- 服务:`dsh web --port 8080`,绑定 `127.0.0.1`
---
需要我按目标仓库调整格式(比如纯英文、精简版)吗?另外如果图片内容和我推断的截图场景不同,把图里的文字告诉我,我来修正细节。
### Proposed behavior
希望可以默认对于这种web ui的服务启动,启动一个临时的端口映射,类似于vscode 里面启动opencode 或者deepseek harness。
### Product surface
Desktop app
### Details, examples, or constraints
_No response_
コントリビューションガイド
評価
この issue はまだ評価されていません。