首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何配置Centos 7 firewallD以允许码头容器自由访问主机的网络端口?

如何配置Centos 7 firewallD以允许码头容器自由访问主机的网络端口?
EN

Unix & Linux用户
提问于 2015-05-02 01:58:47
回答 7查看 117.2K关注 0票数 50

我在CentOS 7上安装了对接器,并且正在运行firewallD。

从我的容器中进入主机(默认为172.17.42.1)

有防火墙

代码语言:javascript
复制
container# nc -v  172.17.42.1  4243
nc: connect to 172.17.42.1 port 4243 (tcp) failed: No route to host

防火墙关闭

代码语言:javascript
复制
container# nc -v  172.17.42.1  4243
Connection to 172.17.42.1 4243 port [tcp/*] succeeded!

我读过有关火种的文档,但我不完全理解。是否有一种方法可以简单地允许停靠容器中的所有内容(我猜是在docker0适配器上)不受限制地访问主机?

EN

回答 7

Unix & Linux用户

回答已采纳

发布于 2015-08-27 12:30:45

也许比先前的答案更好;

代码语言:javascript
复制
firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --permanent --zone=trusted --add-port=4243/tcp
firewall-cmd --reload
票数 53
EN

Unix & Linux用户

发布于 2015-05-02 02:10:11

这些命令起了作用:

代码语言:javascript
复制
firewall-cmd --permanent --zone=trusted --add-interface=docker0
firewall-cmd --permanent --zone=trusted --add-port=4243/tcp
票数 14
EN

Unix & Linux用户

发布于 2020-03-21 03:45:55

被接受的解决方案对某些人有效,但对另一些人无效的原因之一是关于firewalld的设计问题。Firewalld只处理任何连接的第一个匹配区域。它还处理基于IP地址的区域,而不是基于接口的区域。只要您的任何区域碰巧包括正在使用的IP地址停靠器,受信任区域中的接受规则就永远不会被处理。

要验证这一点,可以查看生成的iptables规则,除非您使用的是nbt后端:

代码语言:javascript
复制
iptables -vnL | less

解决方案是使用firewalld直接规则而不是受信任的区域。直接规则总是首先被处理的。例如,对于端口3306 (即本地主机上的mysqld ),您需要以下规则:

代码语言:javascript
复制
/bin/firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 10 -p tcp --dport 3306 -i docker0 -j ACCEPT

如果您在没有--永久开关的情况下重复相同的命令,则firewalld将动态地为您进行更改,并且您不需要重新启动对接程序。

第二个原因是,根据您配置的对接器版本和网络,流量可能并不是通过docker0接口实际流动,而是通过一个单独的桥接口。您可以通过命令看到这个接口。

代码语言:javascript
复制
ip address show

您必须使用此桥接口重复上面的直接规则语句。

您还可以在码头中指定自己的网络。本文描述了这个过程:https://serverfault.com/questions/885470/how-to-configure-firewall-on-user-defined-docker-bridge

简短的版本是在停靠文件中指定网络部分,如下所示:

代码语言:javascript
复制
version: '3'
  .
  .
  .
networks:
  mynetwork:
    driver_opts:
      com.docker.network.bridge.name: mynetwork_name

您也可以在命令行中这样做。

票数 7
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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