Commit a06fca68 by 晏艳红

添加网络访问配置支持

- 创建网络访问配置指南,解决局域网访问问题
- 添加网络配置.bat自动化配置工具
- 更新文档说明局域网访问方法
- 包含防火墙配置和故障排除指南
- 支持其他设备通过IP地址访问系统
parent cc9e3f6b
......@@ -87,8 +87,16 @@ docker compose -f docker-compose.prod.yml down
## 🌐 访问地址
### 本机访问
启动成功后访问:http://localhost:4001
### 局域网访问(其他设备)
1. 获取本机IP地址:`ipconfig | findstr "IPv4"`
2. 其他设备访问:`http://您的IP:4001`
3. 配置网络访问:运行 `网络配置.bat`
**注意**:如果其他设备无法访问,请运行网络配置工具解决防火墙问题。
## 📞 故障排除
### 网络连接问题(最常见)
......
......@@ -67,6 +67,7 @@ echo.
echo 📊 查看服务状态: docker compose ps
echo 📋 查看日志: docker compose logs -f
echo 🛑 停止服务: docker compose down
echo 🌐 配置网络访问: 网络配置.bat
echo.
:: 等待服务完全启动
......
# 绩效计分系统 - 网络访问配置指南
# 绩效计分系统 - 网络访问配置指南
## 🌐 问题描述
当其他人尝试访问 `http://localhost:4001` 时出现 "ERR_CONNECTION_REFUSED" 错误,这是因为 localhost 只能在本机访问。
## 🔧 解决方案
### 方案1:使用本机IP地址(推荐)
#### 1. 查找本机IP地址
**Windows方法:**
```cmd
# 方法1:使用ipconfig
ipconfig | findstr "IPv4"
# 方法2:使用PowerShell
Get-NetIPAddress -AddressFamily IPv4 | Where-Object {$_.IPAddress -like "192.168.*" -or $_.IPAddress -like "10.*" -or $_.IPAddress -like "172.*"}
```
**常见IP地址格式:**
- `192.168.1.xxx` (家庭网络)
- `192.168.0.xxx` (家庭网络)
- `10.x.x.x` (企业网络)
- `172.16.x.x` - `172.31.x.x` (企业网络)
#### 2. 使用IP地址访问
假设您的IP是 `192.168.1.100`,其他人应该访问:
```
http://192.168.1.100:4001
```
### 方案2:配置Windows防火墙
#### 1. 允许端口4001通过防火墙
**图形界面方法:**
1. 打开"Windows Defender 防火墙"
2. 点击"高级设置"
3. 选择"入站规则" → "新建规则"
4. 选择"端口" → "下一步"
5. 选择"TCP",输入端口"4001"
6. 选择"允许连接"
7. 应用到所有配置文件
8. 命名规则为"绩效计分系统-4001"
**命令行方法:**
```cmd
# 以管理员身份运行
netsh advfirewall firewall add rule name="绩效计分系统-4001" dir=in action=allow protocol=TCP localport=4001
```
#### 2. 验证防火墙规则
```cmd
# 查看防火墙规则
netsh advfirewall firewall show rule name="绩效计分系统-4001"
```
### 方案3:修改Docker配置(如果需要)
如果仍有问题,可以明确绑定到所有网络接口:
```yaml
# 在 docker-compose.yml 中修改端口映射
ports:
- "0.0.0.0:4001:80"
```
### 方案4:使用内网穿透(远程访问)
如果需要外网访问,可以使用:
#### 1. ngrok(简单快速)
```bash
# 安装ngrok后运行
ngrok http 4001
```
#### 2. frp(自建服务器)
配置frp客户端连接到公网服务器
## 🔍 网络诊断工具
### 检查端口监听状态
```cmd
# 检查端口是否被监听
netstat -an | findstr :4001
# 应该看到类似输出:
# TCP 0.0.0.0:4001 0.0.0.0:0 LISTENING
```
### 测试本机访问
```cmd
# 测试本机访问
curl http://localhost:4001/health
# 或使用PowerShell
Invoke-WebRequest -Uri http://localhost:4001/health
```
### 测试IP访问
```cmd
# 替换为您的实际IP
curl http://192.168.1.100:4001/health
```
## 📋 完整配置步骤
### 步骤1:获取本机IP
```cmd
ipconfig | findstr "IPv4"
```
### 步骤2:配置防火墙
```cmd
# 以管理员身份运行
netsh advfirewall firewall add rule name="绩效计分系统-4001" dir=in action=allow protocol=TCP localport=4001
```
### 步骤3:验证服务
```cmd
# 检查Docker服务状态
docker compose ps
# 检查端口监听
netstat -an | findstr :4001
```
### 步骤4:测试访问
```
# 本机测试
http://localhost:4001
# 其他设备测试(替换为实际IP)
http://192.168.1.100:4001
```
## 🚨 常见问题
### 问题1:仍然无法访问
- 检查是否在同一网络(WiFi/有线)
- 确认IP地址正确
- 重启Docker服务:`docker compose restart`
### 问题2:企业网络限制
- 联系网络管理员
- 可能需要申请端口开放
- 考虑使用标准端口(80、8080)
### 问题3:路由器设置
- 某些路由器可能阻止设备间通信
- 检查路由器的"AP隔离"设置
- 确保设备在同一VLAN
## 💡 最佳实践
1. **生产环境**:使用反向代理(nginx)配置域名
2. **开发环境**:使用IP地址访问
3. **安全考虑**:只在可信网络中开放端口
4. **监控**:定期检查访问日志
## 📞 技术支持
如果按照以上步骤仍无法解决,请提供:
1. 本机IP地址
2. 防火墙配置截图
3. `docker compose ps` 输出
4. `netstat -an | findstr :4001` 输出
@echo off
@echo off
chcp 65001 >nul
echo ========================================
echo 绩效计分系统 - 网络访问配置工具
echo ========================================
echo.
:: 检查管理员权限
net session >nul 2>&1
if %errorlevel% neq 0 (
echo ⚠️ 需要管理员权限来配置防火墙
echo 请右键点击此脚本,选择"以管理员身份运行"
pause
exit /b 1
)
echo ✅ 管理员权限确认
echo.
echo 🔍 正在检查网络配置...
echo.
:: 获取本机IP地址
echo 📍 本机IP地址信息:
for /f "tokens=2 delims=:" %%i in ('ipconfig ^| findstr "IPv4"') do (
set ip=%%i
set ip=!ip: =!
echo !ip!
)
echo.
:: 检查Docker服务状态
echo 🐳 Docker服务状态:
docker compose ps 2>nul
if %errorlevel% neq 0 (
echo ❌ Docker服务未运行,请先启动Docker
echo 运行命令: docker compose up -d
pause
exit /b 1
)
echo.
:: 检查端口监听状态
echo 🔌 端口监听状态:
netstat -an | findstr :4001
if %errorlevel% neq 0 (
echo ❌ 端口4001未监听,请检查Docker服务
) else (
echo ✅ 端口4001正在监听
)
echo.
:: 配置防火墙规则
echo 🛡️ 配置防火墙规则...
netsh advfirewall firewall show rule name="绩效计分系统-4001" >nul 2>&1
if %errorlevel% neq 0 (
echo 正在添加防火墙规则...
netsh advfirewall firewall add rule name="绩效计分系统-4001" dir=in action=allow protocol=TCP localport=4001
if %errorlevel% equ 0 (
echo ✅ 防火墙规则添加成功
) else (
echo ❌ 防火墙规则添加失败
)
) else (
echo ✅ 防火墙规则已存在
)
echo.
:: 测试本机访问
echo 🧪 测试本机访问...
curl -s -o nul -w "HTTP状态码: %%{http_code}\n" http://localhost:4001/health 2>nul
if %errorlevel% equ 0 (
echo ✅ 本机访问正常
) else (
echo ❌ 本机访问失败,请检查Docker服务
)
echo.
:: 显示访问信息
echo 🌐 网络访问信息:
echo ========================================
echo.
echo 📱 本机访问地址:
echo http://localhost:4001
echo.
echo 🌍 局域网访问地址:
for /f "tokens=2 delims=:" %%i in ('ipconfig ^| findstr "IPv4"') do (
set ip=%%i
set ip=!ip: =!
if not "!ip!"=="127.0.0.1" (
echo http://!ip!:4001
)
)
echo.
echo 🔐 默认登录账号:
echo 管理员: admin / admin123
echo 陈锐屏: 13800138001 / 123456
echo 张田田: 13800138002 / 123456
echo 余芳飞: 13800138003 / 123456
echo.
echo ========================================
echo.
echo 📋 使用说明:
echo 1. 确保所有设备连接到同一WiFi网络
echo 2. 其他设备使用上面显示的局域网地址访问
echo 3. 如果仍无法访问,请检查路由器设置
echo.
echo 🔧 故障排除:
echo 1. 重启Docker: docker compose restart
echo 2. 检查防火墙: 控制面板 → Windows Defender防火墙
echo 3. 检查路由器AP隔离设置
echo.
set /p choice=是否要打开浏览器测试访问? (y/N):
if /i "%choice%"=="y" (
echo 正在打开浏览器...
start http://localhost:4001
)
echo.
echo 配置完成!其他设备现在应该可以通过局域网地址访问系统了。
pause
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment