TraceStudio-dev/docs/studio1.3/LAN_ACCESS.md

200 lines
4.3 KiB
Markdown
Raw Normal View History

# TraceStudio 局域网访问配置指南
## 🌐 配置局域网访问
### 1. 启动后端服务器(监听所有接口)
```bash
cd server
conda activate tracestudio
python -m uvicorn server.main:app --reload --host 0.0.0.0 --port 8000
```
**注意**`--host 0.0.0.0` 表示监听所有网络接口,支持局域网访问。
### 2. 配置前端API地址
创建 `web/.env.local` 文件设置你的本机IP
```bash
cd web
echo "VITE_API_BASE_URL=http://10.18.8.106:8000" > .env.local
```
**获取本机IP**
```bash
# Windows
ipconfig
# Linux/Mac
ifconfig
# 或
ip addr show
```
### 3. 启动前端服务器(监听所有接口)
```bash
cd web
npm run dev
```
Vite 配置已默认监听 `0.0.0.0:5173`
### 4. 访问地址
从局域网内其他设备访问:
- **前端**: http://10.18.8.106:5173
- **后端API**: http://10.18.8.106:8000
- **API文档**: http://10.18.8.106:8000/docs
## 🔥 Windows 防火墙配置
如果无法访问,需要开放端口:
### 方法一PowerShell 命令(管理员权限)
```powershell
# 开放前端端口 5173
New-NetFirewallRule -DisplayName "TraceStudio Frontend" -Direction Inbound -Protocol TCP -LocalPort 5173 -Action Allow
# 开放后端端口 8000
New-NetFirewallRule -DisplayName "TraceStudio Backend" -Direction Inbound -Protocol TCP -LocalPort 8000 -Action Allow
```
### 方法二:图形界面
1. 打开 **Windows Defender 防火墙**
2. 点击 **高级设置**
3. 选择 **入站规则****新建规则**
4. 选择 **端口** → 下一步
5. 选择 **TCP**,输入端口 `5173``8000`
6. 选择 **允许连接**
7. 全选配置文件(域、专用、公用)
8. 输入规则名称,完成
## 📱 移动设备访问
确保移动设备与电脑在同一局域网,然后访问:
```
http://10.18.8.106:5173
```
## 🚀 快速启动脚本
### Windows (start-lan.bat)
```batch
@echo off
echo Starting TraceStudio for LAN access...
REM 获取本机IP
for /f "tokens=2 delims=:" %%a in ('ipconfig ^| findstr /C:"IPv4"') do set IP=%%a
set IP=%IP: =%
echo Your IP: %IP%
REM 启动后端
start "Backend" cmd /k "cd server && conda activate tracestudio && python -m uvicorn server.main:app --reload --host 0.0.0.0 --port 8000"
REM 等待3秒
timeout /t 3
REM 启动前端
start "Frontend" cmd /k "cd web && npm run dev"
echo.
echo ========================================
echo TraceStudio is starting...
echo Frontend: http://%IP%:5173
echo Backend: http://%IP%:8000
echo API Docs: http://%IP%:8000/docs
echo ========================================
```
### Linux/Mac (start-lan.sh)
```bash
#!/bin/bash
echo "Starting TraceStudio for LAN access..."
# 获取本机IP
IP=$(hostname -I | awk '{print $1}')
echo "Your IP: $IP"
# 启动后端
cd server
conda activate tracestudio
python -m uvicorn server.main:app --reload --host 0.0.0.0 --port 8000 &
# 等待3秒
sleep 3
# 启动前端
cd ../web
npm run dev &
echo ""
echo "========================================"
echo "TraceStudio is starting..."
echo "Frontend: http://$IP:5173"
echo "Backend: http://$IP:8000"
echo "API Docs: http://$IP:8000/docs"
echo "========================================"
```
## 🔒 安全建议
1. **仅在可信局域网使用**
2. **不要暴露到公网**
3. **生产环境建议使用反向代理Nginx**
4. **添加身份认证机制**
## 🐛 常见问题
### 问题1防火墙阻止连接
**解决方案**:按照上述步骤开放端口 5173 和 8000
### 问题2浏览器显示 ERR_CONNECTION_REFUSED
**检查清单**
- [ ] 后端是否使用 `--host 0.0.0.0` 启动
- [ ] 前端 vite.config.ts 是否配置了 `host: '0.0.0.0'`
- [ ] 防火墙是否开放端口
- [ ] IP地址是否正确
### 问题3前端可以访问但API请求失败
**解决方案**
1. 检查 `.env.local` 中的 `VITE_API_BASE_URL` 是否设置为本机IP
2. 确保后端监听 `0.0.0.0:8000`
3. 测试后端是否可访问:
```bash
curl http://10.18.8.106:8000/
```
### 问题4其他设备无法访问
**检查清单**
- [ ] 设备是否在同一局域网
- [ ] 本机IP是否正确
- [ ] 公司网络是否有访问限制
- [ ] 尝试关闭所有防火墙进行测试
## 📞 验证访问
从另一台设备测试:
```bash
# 测试后端
curl http://10.18.8.106:8000/
# 测试API
curl http://10.18.8.106:8000/api/users/list
```
预期返回JSON数据表示成功