FastAPI 在被 IPv4 访问时不工作。 (在另一台设备上)

FastAPI isn't working when being accessed by IPv4. (On another device)

最初,我尝试用 React 进行尝试,我在 windows 防御者防火墙设置上为端口 5000 打开了一个 TCP 端口,当我 运行 对 5000 做出反应时,我可以访问LAN 上任何设备的前端(我的 phone,其他笔记本电脑)。

但是,当我尝试 运行在端口 5000 上连接我的 FastAPI 服务器时,我只能在本地访问它。我试过使用中间件,将主机名从 0.0.0.0 更改为 IPV4

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel
from models import *

app = FastAPI()

@app.get("/")
async def root():
    return {"message": "Hello World"}

@app.post('/post/')
async def create_post(item: HomeButton):
    print(item.number)
    return {"Post": "Success"}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=5000)
    #uvicorn.run(app, host="25.21.135.32", port=5000)

Ngrok'ing 它工作得很好,但我的目标是在本地 运行 FastAPI。我也尝试过不同的端口,我什至尝试过使用快速服务器来代替并遇到同样的问题。

在 CMD 的 netstat 命令中,端口列在那里,但不是“ESTABLISHED”而是“TIME_WAIT”

在 windows 上,尝试进入 settings->Network status->Properties,如果网络配置文件设置在 public,请尝试更改它是私有的