我来帮您详细说明如何为“AI小龙虾OpenClaw”系统安装和配置防火墙,根据常见的服务器环境,我将提供两种主流防火墙的配置方案:

UFW防火墙(Ubuntu/Debian系统推荐)
安装和启用UFW
# 安装UFW sudo apt install ufw -y # 查看UFW状态 sudo ufw status verbose # 设置默认规则 sudo ufw default deny incoming # 默认拒绝所有入站 sudo ufw default allow outgoing # 默认允许所有出站 # 启用UFW sudo ufw enable
开放必要端口
# SSH端口(远程管理必须) sudo ufw allow 22/tcp # OpenClaw Web界面端口(假设使用80/443) sudo ufw allow 80/tcp sudo ufw allow 443/tcp # AI服务API端口(假设使用5000或8000) sudo ufw allow 5000/tcp sudo ufw allow 8000/tcp # 数据库端口(如果需要) sudo ufw allow 3306/tcp # MySQL sudo ufw allow 5432/tcp # PostgreSQL # 查看已添加的规则 sudo ufw status numbered
特定IP限制(可选)
# 只允许特定IP访问SSH sudo ufw allow from 192.168.1.100 to any port 22 # 允许特定IP段访问 sudo ufw allow from 192.168.1.0/24 to any port 5000
Firewalld防火墙(CentOS/RHEL/Fedora系统推荐)
安装和启动
# 安装firewalld sudo yum install firewalld -y # 启动并设置开机自启 sudo systemctl start firewalld sudo systemctl enable firewalld # 查看状态 sudo firewall-cmd --state
配置服务规则
# 添加服务(预定义) sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https # 添加自定义端口 sudo firewall-cmd --permanent --add-port=5000/tcp sudo firewall-cmd --permanent --add-port=8000/tcp # 设置默认区域(可选) sudo firewall-cmd --set-default-zone=public # 重新加载配置 sudo firewall-cmd --reload # 查看当前规则 sudo firewall-cmd --list-all
高级配置
# 添加富规则(Rich Rules) sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="5000" protocol="tcp" accept' # 创建自定义服务 sudo nano /etc/firewalld/services/openclaw.xml
<?xml version="1.0" encoding="utf-8"?> <service> <short>OpenClaw AI Service</short> <description>OpenClaw AI小龙虾服务平台</description> <port protocol="tcp" port="5000"/> <port protocol="tcp" port="8000"/> </service>
# 加载自定义服务 sudo firewall-cmd --permanent --add-service=openclaw sudo firewall-cmd --reload
Docker环境防火墙配置
如果OpenClaw使用Docker部署:
# Docker会自动管理iptables,但需要确保: # 1. 允许Docker网桥通信 sudo ufw allow in on docker0 # 或 sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0 # 2. 如果使用host网络模式,直接使用主机防火墙规则
安全加固建议
基础安全
# 1. 限制SSH尝试次数 sudo apt install fail2ban -y sudo systemctl enable fail2ban # 2. 配置Fail2ban(可选) sudo nano /etc/fail2ban/jail.local
网络优化
# 调整SYN洪水防护 sudo sysctl -w net.ipv4.tcp_syncookies=1 sudo sysctl -w net.ipv4.tcp_max_syn_backlog=2048 # 持久化设置 sudo nano /etc/sysctl.conf
定期检查
# 查看活动连接 sudo netstat -tunlp # 查看防火墙日志 sudo journalctl -u ufw -f # 或 sudo tail -f /var/log/firewalld
OpenClaw专用配置示例
假设OpenClaw使用以下端口:
- Web UI: 8080
- API服务: 5000
- 数据库: 3306 (仅内部访问)
- WebSocket: 8000
配置脚本:
#!/bin/bash
# openclaw-firewall-setup.sh
# UFW版本
if command -v ufw &> /dev/null; then
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 8080/tcp
sudo ufw allow 5000/tcp
sudo ufw allow 8000/tcp
sudo ufw allow 8000/udp # 如果需要UDP
sudo ufw --force enable
echo "UFW配置完成!"
fi
# Firewalld版本
if command -v firewall-cmd &> /dev/null; then
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-port=5000/tcp
sudo firewall-cmd --permanent --add-port=8000/tcp
sudo firewall-cmd --permanent --add-port=8000/udp
sudo firewall-cmd --reload
echo "Firewalld配置完成!"
fi
# 显示当前规则
echo "当前防火墙规则:"
sudo iptables -L -n -v 2>/dev/null || sudo firewall-cmd --list-all
故障排除
常见问题解决:
-
连接被拒绝
# 检查服务是否监听 sudo ss -tulpn | grep :端口号 # 临时关闭防火墙测试 sudo ufw disable # 或 sudo systemctl stop firewalld
-
规则未生效
# 重新加载规则 sudo ufw reload # 或 sudo firewall-cmd --reload
-
查看详细日志
# UFW日志 sudo grep UFW /var/log/syslog # Firewalld日志 sudo journalctl -u firewalld
重要提示:
- 操作前确保有备用连接方式(如控制台访问)
- 先添加SSH规则再启用防火墙,避免被锁在服务器外
- 生产环境建议使用更严格的白名单策略
- 定期审查和更新防火墙规则
您可以根据实际使用的系统和OpenClaw的具体端口需求调整上述配置,需要更具体的帮助吗?
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。