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