我正在设置 VPS 来运行一些 docker 包。防火墙设置为阻止任何传入流量(默认),只允许通过 Wireguard VPN 传入的任何流量。
docker 容器(在端口 9443 上运行)的网站仍然可以从外部访问。我就是不希望这个网站从外部被访问。
检查 iptables 我看到以下输出:
Chain DOCKER (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere 172.17.0.2 tcp dpt:9443
这是否会推翻 ufw 的设置,即使是外部连接?有什么方法可以防止这种情况发生吗?
答案1
是的,根据docker run
您指定端口的或撰写文件的设置9443
:
笔记:
如果在发布容器端口时未指定 IP 地址(即,
-p 80:80
改为),Docker默认在所有接口(地址)上发布端口。这些端口可供外部访问。-p 127.0.0.1:80:80
0.0.0.0
如果你将 UFW 配置为阻止此特定端口,这也适用,因为 Docker 管理其自己的 iptables 规则。https://docs.docker.com/engine/reference/commandline/container_run/#publish
Docker 确保传入的数据包始终首先由DOCKER-USER
和DOCKER
链检查。请勿直接编辑它们 - 您应该调整启动容器的方式。阅读此内容以获取有关防火墙规则的更多信息:https://docs.docker.com/network/packet-filtering-firewalls/