Stable Diffusion WebUI(以下简称SD WebUI)通常部署在本地电脑上,默认只监听127.0.0.1地址,外部无法直接访问。但很多用户希望在户外用手机或平板远程出图,或者在单位控制家里的绘图主机,这时候ngrok就成了最常见的解决方案之一。ngrok可以快速建立一条从公网到内网的隧道,让世界任何角落都能访问你本地的服务。然而方便的同时,风险也随之而来——一旦隧道建立,你的SD WebUI就暴露在开放的互联网环境中,任何人拿到地址都可能调用它。本文将详细分析其中的安全风险,并给出可落地的防范方案。

ngrok内网穿透的基本原理
ngrok的工作方式并不复杂。你在本地运行一个ngrok客户端程序,它主动连接到ngrok的云端服务器,建立一条反向的TCP隧道。随后ngrok会分配一个公网地址(例如随机生成的域名),所有访问该公网地址的请求,都会经由这条隧道转发到你本地的指定端口。
SD WebUI默认运行在7860端口,因此启动命令通常是这样:
ngrok http 7860
执行后终端会显示一个类似https://xxxx-xxx.ngrok-free.app的公网地址。需要注意的是,ngrok的基础版使用随机域名,每次重启都会变化,这在一定程度上降低了被长期盯上的概率,但并不能替代真正的安全防护。
关键问题在于:ngrok只是做了流量转发,它不会对转发的内容做任何鉴权。也就是说,如果你的SD WebUI本身没有设置密码,那么任何知道这个公网地址的人都可以直接打开完整的WebUI界面,上传文件、生成图片、切换模型,甚至修改系统设置。这就是风险的核心来源——把一个原本只面向本机的服务,直接裸露到了公网。
公网暴露SD WebUI的主要安全风险
第一个风险是未授权访问与算力盗用。显卡资源宝贵,SD WebUI一旦被陌生人访问,对方可以随意提交绘图任务。由于出图任务本身耗时较长,恶意用户可以批量提交高分辨率、高步数的生成请求,把你的GPU占满,导致你自己无法正常使用。更极端的情况下,对方可能通过WebUI的扩展功能安装恶意插件,在你的机器上执行任意命令。
第二个风险是API接口的滥用。SD WebUI自带完整的REST API,启动时加上--api参数就会开启。API的调用没有任何认证机制,攻击者拿到地址后可以编写脚本批量调用/sdapi/v1/txt2img等接口,把你的机器变成免费的绘图服务。此外,如果启动时使用了--listen参数让WebUI监听0.0.0.0,配合ngrok使用会进一步扩大暴露面。
第三个风险是文件系统暴露。WebUI中的一些功能允许查看输出目录、上传模型文件。如果攻击者构造特殊请求,可能遍历你的本地文件,甚至通过上传功能植入恶意文件。曾经就有公开的安全研究指出,SD WebUI的某些扩展插件存在路径穿越和远程代码执行漏洞,暴露公网后这些漏洞都可能被利用。
第四个风险是内容合规与法律风险。出图内容会占用你的本地存储,若被他人滥用生成违规内容,痕迹都留在你的设备上,责任归属会很麻烦。这一点虽然技术性不强,但同样值得重视。
具体的安全防范措施
第一项措施是为SD WebUI设置访问密码。WebUI自带--gradio-auth参数,启动时指定用户名和密码即可启用基础认证:
python launch.py --gradio-auth 用户名:密码 --share=false
设置后,通过ngrok访问时必须先输入凭据才能进入界面,这是成本最低、收益最直接的一层防护。建议密码使用足够长的随机字符串,避免与其他账户共用。
第二项措施是利用ngrok自带的Basic认证。ngrok支持在建立隧道时直接附加HTTP基础认证,相当于在流量入口处再加一道门:
ngrok http 7860 --basic-auth="用户名:密码"
这样请求还没到达SD WebUI就会被拦截,适合作为双重防护的前置关卡。两层认证叠加使用,即使其中一层配置有疏漏,另一层仍能兜底。
第三项措施是控制API的暴露面。如果只是自己远程出图,不建议开启--api参数;确需调用API时,可以配合--api-auth参数为API单独设置认证(新版SD WebUI支持),或者干脆不把带API的服务通过ngrok暴露,改为在可信网络内使用。
第四项措施是限制使用时长并及时关闭隧道。ngrok免费版本身有时间限制,这反而成了一个优点:用完即断,减少暴露窗口。养成"用时启动、用完关闭"的习惯,比长期挂着隧道安全得多。同时建议在ngrok控制台查看访问日志,发现异常流量及时更换密码。
第五项措施是使用HTTPS并警惕告警页。ngrok默认提供HTTPS地址,务必使用https开头的链接访问,避免明文传输凭据。另外,ngrok免费版首次访问会显示一个提示页面,这个页面本身不是漏洞,但说明所有流量都经过了ngrok的云端服务器——如果你绘制的图片或提示词涉及敏感内容,需要意识到第三方中转的存在。对隐私要求极高的场景,可以考虑改用frp等自建内网穿透方案,把中转服务器掌握在自己手里。
替代方案与整体建议
如果对ngrok的第三方中转心存顾虑,自建frp是常见的替代选择。frp需要一台具备公网IP的云服务器,搭建成本略高,但所有流量都在自己的控制范围内,还可以配合Nginx添加IP白名单、限流和更强的认证策略。对于长期使用场景,自建方案的总体安全性明显更好。
另一个思路是使用Tailscale或ZeroTier等虚拟组网工具。它们不对公网开放任何端口,只有加入了你的虚拟网络的设备才能访问SD WebUI,从架构上根除了"任何人拿到地址都能访问"的问题。缺点是每台访问设备都需要安装客户端并完成认证,灵活性略低于直接分享链接的ngrok。
综合来看,安全防护的核心思路是分层:ngrok层做入口认证,SD WebUI层做账号认证,系统层保持防火墙关闭不必要的端口,同时定期更新WebUI版本修补已知漏洞。内网穿透本身并不可怕,可怕的是不加任何防护地把服务裸露出去。只要按照本文的措施层层设防,就可以在享受远程出图便利的同时,把风险控制在可接受的范围内。
ngrok内网穿透SD WebUI安全修改时间:2026-09-01 22:06:44