问题出现得很突然,日志倒是留得挺全。在服务器上启动界面后,本机能打开,同事访问 IP 地址却打不开。
刚开始盯着「云主机安全组未开放端口」,折腾了半个多小时,排掉了。
排查方向其实有限,先把可能性排一排。默认只绑定回环地址。少数情况下是端口没有在防火墙放行。
还有一种情况,反向代理未配置转发。
第一件事是启动时指定监听地址与端口
demo.launch(server_name='0.0.0.0', server_port=7860)
再往下确认端口监听状态
netstat -ano | findstr 7860
接着放行防火墙入站规则
New-NetFirewallRule -DisplayName gradio -Direction Inbound -LocalPort 7860 -Protocol TCP -Action Allow
从其他机器验证访问
curl http://服务器IP:7860
怎么算真的好了,看的是同一批现象。同事能通过内网地址打开页面,交互功能正常,上传文件也能成功,长任务排队时页面也有明确提示,刷新页面后会话不会丢失,重连也不影响正在执行的任务。
对外暴露前要加认证,界面通常没有鉴权,公网直接开放可能被人当成免费算力入口。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。