Первоначально я пробовал это с реакцией, я открыл TCP-порт для порта: 5000 в настройках брандмауэра защитника Windows, и когда я запустил реакцию на 5000, я мог получить доступ к внешнему интерфейсу с любого устройства в локальной сети (мой телефон, другой ноутбук ).
Однако, когда я пытаюсь запустить свой сервер FastAPI на порту 5000, я могу получить к нему доступ только локально. Я пытался использовать промежуточное ПО, изменив имя хоста с 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 локально. Я также пробовал разные порты, я даже пытался использовать вместо этого экспресс-сервер и столкнулся с теми же проблемами.
В команде netstat
в CMD порт указан там, но не как "ESTABLISHED" Скорее "TIME_WAIT"
В Windows попробуйте войти в settings
->Network status
->Properties
, и если сетевой профиль установлен как общедоступный, попробуйте изменить его на частный.