OpenClaw防火墙设置核心原则
- 最小权限原则:只开放绝对必要的端口,禁止所有其他入站连接。
- 分层防御:结合系统防火墙(如
firewalld/ufw/iptables)和云服务商的安全组/网络ACL。 - 仅允许可信来源:对管理端口,尽可能限制仅允许特定IP(如你的办公网络或跳板机)访问。
确定OpenClaw所需开放端口
你需要明确OpenClaw各个组件的监听端口,通常可能包括:

- Web前端:
80(HTTP),443(HTTPS) - API后端:
8000,8080,5000(或其他自定义端口) - 数据库:
3306(MySQL/MariaDB),5432(PostgreSQL),6379(Redis) - 强烈不建议对公网开放 - 监控/管理:
3000(Grafana),9090(Prometheus),22(SSH) - AI模型服务:
8501(TensorFlow Serving),8001(TorchServe) 等
建议:查阅OpenClaw的官方安装文档或配置文件,确认其确切端口。
配置系统防火墙(以Ubuntu/Debian的ufw和CentOS/RHEL的firewalld为例)
方案A:使用 ufw (适用于 Ubuntu/Debian)
-
启用ufw并设置默认策略(拒绝所有入站,允许所有出站)
sudo ufw default deny incoming sudo ufw default allow outgoing
-
允许SSH连接(防止锁死服务器)
# 允许所有来源SSH(不安全,仅测试用) sudo ufw allow 22/tcp # **生产环境强烈建议**:仅允许特定IP sudo ufw allow from <你的IP地址> to any port 22
-
允许OpenClaw核心服务端口
# 示例:假设OpenClaw Web运行在80和443, API运行在8080 sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw allow 8080/tcp
-
启用防火墙
sudo ufw enable # 查看状态 sudo ufw status numbered
方案B:使用 firewalld (适用于 CentOS/RHEL/Rocky/AlmaLinux)
-
启动并设置默认区域
sudo systemctl start firewalld sudo systemctl enable firewalld sudo firewall-cmd --set-default-zone=public
-
允许SSH连接
sudo firewall-cmd --permanent --add-service=ssh # 或指定端口: sudo firewall-cmd --permanent --add-port=22/tcp
-
允许OpenClaw核心服务端口
# 添加HTTP/HTTPS服务(如果使用标准端口) sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https # 添加自定义API端口 sudo firewall-cmd --permanent --add-port=8080/tcp
-
重载配置并生效
sudo firewall-cmd --reload # 查看当前开放端口 sudo firewall-cmd --list-all
配置云服务器安全组(如果适用)
如果你在阿里云、腾讯云、AWS、Azure等云平台上运行OpenClaw,必须同时配置云服务商的安全组,这是云环境的第一道防线,优先级通常高于系统防火墙。
安全组配置示例规则:
| 规则方向 | 优先级 | 协议端口 | 源地址/目标地址 | 说明 |
|---|---|---|---|---|
| 入方向 | 高 | TCP: 22 | 你的公网IP/32 |
SSH管理,仅限个人IP |
| 入方向 | 中 | TCP: 80 | 0.0.0/0 |
HTTP服务,面向所有用户 |
| 入方向 | 中 | TCP: 443 | 0.0.0/0 |
HTTPS服务,面向所有用户 |
| 入方向 | 中 | TCP: 8080 | 0.0.0/0 |
API服务(或可限制为前端服务器IP) |
| 入方向 | 最低 | 全部 |
0.0.0/0 |
拒绝所有其他入站流量 |
高级安全建议
-
使用反向代理:
- 使用 Nginx 或 Apache 作为反向代理,只对外暴露
80/443端口。 - 将所有后端服务(如
8080,8501等)绑定到localhost(127.0.0.1),仅允许Nginx本地访问。 - 在Nginx中配置负载均衡、SSL终止、限流和WAF规则,提升安全性。
- 使用 Nginx 或 Apache 作为反向代理,只对外暴露
-
VPN/堡垒机访问管理端口:
- 绝对不要将数据库、监控面板等管理端口直接暴露到公网。
- 通过 VPN、SSH隧道 或 堡垒机 来访问这些服务。
-
定期审计规则:
# ufw sudo ufw status verbose # firewalld sudo firewall-cmd --list-all # iptables原生查看 sudo iptables -L -n -v
定期清理不再使用的规则。
-
启用并监控防火墙日志:
- 在
ufw中,日志通常位于/var/log/ufw.log。 - 在
firewalld中,可以通过journalctl查看相关日志。 - 配置日志监控,及时发现异常扫描和攻击尝试。
- 在
测试与验证
- 从外部测试可用性:
- 使用浏览器访问
http(s)://你的服务器IP。 - 使用
curl或Postman测试API端口curl http://你的服务器IP:8080/api/health。
- 使用浏览器访问
- 测试禁止的端口:
- 尝试连接一个未开放的端口(如
telnet 你的服务器IP 3306),应显示连接失败或超时。
- 尝试连接一个未开放的端口(如
- 使用端口扫描工具(谨慎使用):
- 可以从另一台外部机器使用
nmap进行快速扫描,确认只有预设端口开放。nmap -sT -p- --open 你的服务器IP
- 可以从另一台外部机器使用
故障排除
- 服务无法访问:
- 检查防火墙规则是否正确添加并已生效。
- 检查OpenClaw服务本身是否正在运行并监听正确地址(
netstat -tunlp | grep <端口号>)。 - 检查云安全组规则。
- 自己也被阻断:
- 检查SSH规则是否配置正确,确保在启用防火墙前已添加。
- 通过云控制台的VNC连接登录服务器,暂时禁用防火墙进行修复。
这份指南提供了一个通用且安全的框架,请务必根据 “AI小龙虾OpenClaw” 项目的具体架构和端口要求进行调整。在应用到生产环境前,请在测试环境中充分验证。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。