
自打本地部署了Stable Diffusion WebUI生成图的质量确实是上来了可控性也比在线平台强很多。但玩了一段时间就发现一个很现实的问题这套工具被“锁”在了自己的电脑里人在办公室、在咖啡厅、在外面出差或者手机平板上想临时改个参数出一张图就完全没法用。尤其是想给朋友或者同事炫耀一下成果的时候总不能把整台电脑搬过去。这篇文章解决的就是这个“最后一公里”的问题怎么把跑在内网的Stable Diffusion WebUI安全、稳定地暴露到公网上让你随时随地打开浏览器就能玩AI绘画。内容会从方案选型讲起带你走过WebUI本身的配置调整、内网穿透服务的部署细节再到安全加固和移动端适配。不管你是纯新手还是有一定基础只要照着操作就能把自己那套绘画服务真正盘活。1. 先想清楚你要的“打通内网”到底是什么1.1 自建AI绘画服务的“最后一公里”痛点先说说为什么会有“打通内网”这个需求。大多数人的Stable Diffusion WebUI都是装在本地电脑上的这是最稳妥、最省钱的折腾方式。WebUI启动后默认监听的地址是127.0.0.1:7860访问入口只在你这台机器上。也就是说只有在这台电脑前打开浏览器才能用。局域网内其他设备想访问都需要手动加参数而到了局域网之外就彻底没戏了。这里的核心痛点有两个层面一个是“物理限制”局域网本身没有公网入口外部设备找不到这台电脑另一个是“地址限制”就算你有公网IP也不可能直接把内网机器的端口直接映射出去因为大多数家庭宽带或者公司网络压根没有公网IP就算有路由器端口映射也不是人人都会配。所以我们要做的事情本质上是让外部网络能够主动找到并访问内网里的WebUI服务。这才叫真正打通。这个需求看起来非常简单但做起来有不少坑。比如WebUI默认不开启监听、防火墙挡端口、隧道服务超时断连、开放公网却被别人扫到端口甚至被刷爆这些都是实际会遇到的问题。下面所有操作都围绕这些事情展开。1.2 方案选型三条“走出去”的路各有优劣对于“把内网服务暴露出去”这件事业内成熟的方案其实就三类路由器端口映射、内网穿透工具、组网工具。作为个人博主的经验分享我会先给你一张对比表再详细展开我推荐的那条路。方案类型原理优点缺点路由器端口映射在路由器上把公网端口映射到内网设备速度快、无需第三方中转需要公网IP且移动/宽带等多半不给你公网IPv4运营商层就断了内网穿透工具内网设备主动连到有公网的服务器建立反向隧道不依赖公网IP可控性强能自定义端口和域名需要一台公网服务器有一定配置门槛组网工具用P2P或中继的方式把多台设备组成一个虚拟局域网使用体验接近局域网加密程度高依赖第三方控制面受限于免费额度可能有延迟问题先说结论如果你是个人玩并且希望稳定长期使用我建议走“内网穿透工具”这条路。为什么不是端口映射因为绝大多数家庭宽带有IPv4公网地址的概率已经很低了IPv6虽然有但需要路由器、防火墙、WebUI本身三端都支持IPv6访问配置起来反而更麻烦。至于组网工具适合几个人之间共用但稳定性和速度受制于服务商免费版往往还有设备数限制。而内网穿透工具的核心思路很简单你不需要外部主动连进来而是让内网电脑主动“拨号”连到一台公网服务器上在这台服务器上开一个端口谁访问这个公网端口数据就通过这条隧道转给你内网的WebUI。注意这里是合法的、你自己可控的服务器中转跟那些非法通道完全两回事。这个方案唯一需要额外花成本的是一台公网服务器和一点点配置功夫。它带来的回报是长期稳定、不依赖他人、可定制性强尤其适合把WebUI长期挂机使用的人。2. 开工前准备WebUI服务端配置与网络摸底2.1 让WebUI监听正确的地址这一步漏了就全白搭很多人第一次尝试远程访问配置了半天隧道结果打开公网地址还是提示“拒绝连接”。排查到最后才发现WebUI自己就没监听公网接口。Stable Diffusion WebUI默认只监听本机回环地址127.0.0.1这相当于把门锁死在了房间里。想让外部设备通过隧道访问必须让WebUI监听在“所有网络接口”上。具体做法是在启动WebUI的终端里加上 --listen 参数例如./webui.sh --listen --port 7860如果你是在Windows上用启动器比如某整合包通常可以在启动参数设置里找到“监听地址”或者“--listen”的开关手动勾选保存即可。加上 --listen 之后WebUI会监听在0.0.0.0:7860也就是说本机局域网内的其他设备已经可以通过类似 “http://192.168.1.10:7860” 这样的地址访问了。这一步验证非常关键——如果局域网内部都打不开那隧道通了你照样打不开。所以我建议在配置远程访问之前先拿着手机连上同一个Wi-Fi访问一下电脑的局域网IP加端口确认服务本身没问题。2.2 网络环境摸底记下你的内网IP、确认防火墙放行在开始部署隧道之前你最好先把几个基本信息摸清楚你的电脑在内网的IP比如 192.168.1.10WebUI监听的端口比如 7860内网IP是否固定如果电脑重启IP会变建议在路由器里做DHCP地址绑定或者直接用IP绑定的方式固定下来电脑本机防火墙是否放行了7860端口。我见过不少人跳过防火墙这一步导致局域网内也连不上。Windows系统默认会对“非信任网络”弹一个防火墙授权窗口很多人直接点了取消后面就再也进来了。如果你已经遇到过这种情况可以手动在“允许应用通过防火墙”里把WebUI的Python进程或相关端口加进去。实际上在你使用内网穿透的时候隧道工具是主动从内网往外发起连接的所以方向上不存在“入站连接被拦截”的问题。但是WebUI监听在0.0.0.0之后局域网内其他设备访问你7860端口时就属于入站流量防火墙依然可能拦截。为了简化问题把本机防火墙的入站规则对7860端口放行或者至少对Python解释器放行是最省事的做法。2.3 账号认证和基础防护千万不能让裸奔的WebUI直接上公网这一步经常被新手忽略却偏偏是最重要的一步。WebUI本身默认是不带密码保护的任何能访问到你公网地址的人都能直接打开页面、填入提示词、蹦出一堆图还能读取你下载过的模型甚至通过某些功能执行脚本。所以在你做任何“对外开放”操作之前必须先把基础账号认证打开。常见做法是给WebUI加上 --gradio-auth 参数./webui.sh --listen --port 7860 --gradio-auth 你自己的用户名:你自己的密码加了之后打开页面会先弹出一个浏览器登录框输入用户名密码才能进入。这个功能依托的是Gradio自身的HTTP Basic认证虽然不算太高级但对于个人使用场景已经足够挡住绝大多数路人。我还有一个小建议密码别用简单组合。因为一旦你暴露了公网地址必然会被各类扫描器扫到。扫描器会尝试常见的弱口令如果密码是admin或者123456那等于大门敞开。此外如果你对安全要求更高可以再引入一层反向代理用域名加HTTPS来提供访问这会在后面的“实操”部分详细讲。这里先把第一步“不要裸奔”落实了。3. 核心实操走一条安全可靠的内网穿透路线3.1 准备工作一台有公网IP的服务器前面方案选型里说了内网穿透需要一台公网服务器做“中转站”。这台服务器不需要太高配置因为真正跑AI绘画的是你本地那台电脑服务器只负责转发数据流。从费用角度考虑一台1核1G的入门级云服务器完全够用带宽通常有1M到5M用于页面操作和单张图片生成已经足够。为什么要额外买云服务器而不是直接用免费的中转工具核心原因是可控性。中转工具帮你省了服务器钱但服务器地址、端口、域名都不归你把控免费额度、速度和稳定性也是全看运气。自建隧道虽然要花一点点小钱但链路完全在你手里出问题可以自己排查数据也不会经过第三方中转服务。如果你愿意签个长期套餐成本其实很低而且可以用很多年。买完之后你会拿到一个公网IP和SSH登录方式。记下这个IP后面配置中要用到。这里我用示例IP 203.0.113.10来做演示实际使用的时候替换成你自己的服务器地址。3.2 服务端配置frps开一个“接待处”有了服务器接下来要做的就是在服务器上部署隧道服务的“服务端”。我用的比较多的是frp这一类开源反向代理工具它体积小、配置简单、生态成熟非常适合个人自建穿透。先登到服务器上下载frp对应系统架构的压缩包并解压。服务器端我们关注的就是 frps 这个程序和 frps.toml 配置文件。以较新版本的配置格式为例服务端配置可以这样写bindPort 7000 auth.token 你自己定义的一长串随机字符串这里 bindPort 就是隧道服务端的监听端口未来内网客户端要连过来都用这个端口。auth.token 相当于内网客户端连上来时输入的“口令”用来防止别人蹭你的隧道。建议用一段足够长的随机字符串比如带大小写和数字的十六位以上字符。启动它./frps -c frps.toml如果一切正常终端里会出现服务端监听的相关日志。此时你要记得在云服务器的安全组、防火墙规则里放行7000端口否则外部连不上。这一步很多人会忘记导致后面客户端一直连不上排查半天发现是安全组没放行。然后你需要再放行一个后续给WebUI访问使用的公网端口我习惯用7810或者直接复用7860但为了不冲突以及安全性考虑用7810作为对外访问端口会更清晰。3.3 客户端部署frpc拨号回连服务端准备好了接下来是内网电脑上的客户端配置。下载frp客户端frpc在配置文件里写上服务器地址、通信口令、以及要暴露的内网服务信息。示例配置如下serverAddr 203.0.113.10 serverPort 7000 auth.token 和你服务端配置一样的随机字符串 [[proxies]] name webui type tcp localIP 127.0.0.1 localPort 7860 remotePort 7810这段配置的意思是让这台内网电脑主动连到云服务器的7000端口然后把本地7860端口的WebUI服务映射到云服务器的7810端口上。也就是说别人只要访问 203.0.113.10:7810就能通过隧道到达你本地电脑上的WebUI。启动客户端./frpc -c frpc.toml看到类似“login to server success”的日志就说明隧道已经建立。此时你再打开浏览器访问 http://203.0.113.10:7810应该能看到WebUI的登录框如果你加了 --gradio-auth或者直接看到WebUI界面。3.4 绑定域名与HTTPS从“能用”到“好用”的关键一步直接用IP加端口访问能用是能用但不优雅。更关键的是裸奔在HTTP协议下账号密码和生成过程都是明文传输在公共Wi-Fi环境里有被窃听的风险。为了让访问更安全、更像个正经服务我强烈建议你用一个域名加HTTPS来访问。做法不复杂你先有一个域名解析一个子域名比如 sd.example.com到你的云服务器公网IP。然后在服务器上用反向代理服务例如常见Web服务器软件或Caddy这类自动申请证书的工具把来自443端口的请求转发到本机的7810端口。因为frp客户端已经在本机的7810端口提供服务所以你只需要在服务器上把某个域名对应443端口的流量转发到127.0.0.1:7810即可。我比较喜欢用Caddy因为它的配置非常简洁而且会自动申请和续期HTTPS证书。比如这样一段配置sd.example.com { reverse_proxy 127.0.0.1:7810 }保存配置并让Caddy加载后它会自动为这个域名申请证书然后所有访问 https://sd.example.com 的请求都会被转发到你的隧道入口。这样做的好处有几个浏览器不会再提示不安全、账号密码在传输过程中被加密、别人一眼看到域名就知道这是你专属的服务。这里有一个注意点一旦你用域名和HTTPS访问WebUI之前在WebUI里加的 --gradio-auth 仍然保留因为它提供的是HTTP Basic认证和HTTPS不冲突相当于多加了一道锁。3.5 隧道稳定性验证与开机自启隧道建立起来之后我们不能只用一次就完事毕竟目标是“随时随地都能访问”。但内网电脑没准哪天重启了、断电了、系统更新了服务可能就断了。所以我们需要把frpc做成开机自启服务确保电脑一开机隧道就自动连上。在Windows上最简单的方式是用任务计划程序创建一个“登录时启动”的任务或者直接用NSSM这类工具把frpc注册成Windows服务。Linux系统上则可以用systemd服务来管理。核心目标只有一个让frpc在后台稳定运行并在异常退出后自动拉起。打开Windows任务计划程序创建基本任务触发器选择“用户登录时”操作选择“启动程序”程序路径选到你的frpc.exe参数填 -c frpc.toml。保存后下次登录系统就会自动启动隧道。如果是长期挂机的电脑建议把“设置”里的“不管用户是否登录都要运行”也选上这样不需要手动登录也能维持服务。同理云服务器端的frps也需要设置开机自启。在Linux上写一个systemd service单元文件然后enable起来这样即使服务器重启隧道服务也会自动恢复。到这里“通”的问题已经彻底解决了。外网设备访问域名就能打开WebUI隧道稳定运行且链路安全。4. 使用体验优化与疑难杂症排查4.1 手机和平板端WebUI也能触屏操作远程访问打通后我在手机上试了一下发现直接打开桌面版WebUI在触屏设备上有些别扭——按钮太小参数滑块不好拖鼠标悬停才能看到的工具提示也看不到。这里有几个提升体验的技巧浏览器菜单里选择“请求桌面网站”优先加载完整界面如果只是刷手机看看出图效果可以开WebUI自带的“生成预览”功能它会把历史生成结果列在界面上方便快速查看手机上输入提示词时建议把常用提示词保存为预设或样式减少打字量如果觉得界面太挤可以把浏览器页面放大或缩小Chrome移动版支持页面缩放桌面版内核也支持触控拖拽。另外要注意移动网络访问时上传的图片和下载的图片都要经过隧道中转流量消耗会比想象中大。如果是普通套餐云服务器大图来回传输可能有点慢建议生成时把图像分辨率调低一些或者在服务器端加上图片压缩类插件。4.2 共享给朋友时的使用习惯打通内网之后我最常做的事就是扔一个链接给朋友让他在自己手机上看我出的图和做好的LoRA。但这里有个坑如果朋友和你不在同一个网络他访问的就是你的公网域名所有流量都经过你的云服务器。如果服务器带宽只有1M图片加载会非常慢甚至可能卡死。我的建议是如果要给朋友展示提前把生成的图片存成一个作品集页面或者直接用WebUI的快捷分享功能生成短链接而不要让他实时跑到你本地服务上慢慢翻。如果是几个人协作还应该考虑同时在线对服务性能的影响——WebUI生成图片是计算密集型任务同一时间多人提交任务GPU会扛不住。我自己会在服务器端做一个简单的访问控制比如只在需要展示的时间段内开启隧道平时默认关闭避免非预期流量攻击和资源浪费。也可以用WebUI前面加的一层代理来实现来源IP白名单允许家庭或公司IP直接访问其他IP一律拒绝。4.3 常见问题与排查方向速查表在配置和长期使用的过程中我遇到过不少问题这里整理成一张速查表方便你对照排查。现象可能原因排查方向局域网内打不开WebUIWebUI没加--listen在启动参数里加上--listen局域网能开、公网打不开防火墙或安全组未放行端口检查云服务器安全组、本机防火墙frpc提示连接失败token不匹配、服务器没启动检查frps和frpc的auth.token是否一致公网能打开但图片加载极慢服务器带宽太小降低出图分辨率或升级带宽页面能打开但出图超时内网电脑GPU忙等待当前任务完成或清理进程队列HTTPS证书申请失败域名解析没生效检查DNS记录与公网IP是否匹配隧道总是断连网络不稳定或frpc被系统掐断配置自动重启、检查长时间空闲连接设置WebUI报错无法连接API端口被占用切换WebUI端口或关闭占用程序我的经验是百分之六十的“打不开”问题都出在网络放行上剩下的才是配置写错。所以遇到问题先按照“本机能不能开 → 局域网能不能开 → 公网能不能开”的顺序逐层排查往往几分钟就能定位。4.4 安全加固清单与长期运维建议前面说过不要让WebUI裸奔但安全这件事一次做完还不够长期运维时要养成几个习惯定期更换frp的auth.token尤其是在你怀疑配置泄露之后保持frp和WebUI相关软件更新避免已知安全漏洞云服务器安全组只对必要的端口开放例如7000只对客户端开放、7810/443只对真实来源开放如果长期开放访问建议在服务器上加一个简单的日志分析和访问频率限制防止有人暴力破解或恶意刷请求WebUI本身可能出现不安全的第三方插件不要盲目安装来路不明的插件和模型尤其在对外开放时。我个人的习惯是给WebUI跑在一个专用系统用户下权限尽量缩小目录和文件权限不要随意放开。这样即使出现安全问题影响范围也被限制在可控范围内。另外长期挂机会产生大量图片文件建议定期备份模型和Lora配置图片素材按天归档到移动硬盘或网盘。云端服务器只是转发节点不会存你的生成记录所以本地备份就是唯一保障。结尾我在给朋友搭建这套远程访问方案时最大的体会是别急着一步到位追求“完美”先跑通最小可用链路最关键。很多时候你觉得自己卡在隧道配置上实际上卡在WebUI监听参数上你觉得是服务器问题其实是防火墙没放行。只要把链条一个个环节拆开验证问题都能定位到具体某一层。最后分享一个小技巧把WebUI的启动命令、frpc的启动命令都写成一个批处理或脚本并输出详细日志。每次遇到问题先看日志基本能解决九成以上的事情。日志不会骗人比你凭感觉猜要高效得多。这套方案我已经稳定跑了几个月出差在外、躺在床上都能随时掏出手机看一眼生成的图那种“工具终于完全属于自己”的感觉如果你也喜欢折腾非常值得自己动手试一次。