我想在我的 centos 7 机器上明确打开端口,因此我已将防火墙配置为 drop 作为默认区域,并将外部区域配置在我的面向公众的接口上。当我运行python -m SimpleHTTPServer 8000
并点击端口 8000 上的框时,它会失败。但如果我将端口添加到外部区域。它就可以正常工作。一切都如预期的那样。
但是,当我在端口 8000 上启动 Docker 容器并从外部访问该容器时,我可以访问该服务。这不是我想要的。我希望只有当我在区域外部打开端口 8000 时才可以访问该服务。
即使我将 docker 容器绑定到盒子的公共地址,它仍然会绕过防火墙。如果需要,我可以提供更多信息,例如路由表和接口配置,但我不太清楚哪些是有用的。希望学习。
该盒子上有两个物理接口,eth0 分配有一个公共 IP,eth1 连接到私有网络,我希望可以访问。
编辑已解决,已添加--iptables=false
到docker选项。
答案1
请记住,除非您明确告知它不要这样做,否则 Docker 会在防火墙中打开端口。–
只需添加--iptables=false
到 docker 选项即可。