# 防火墙配置说明 ## 问题确认 ✅ **已确认是防火墙问题**: - 本地访问 `localhost:8037` ✅ 正常 - 公网访问 `101.43.95.130:8037` ❌ 连接被拒绝 ## 解决方案 ### 方法1:使用脚本自动配置(推荐) ```bash # 运行开放端口脚本 sudo bash /home/renjianbo/aiagent/开放端口脚本.sh ``` ### 方法2:手动配置 #### 如果使用 firewalld (CentOS/RHEL 7+) ```bash # 开放端口 sudo firewall-cmd --permanent --add-port=8037/tcp sudo firewall-cmd --permanent --add-port=8038/tcp # 重新加载配置 sudo firewall-cmd --reload # 验证 sudo firewall-cmd --list-ports ``` #### 如果使用 ufw (Ubuntu/Debian) ```bash # 开放端口 sudo ufw allow 8037/tcp sudo ufw allow 8038/tcp # 验证 sudo ufw status ``` #### 如果使用 iptables ```bash # 开放端口 sudo iptables -I INPUT -p tcp --dport 8037 -j ACCEPT sudo iptables -I INPUT -p tcp --dport 8038 -j ACCEPT # 保存规则(根据系统不同) # CentOS/RHEL: sudo service iptables save # Debian/Ubuntu: sudo iptables-save | sudo tee /etc/iptables/rules.v4 ``` ### 方法3:云服务器安全组配置(重要!) 如果使用云服务器(腾讯云、阿里云、AWS等),**必须在云控制台配置安全组规则**: #### 腾讯云 1. 登录腾讯云控制台 2. 进入「云服务器」->「安全组」 3. 找到对应的安全组,点击「修改规则」 4. 添加入站规则: - 类型:自定义 - 协议端口:TCP:8037 - 来源:0.0.0.0/0(或指定IP) - 策略:允许 5. 同样添加 8038 端口 #### 阿里云 1. 登录阿里云控制台 2. 进入「ECS」->「网络与安全」->「安全组」 3. 配置规则 -> 入方向 -> 添加安全组规则 4. 端口范围:8037/8037,授权对象:0.0.0.0/0 ## 验证 配置完成后,测试: ```bash # 从服务器本地测试 curl http://localhost:8037/health # 从公网测试(需要从其他机器或使用在线工具) curl http://101.43.95.130:8037/health ``` 应该返回:`{"status":"healthy"}` ## 检查当前端口监听状态 ```bash # 检查端口是否监听 netstat -tlnp | grep 8037 # 或 ss -tlnp | grep 8037 # 应该看到: # tcp 0 0 0.0.0.0:8037 ... LISTEN ``` ## 常见问题 ### Q: 配置了防火墙,但还是无法访问? A: 检查以下几点: 1. **云服务器安全组**:必须同时配置云控制台的安全组 2. **端口映射**:确认 Docker 端口映射正确(`8037:8000`) 3. **服务状态**:确认后端服务正在运行 4. **IP地址**:确认公网IP地址正确 ### Q: 如何确认是防火墙问题? A: 从服务器本地测试: ```bash # 本地访问正常 curl http://localhost:8037/health # 公网访问被拒绝 curl http://101.43.95.130:8037/health # 返回: Connection refused ``` --- **状态**: ⚠️ 需要配置防火墙 **下一步**: 运行开放端口脚本或手动配置防火墙规则