실버를 위한 코딩/파이썬 연습

FastAPI 접속 오류 해결

forSilver 2025. 4. 3. 05:11
반응형

FastAPI 접속 오류 해결

브라우저에서 해당 앱에 접속하려고 하자 "사이트에 연결할 수 없음" (ERR_CONNECTION_REFUSED) 오류가 발생하고 있습니다.

문제 사태


✅ 현재 상황 요약

  • FastAPI 앱은 uvicorn을 통해 다음 주소에서 실행됨:
  • http://127.0.0.1:8000
  • 그러나 Windows 호스트에서 가상머신 서버(192.168.142.200:8000) 로 접속하려 하여 연결 거부됨.

즉, 서버는 127.0.0.1 (자기 자신) 만 허용 중이고, 외부(호스트 PC)에서는 접근할 수 없음.


✅ 해결 방법

✔ 1. Uvicorn 실행 시 호스트를 0.0.0.0으로 지정

현재는 127.0.0.1에서만 접속을 허용하고 있어서 외부에서 접근이 안 됩니다. 다음 명령어로 실행해 주세요:

uvicorn main:app --reload --host 0.0.0.0 --port 8000
  • --host 0.0.0.0 : 모든 외부 IP에서 접근 가능하도록 허용합니다.
  • --port 8000 : 포트는 그대로 유지합니다.

✔ 2. Linux 방화벽 확인 (서버가 CentOS 또는 Ubuntu일 경우)

sudo ufw allow 8000
# 또는 CentOS의 경우
sudo firewall-cmd --add-port=8000/tcp --permanent
sudo firewall-cmd --reload

✔ 3. VMware 네트워크 설정 확인

  • 현재 서버의 IP가 192.168.142.200인 것으로 보아 NAT 모드일 가능성이 있습니다.
  • 접속이 필요하면 VMware의 가상 네트워크를 "Bridged 모드" 또는 포트 포워딩 설정된 NAT로 바꾸는 것을 권장합니다.

✅ 테스트 방법

  1. 가상머신에서 다음으로 다시 실행합니다:
uvicorn main:app --reload --host 0.0.0.0 --port 8000
  1. Windows 브라우저에서 다시 접속 시도:
http://192.168.142.200:8000
  1. 만약 여전히 안 되면 다음도 체크:
  • ping 192.168.142.200 으로 네트워크 연결 확인
  • curl http://127.0.0.1:8000 으로 서버 내부 테스트

🔚 정리

체크 항목 설명

--host 0.0.0.0 외부 접속 허용
방화벽 포트 개방 8000/tcp 허용
VMware 네트워크 NAT → Bridged (또는 포트포워딩 설정)
접속 주소 http://192.168.142.200:8000