在Centos 7上,我希望Docker容器能够到达主机,因此我尝试将docker0添加到可信区域:
# firewall-cmd --permanent --zone=trusted --add-interface=docker0
The interface is under control of NetworkManager and already bound to 'trusted'
The interface is under control of NetworkManager, setting zone to 'trusted'.
success
# firewall-cmd --get-zone-of-interface=docker0
no zone这过去是工作的,但没有在这个服务器上由于任何原因。我也试过firewall-cmd --reload,什么都没有。好像firewalld命令被完全忽略了一样。NetworkManager的信息看起来很可疑,是否有可能是firewalld和NetworkManager之间有某种冲突?
出于绝望,我也尝试了:nmcli connection modify docker0 connection.zone trusted,它正确地设置了接口配置中的ZONE=trusted,但是firewalld仍然显示接口不在可信区域。
这里发生什么事情?
发布于 2016-12-28 20:31:04
据我所知,除非有一个使用由firewalld (即eth0)直接识别的可信区域的接口,否则受信任区域不会被标记为活动区域。为了解决这个问题,您可以使用以下方法显式地设置iptables规则:
firewall-cmd --permanent --zone=trusted --add-interface=docker0
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 3 -i docker0 -j ACCEPT
firewall-cmd --reload
systemctl restart docker这里的'3‘是在您的输入链中的规则将被插入,您的里程可能会有所不同。在运行这些命令之后,我能够从容器访问主机端口。
发布于 2016-12-20 13:43:32
您应该将端口或服务添加到trusted区域,并重新加载防火墙配置。
有一个例子:
若要允许内部区域中的443/tcp端口临时使用,请键入:
systemctl start firewalld
systemctl enable firewalld
firewall-cmd --zone=trusted --add-port=443/tcp
firewall-cmd --reload检查一下:
firewall-cmd --get-active-zones允许港口持久者:
firewall-cmd --permanent --zone=trusted --add-port=443/tcp另外,下面的命令应该返回:
firewall-cmd --get-zone-of-interface=docker0
trusted https://unix.stackexchange.com/questions/331640
复制相似问题