You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EC2实例部署Streamlit应用无法通过Network/External URL访问求助

问题描述

我正尝试在EC2实例上部署Streamlit应用以供他人访问,但遇到浏览器无法连接的问题。本地运行该应用时也存在相同情况:仅能通过http://127.0.0.1:8501/访问,而Streamlit启动时给出的Network URL和External URL会无限加载直至超时。

启动应用时的输出如下:

Collecting usage statistics. To deactivate, set browser.gatherUsageStats to False.


  You can now view your Streamlit app in your browser.

  Network URL: http://<network_ip>:8501
  External URL: http://<external_ip>:8501

我已确认本地Windows机器和EC2实例均开放了8501端口的TCP入站流量,EC2安全组已配置对应规则。

已排查内容:

  • EC2实例正在监听TCP 8501端口
  • 通过ps aux | grep streamlit确认Streamlit服务正在运行
  • 重启过实例

请问如何让Streamlit应用通过给出的Network URL和External URL访问,而非仅localhost:8501?

解决方案

1. 启动Streamlit时绑定所有网络接口

默认Streamlit仅绑定localhost,导致外部无法访问。启动应用时添加--server.address 0.0.0.0参数,让服务监听所有可用接口:

streamlit run your_app.py --server.address 0.0.0.0

2. 检查VPC网络ACL配置

除安全组外,EC2所在VPC的网络ACL可能限制流量。确保:

  • 入站规则允许TCP 8501端口的流量(源地址可设为0.0.0.0/0或指定访问范围)
  • 出站规则允许对应端口的响应流量(比如允许所有TCP出站)

3. 验证EC2公网IP有效性

确认EC2实例已分配有效公网IP/弹性IP,在实例内执行curl ifconfig.me查询当前公网IP,和Streamlit给出的External URL对比是否一致。

4. 排查本地网络限制

本地访问时,检查Windows防火墙是否允许访问8501端口,或是否有代理工具拦截请求。可临时关闭防火墙或切换网络环境测试。

5. 确认端口配置一致性

若需指定端口,启动时明确端口参数,同时同步安全组和网络ACL规则:

streamlit run your_app.py --server.address 0.0.0.0 --server.port 8501

内容的提问来源于stack exchange,提问作者Kyzoki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 16:20:43