# 跨机器访问说明

## 1) 服务监听

已默认监听 `0.0.0.0:8080`，同网段机器可访问：

- `http://<你的机器IP>:8080/`

推荐用服务脚本管理（避免旧进程占端口）：

```bash
bash /home/xsl/product/scripts/service.sh start
bash /home/xsl/product/scripts/service.sh status
bash /home/xsl/product/scripts/service.sh logs
bash /home/xsl/product/scripts/service.sh restart
bash /home/xsl/product/scripts/service.sh stop
```

查询本机 IP:

```bash
ip addr
```

## 2) 浏览器麦克风权限（关键）

跨机器访问时，浏览器通常要求 **HTTPS** 才允许 `getUserMedia`。

### 方案 A（推荐）：启用 HTTPS

```bash
bash /home/xsl/product/scripts/gen-self-signed-cert.sh
```

然后编辑 `.env`:

```env
SSL_CERTFILE=/home/xsl/product/certs/dev-cert.pem
SSL_KEYFILE=/home/xsl/product/certs/dev-key.pem
```

启动：

```bash
bash /home/xsl/product/scripts/service.sh restart
```

访问：

- `https://<你的机器IP>:8080/`

首次需要在浏览器信任自签证书。

### 方案 B：HTTP 测试

如果仅做 UI 验证，可先用 HTTP；但麦克风可能被浏览器拒绝。

## 3) WSL2 网络注意事项

如果服务跑在 WSL2，其他机器无法直接访问时，需要在 Windows 做端口转发与防火墙放行。

最简单做法：在 Windows 上运行同样服务，或配置端口代理到 WSL IP。

## 4) WebRTC 联通

系统已配置 STUN（`.env` 里的 `STUN_URL`），用于获取可达候选地址：

```env
STUN_URL=stun:stun.l.google.com:19302
```

若跨公网且 NAT 复杂，需增加 TURN（后续可加）。
