Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 为什么即使在阻止Linode中的端口时,我也可以公开访问我的webapp?_Docker_Security_Firewall_Traefik_Linode - Fatal编程技术网

Docker 为什么即使在阻止Linode中的端口时,我也可以公开访问我的webapp?

Docker 为什么即使在阻止Linode中的端口时,我也可以公开访问我的webapp?,docker,security,firewall,traefik,linode,Docker,Security,Firewall,Traefik,Linode,我有一个Linode设置,我已经设置了UFW来阻止端口,特别是8080。我已经重新加载了防火墙 我仍然可以通过网络访问webapp UFW: 我在docker上运行traefik,将端口上的仪表板映射到8080,并且能够通过web访问该应用程序。这里发生了什么?8080的规则不应该阻止连接吗 解决方案: 编辑/etc/docker/daemon.json中的daemon.json并添加以下内容: { "iptables": false } 保存并重新加载docker。这现在

我有一个Linode设置,我已经设置了UFW来阻止端口,特别是8080。我已经重新加载了防火墙 我仍然可以通过网络访问webapp

UFW:

我在docker上运行traefik,将端口上的仪表板映射到8080,并且能够通过web访问该应用程序。这里发生了什么?8080的规则不应该阻止连接吗

解决方案:

编辑/etc/docker/daemon.json中的daemon.json并添加以下内容:

{ "iptables": false }

保存并重新加载docker。这现在可以防止docker修改iptables和“避开”ufw规则。

通过docker端口发布打开的端口的访问在
nat
预路由
链或
过滤器
表中进行控制。您现有的防火墙规则可能只影响
过滤器
输入

添加调解对Docker容器的访问的规则的标准位置是
filter
表中的
Docker\u USER
链,它是从
FORWARD
链调用的


对于
DOCKER\u USER
链中的规则,您需要使用容器侦听的端口,而不是发布服务的主机端口。

因此阻止端口的真正方法不是修改ufw规则?我应该研究iptables并在那里进行更改吗?从未在那里修改过任何东西。“ufw”只是“iptables”上的包装。如果你能说服ufw将规则放在
转发链中,你也许可以使用它。我不熟悉ufw,无法提供这方面的指导。发布解决方案。谢谢你给我指明了正确的方向。干杯
{ "iptables": false }