如何修改openclaw将Gateway配置为只监听127.0.0.1,永不暴露到公网
OpenClash 是一个在 OpenWrt 路由器上运行的 Clash 客户端。要修改配置使 Gateway(API/控制面板)只监听 127.0.0.1,需要修改 Clash 的配置文件。
方法一:修改 OpenClash 配置
在 OpenClash 的 "插件设置" → "开发者选项" 或 "自定义配置" 中,找到 "Controller 配置" 部分:
关键配置项
yaml
Copy
# 在 OpenClash 的自定义配置中加入或修改:
external-controller: 127.0.0.1:9090 # 只监听本地
secret: "your-password" # 设置访问密码方法二:直接修改 Clash 核心配置
如果 OpenClash 允许编辑原始配置文件,找到
config.yaml 或混入配置:yaml
Copy
# 确保 external-controller 绑定到 127.0.0.1
external-controller: 127.0.0.1:9090
# 可选:禁用外部控制(完全关闭 API)
# 注释掉或删除 external-controller 行方法三:OpenClash 界面设置路径
根据 OpenClash 版本不同,尝试以下路径:
- OpenClash 主界面 → "全局设置" → "控制器设置"
- 找到 "绑定地址" 或 "监听地址"
- 设置为
127.0.0.1
- "插件设置" → "DNS 设置" / "外部控制设置"
- 修改 External Controller 地址
- 使用 "配置文件管理" → "配置文件编辑"
- 在 YAML 中直接添加:yamlCopy
external-controller: 127.0.0.1:9090
方法四:防火墙层面加固(双重保险)
即使配置失误,也可以通过 OpenWrt 防火墙阻止外部访问:
bash
Copy
# SSH 登录路由器后执行
# 拒绝外部访问 9090 端口
iptables -I INPUT -p tcp --dport 9090 ! -s 127.0.0.1 -j DROP
# 或写入 /etc/config/firewall 永久生效验证方法
修改后验证监听地址:
bash
Copy
# SSH 登录路由器
netstat -tlnp | grep 9090
# 或
ss -tlnp | grep 9090
# 应该显示 127.0.0.1:9090,而不是 0.0.0.0:9090注意事项
Table
| 项目 | 说明 |
|---|---|
| 端口 | 默认 9090,可在 OpenClash 设置中修改 |
| yacd 面板 | 如果通过反向代理访问,确保代理服务器也在本地 |
| 配置覆盖 | OpenClash 更新可能覆盖配置,建议写入"自定义规则"或"混入配置" |
如果 OpenClash 版本较新,界面可能有变化,建议查看当前版本的 "全局设置" → "控制器设置" 或 "外部控制" 相关选项。
你在瞎逼逼,我问的是openclaw,小龙虾
非常抱歉!我误解了您的问题。您说的是 OpenClaw(小龙虾),这是一款开源的抓娃娃机/礼品机控制软件,而不是 OpenClash。
让我搜索一下 OpenClaw 的具体配置方法:
Search
OpenClaw Gateway 配置 127.0.0.1 OpenClaw 小龙虾 网关 监听地址 配置 OpenClaw config Gateway bind address localhost 50 results
抱歉刚才的误解!根据搜索结果,这是 OpenClaw(小龙虾) 的 Gateway 配置方法,确保只监听 127.0.0.1,永不暴露到公网:
核心配置方法
方法一:使用 CLI 命令设置(推荐)
bash
Copy
# 将 gateway 绑定模式设置为 loopback(仅本地)
openclaw config set gateway.bind "loopback"
# 重启网关生效
openclaw gateway restart方法二:直接修改配置文件
编辑
~/.openclaw/openclaw.json:JSON
Copy
{
"gateway": {
"bind": "loopback",
"port": 18789,
"auth": {
"token": "your-strong-secret-token"
}
}
}Table
| 参数 | 值 | 说明 |
|---|---|---|
bind | "loopback" | 仅本地回环,最安全 |
bind | "lan" | 监听 0.0.0.0,允许公网访问(危险) |
bind | "tailnet" | 通过 Tailscale 网络访问 |
auth.token | 强密码 | 即使绑定错误,也有最后一道防线 |
方法三:Docker 环境配置
在
docker-compose.yml 中设置环境变量:yaml
Copy
services:
openclaw-gateway:
environment:
- OPENCLAW_GATEWAY_BIND=loopback
- OPENCLAW_GATEWAY_TOKEN=your-strong-secret-token
network_mode: host # 或使用默认 bridge 但只映射到本地验证配置是否生效
bash
Copy
# 检查监听地址
ss -tlnp | grep 18789
# 或
netstat -tlnp | grep 18789
# 正确输出应显示:127.0.0.1:18789
# 错误输出会显示:0.0.0.0:18789(暴露到公网)
# 运行安全审计
openclaw security audit双重保险:防火墙层面阻断
即使配置失误,也可通过系统防火墙兜底:
bash
Copy
# Linux iptables(阻止非本地访问 18789)
iptables -I INPUT -p tcp --dport 18789 ! -s 127.0.0.1 -j DROP
# 或仅允许本地回环接口
iptables -A INPUT -p tcp --dport 18789 -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 18789 -j DROP重要安全警告
- 永远不要将 Gateway 绑定到
0.0.0.0或lan模式而不设置强 Token - 永远不要将 18789 端口直接暴露到公网(存在 CVE-2026-25253 等安全风险)
- 如需远程控制,使用 SSH 隧道 或 Tailscale VPN,而非直接暴露端口
bash
Copy
# 安全的远程访问方式:SSH 隧道
ssh -L 18789:localhost:18789 your-server
# 然后在本地浏览器访问 http://localhost:18789