接到个任务,要做一个如何安全使用OpenClaw的分享,所以计划从今天开始,用大概一周的时间,边学边写一个OpenClaw安全加固系列的文章。OpenClaw之前最大的问题就是公网直接暴露且没有鉴权,SecurityScorecard统计数据显示,截至2026年3月11日,公网上可被探测到的OpenClaw暴露实例累计超46.9万个(活跃数量20.3万个)。其中,通过版本匹配检测发现,27.2%的实例存在高危漏洞,面临被利用攻击风险脚本就是安装Linux编译工具、Node.js,然后npm安装OpenClaw。配置过程略,只配置了大模型和飞书。安装完成之后我们看下OpenClaw监听了哪些端口、有哪些网络连接。- 18789端口是Gateway的端口,旧版本默认是监听全部网卡的,新版本已经监听在本地回环地址了。
- 18791和18792端口分别是浏览器控制端口和中继端口,这块一直都只监听在127.0.0.1的
- 到34.120.84.45:443的是与飞书的长连接
- 最后两行,问题来了,udp 5353端口监听全部网卡了。这个端口是mdns端口,用于在局域网让其它设备发现自己。但暴露在公网就等于告诉别人我这有OpenClaw。
我的云主机是公网地址直接配在主机上的,这样就直接对公网暴露了udp 5353端口。通过dig命令进行测试,可以看到主机应答信息暴露了自己是openclaw,gateway端口是18789。如果你的Gateway监听在0.0.0.0,赶紧通过openclaw config命令修改。除非在家里,否则都应该把mdns禁用掉,否则很容易被盯上。直接编辑OpenClaw配置文件,# vim ~/.openclaw/openclaw.json"discovery": {"mdns": { "mode": "off" } }
修改完OpenClaw会自动重启,重启之后应该就没有之前udp 5353端口信息了。