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,请尝试更改它是私有的
最初,我尝试用 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,请尝试更改它是私有的