호스트에서는 포트를 노출할 수 없지만 Docker에서는 노출이 작동합니다.

호스트에서는 포트를 노출할 수 없지만 Docker에서는 노출이 작동합니다.

AWS 인스턴스가 있습니다. 모든 포트에서 들어오고 나가는 모든 트래픽이 허용됩니다.

python3 -m http.server 8000 호스트에서 실행 하지만 <hostIP>:8000호스트 시스템 외부에서 액세스할 수 없습니다.

docker run -di -p 8000:8000 ubuntu이제 동일한 호스트에서 도커 컨테이너를 실행하면 .

내가 실행하는 도커 컨테이너 내부에서는 호스트 머신 외부에서 python3 -m http.server 8000GET을 수행할 수 있습니다 .<hostIP>:8000

이것에 대해 내 머리를 감쌀 수 없습니다. 무슨 일이 일어날 지에 대한 아이디어가 있습니까?

추신: tcpdump를 수행한 결과 호스트가 tcp SYN 패킷을 수신하고 있지만 SYNACK으로 응답하지 않는 것으로 나타났습니다.

조달청:lsof -Pi :8000

python3 13376 root 3u IPv4 71025 0t0 TCP *:8000 (LISTEN)

답변1

ufw서비스가 시스템의 모든 것을 차단하고 있었습니다. Docker가 ufw올바르게 구성되어 즉시 작동하고 있었습니다. 나는 멈췄고 ufw모든 것이 작동하고 있습니다. 얼굴 손바닥 순간.

관련 정보