网络暴露:默认只在本机回环
- Gateway 默认 bind 为 loopback,避免不小心把控制面暴露到公网。
- 远程访问优先:Tailscale/VPN。备选:SSH 隧道。
# 临时远程访问:把远端端口映射到本机(避免公网暴露)
ssh -N -L <LOCAL_PORT>:<REMOTE_HOST>:<REMOTE_PORT> user@host
鉴权:token / password 必开
哪怕你只通过 SSH 隧道访问,也建议启用鉴权并定期轮换。
{
"gateway": {
"bind": "loopback",
"auth": { "mode": "token", "token": "<rotate-me>" }
}
}
插件与技能:把它们当成“要上线的代码”
- 插件与 Gateway 同进程:只安装/加载可信来源。
- 建议启用 plugins.allow 白名单。
- 第三方技能/脚本可能触发文件/命令执行,建议在隔离环境与最小权限下运行。
上线建议(最小可用版)
- 控制面不对公网,必要时加 VPN。
- 对外提供能力时,用单独的 API、单独鉴权、限流与审计日志。
- 凭据集中管理:不要把 token/API key 写进仓库;使用环境变量/密钥管理。