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

FastAPI+Uvicorn服务:公网IP无法访问,仅0.0.0.0可访问求助

解决FastAPI/Uvicorn服务公网IP无法访问的问题

1. 检查systemd服务文件的Uvicorn绑定配置

默认情况下,Uvicorn不指定--host参数时只会监听127.0.0.1(本地回环地址),这就导致只有服务器内部能访问,公网连接会失败。

  • 打开systemd服务文件:sudo nano /etc/systemd/system/uvicorn.service
  • 找到ExecStart行,确保命令包含--host 0.0.0.0,示例配置:
    ExecStart=/usr/bin/uvicorn main:app --host 0.0.0.0 --port 8000
    
  • 保存退出后,重新加载配置并重启服务:
    sudo systemctl daemon-reload
    sudo systemctl restart uvicorn
    

2. 检查云服务商的安全组/防火墙规则

绝大多数云服务器(阿里云、腾讯云、AWS等)都有独立的安全组或网络ACL配置,哪怕你在服务器内部用ufw开放了8000端口,云服务商的防火墙依然可能拦截公网流量。

  • 登录云服务商控制台,找到对应服务器的安全组设置
  • 添加入站规则:允许TCP协议的8000端口,来源设为0.0.0.0/0(允许所有公网IP访问)
  • 保存规则后等待几分钟生效,再测试公网IP访问

3. 验证端口监听状态

确认Uvicorn确实在监听0.0.0.0:8000,而非仅监听本地回环地址:

  • 执行命令:sudo ss -tulpn | grep 8000
  • 输出如果显示0.0.0.0:8000,说明监听正常;如果是127.0.0.1:8000,回到第一步修改systemd配置

4. 确认公网IP正确性

有时候可能会混淆内网IP和公网IP,执行以下命令获取服务器真实公网IP:

curl ifconfig.me

对比你测试用的103.180.163.187是否一致,确保没用到错误的IP

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 16:32:35