我有一个 AWS 实例。所有端口均允许所有传入和传出流量。
我在主机上运行python3 -m http.server 8000
,但无法<hostIP>:8000
从主机外部访问。
docker run -di -p 8000:8000 ubuntu
现在,如果我在同一台主机上运行 docker 容器。
并且在我运行的docker容器内部,python3 -m http.server 8000
我能够<hostIP>:8000
从主机外部获取。
我无法理解这一点。有什么想法可以解释一下可能发生的情况吗?
PS:我做了一个 tcpdump,发现主机正在接收 tcp SYN 数据包,但没有用 SYNACK 做出响应。
备注:lsof -Pi :8000
python3 13376 root 3u IPv4 71025 0t0 TCP *:8000 (LISTEN)
答案1
ufw
服务阻塞了系统上的一切。Docker 配置ufw
正确,因此开箱即用。我停止后ufw
,一切正常。令人尴尬的时刻。