You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows下指定0.0.0.0启动FastAPI/uvicorn无法访问求助

解决Windows下FastAPI指定host='0.0.0.0'无法访问的问题

兄弟,太懂你这种跨系统踩坑的无奈了!Windows对0.0.0.0的处理逻辑和Mac/Linux确实不一样,咱们一步步来搞定这个问题:

1. 别直接访问0.0.0.0,换个地址试试

Windows浏览器里输入0.0.0.0:8080不会像Mac那样自动解析到本地,你换成这两个地址绝对能行:

  • localhost:8080:和127.0.0.1完全等效,专门用来访问本地服务
  • 你的机器真实本地IP:打开CMD输入ipconfig,找到IPv4地址(一般是192.168.x.x10.x.x.x这类),然后访问[你的IP]:8080——这个地址还能让同一局域网的其他设备访问你的服务

这一步90%能解决你的访问问题,因为0.0.0.0只是告诉uvicorn监听所有网卡接口,不是用来直接访问的地址。

2. 检查Windows防火墙是不是拦了端口

Windows Defender防火墙经常会默默挡住新端口的入站请求,咱们手动加个放行规则:

  • 打开「Windows Defender防火墙」→ 左侧点「高级设置」→ 「入站规则」→ 右上角「新建规则」
  • 选择「端口」→ 下一步,输入8080,协议选TCP
  • 选择「允许连接」→ 下一步,所有网络类型都勾选上(根据你的实际需求调整也可以)
  • 给规则起个好记的名字,比如「FastAPI 8080端口放行」,完成创建

3. 再确认uvicorn真的在监听0.0.0.0

你之前用netstat查过端口,咱们用更精准的命令再验证一遍:
在CMD里运行:

netstat -ano | findstr ":8080"

如果结果里能看到0.0.0.0:8080且状态是LISTENING,说明监听完全正常;要是没这个结果,那得检查代码有没有其他问题,比如是不是启动逻辑没走到uvicorn.run那一步。

4. 提个gunicorn的坑

兄弟,你那个gunicorn_conf.py在Windows上是没用的!gunicorn是专门给Unix/Linux做的WSGI服务器,Windows根本不支持,别费劲儿折腾它了,就用你代码里的uvicorn启动方式就行。

5. 极端情况排查

  • 如果你是在虚拟机或者WSL里跑代码,得确认端口转发已经开启,主机Windows能ping通虚拟机的IP
  • 要是装了第三方杀毒软件,也可能会拦截端口,临时关闭试试(记得之后再打开)

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

火山引擎 最新活动