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

无法通过局域网设备访问FastAPI应用,请求协助排查

解决FastAPI无法被手机/模拟器访问的问题

问题概述

FastAPI本地(浏览器、Postman)可正常访问,但手机和模拟器请求报连接拒绝;同一电脑上的Node服务可被局域网设备正常访问,排除网络问题;调整CORS参数(allow_credentials=True、allow_origins=["*"]等)无效。

核心原因

默认启动FastAPI时,uvicorn仅绑定127.0.0.1(本地回环地址),仅允许本机访问,局域网内其他设备无法连接。

解决方案

1. 启动FastAPI时绑定局域网可访问地址

启动命令改为:

uvicorn main:app --host 0.0.0.0 --port 8000
  • --host 0.0.0.0:绑定主机所有可用网络接口,让局域网内设备能通过电脑的局域网IP访问服务
  • --port 8000:指定服务端口,可根据需求修改

2. 获取电脑的局域网IP

  • Windows:打开命令提示符,执行ipconfig,找到「以太网适配器 本地连接」或「WLAN」下的IPv4地址(如192.168.1.105)
  • Mac/Linux:打开终端,执行ifconfig或ip addr,找到对应网络接口的inet地址

3. 手机/模拟器访问方式

  • 手机:确保和电脑在同一局域网,用浏览器或Flutter请求http://[电脑局域网IP]:8000
  • Android模拟器:由于模拟器网络隔离,需用10.0.2.2代替电脑IP,即http://10.0.2.2:8000
  • iOS模拟器:直接使用电脑局域网IP或localhost即可

4. CORS设置修正

  • 若手机端是浏览器/Flutter Web请求,需确保allow_origins包含请求源:
    • 调试Flutter Web时,源通常是http://localhost:5000或手机端的调试地址
    • 不确定源时,可临时设置allow_origins=["*"](生产环境不建议)
  • 注意:Postman、curl等非浏览器客户端不受CORS限制,所以allow_origins=[]时仍能访问是正常现象,CORS仅作用于浏览器端

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 17:02:24