openclaw调用免费模型时默认监听11434端口,若未限制访问范围易被局域网攻击;应通过修改ollama_host为127.0.0.1:11434、配置防火墙白名单、闭合openclaw管理端口公网映射并验证监听地址来加固。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

OpenClaw调用免费模型(如Ollama托管的Qwen、Phi-3)时,默认会监听本地11434端口供HTTP请求接入,若未主动限制访问范围,该端口极易被局域网内其他设备探测并发送恶意指令——已有真实案例显示,攻击者通过扫描192.168.1.0/24网段,发现未加固的OpenClaw实例后,直接POST伪造的/system指令删除用户全部向量记忆库。
确认OpenClaw与模型服务的实际监听地址
第一步:打开终端,进入WSL2环境(Windows用户不可跳过此步,纯PowerShell或CMD下netstat无法准确识别Linux进程绑定行为)。
第二步:执行netstat -tuln | grep ':11434\|:18789\|:19890',观察输出中Listen字段是否为127.0.0.1:11434或::1:11434;若出现*:11434或0.0.0.0:11434,说明端口已暴露到所有网络接口,必须立即处理。
第三步:检查Ollama服务配置文件~/.ollama/config.json,确认"host"字段值为"127.0.0.1:11434"而非"0.0.0.0:11434"——很多一键安装包默认写错此项,导致模型层先于OpenClaw暴露。
强制绑定到回环地址(推荐方法一)
方法一:修改Ollama启动参数。停止当前服务:systemctl --user stop ollama,然后编辑~/.config/systemd/user/ollama.service,在[Service]段末尾添加一行:Environment="OLLAMA_HOST=127.0.0.1:11434"。
方法二:直接重写启动命令。执行systemctl --user edit ollama,输入以下内容:
[Service]
Environment=OLLAMA_HOST=127.0.0.1:11434
ExecStart=
ExecStart=/usr/bin/ollama serve
【关键】修改后必须执行systemctl --user daemon-reload && systemctl --user restart ollama,否则配置不生效。
方法三:Windows用户若未使用WSL2而强行用PowerShell启动Ollama,需在启动命令前加$env:OLLAMA_HOST="127.0.0.1:11434",再运行ollama serve——但此方式稳定性差,【强烈建议放弃】。
关闭OpenClaw管理端口的公网映射
打开OpenClaw配置文件config.yaml(通常位于~/.openclaw/或项目根目录),定位到server:区块。
将host:字段明确设为"127.0.0.1",而非留空或填"0.0.0.0";同时确认port:值为18789(默认)且未开启https:或tls:相关配置——免费模型调用场景下TLS非必需,反而增加配置错误风险。
若使用Docker部署OpenClaw,检查docker run命令中是否含-p 18789:18789,必须改为-p 127.0.0.1:18789:18789;若已运行容器,先docker stop再docker rm,重新以安全参数启动。
验证端口是否真正闭合
从同一台机器的PowerShell或CMD中执行:curl -v http://127.0.0.1:11434/api/tags,应返回模型列表JSON;若返回Connection refused,说明Ollama未启动或绑定失败。
从局域网另一台设备(如手机连同一Wi-Fi)执行:telnet 192.168.x.x 11434(替换x.x为你的电脑局域网IP),若连接超时或被拒绝,则防护生效;若成功建立TCP连接,说明仍有暴露风险,需回溯前几步排查。
最后执行lsof -i :11434 2>/dev/null | grep LISTEN(macOS/Linux)或netstat -ano | findstr :11434(Windows WSL2内),确认仅127.0.0.1出现在Local Address列。










