首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法向受信任区域添加docker0接口

无法向受信任区域添加docker0接口
EN

Unix & Linux用户
提问于 2016-12-20 12:08:51
回答 2查看 12.5K关注 0票数 4

在Centos 7上,我希望Docker容器能够到达主机,因此我尝试将docker0添加到可信区域:

代码语言:javascript
复制
# 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仍然显示接口不在可信区域。

这里发生什么事情?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2016-12-28 20:31:04

据我所知,除非有一个使用由firewalld (即eth0)直接识别的可信区域的接口,否则受信任区域不会被标记为活动区域。为了解决这个问题,您可以使用以下方法显式地设置iptables规则:

代码语言:javascript
复制
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‘是在您的输入链中的规则将被插入,您的里程可能会有所不同。在运行这些命令之后,我能够从容器访问主机端口。

票数 5
EN

Unix & Linux用户

发布于 2016-12-20 13:43:32

您应该将端口或服务添加到trusted区域,并重新加载防火墙配置。

有一个例子:

若要允许内部区域中的443/tcp端口临时使用,请键入:

代码语言:javascript
复制
systemctl start firewalld
systemctl enable firewalld
firewall-cmd --zone=trusted --add-port=443/tcp
firewall-cmd --reload

检查一下:

代码语言:javascript
复制
firewall-cmd --get-active-zones

允许港口持久者:

代码语言:javascript
复制
firewall-cmd --permanent --zone=trusted --add-port=443/tcp

另外,下面的命令应该返回:

代码语言:javascript
复制
firewall-cmd --get-zone-of-interface=docker0
trusted 
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/331640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档