openclaw端口冲突会导致服务启动失败或无法响应,需先用lsof或ss检查端口占用,再修改config.yaml中port或bind值为10000–65535间未占高位端口,最后开放防火墙及selinux规则并重启服务。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

OpenClaw端口冲突会导致服务启动失败或无法响应外部请求,常见于与系统已有服务(如SSH、Gitea、Web服务器)共用22、80、443、3000等默认端口时。
确认当前端口占用情况
在终端中执行:sudo lsof -i :端口号 或 ss -tuln | grep :端口号,将“端口号”替换为你怀疑被占的数字(例如22、3000、8080),查看是否有其他进程正在监听该端口。若返回结果为空,说明该端口空闲;若有进程名(如sshd、nginx、node),则需避开该进程所用端口。
这一步必须做,跳过会导致修改后服务仍无法启动,且错误日志里只显示“Address already in use”,不指明是谁占的。
定位并编辑OpenClaw配置文件
OpenClaw通常使用 YAML 格式的主配置文件,常见路径为 /etc/openclaw/config.yaml 或 ~/openclaw/config.yaml。先确认实际路径:find / -name "config.yaml" -path "*/openclaw*" 2>/dev/null。
用 sudo 权限打开该文件:sudo nano /etc/openclaw/config.yaml(若用 vim,命令为 sudo vim /etc/openclaw/config.yaml)。
【务必先备份原文件】:执行 sudo cp /etc/openclaw/config.yaml /etc/openclaw/config.yaml.bak,防止改错后无法回退。
修改监听端口参数
在配置文件中查找类似以下字段:
server: → host: "0.0.0.0" → port: 8080
或
http: → bind: "0.0.0.0:8080"
将 port 值或 bind 中的数字(如 8080)改为一个未被占用的端口,推荐选择 10000–65535 范围内的高位端口,例如 12345、31234、50001。
注意:不要使用 1–1023 的特权端口(除非以 root 运行且明确需要),否则启动时会报 permission denied;也不要用 22、80、443、3000、3001、8080 等高频冲突端口。
检查并开放防火墙规则
方法一(firewalld):
执行 sudo firewall-cmd --permanent --add-port=新端口号/tcp,再运行 sudo firewall-cmd --reload。
方法二(ufw):
执行 sudo ufw allow 新端口号。
方法三(iptables):
执行 sudo iptables -I INPUT -p tcp --dport 新端口号 -j ACCEPT,并保存规则(如 sudo iptables-save > /etc/iptables/rules.v4,路径依发行版而定)。
若系统启用 SELinux(如银河麒麟、CentOS),还需运行:sudo semanage port -a -t ssh_port_t -p tcp 新端口号(注意:此处类型名需匹配实际服务,OpenClaw无专用SELinux类型时,可临时用 http_port_t 或 unreserved_port_t;不确定时优先查 semanage port -l | grep http 获取可用类型)。
重启OpenClaw服务
第一步:保存配置文件退出编辑器。
第二步:执行 sudo systemctl restart openclaw(若服务名为 openclaw-server,则用对应名称)。
第三步:验证是否生效:sudo ss -tuln | grep :新端口号,看到 LISTEN 状态即表示成功监听。










