帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  docker容器映射的端口无法用firewalld防火墙管理的问题

docker容器映射的端口无法用firewalld防火墙管理的问题

2024-08-01 09:49:31 1279

docker容器映射的端口无法用firewalld防火墙管理的问题

 

蓝队云小课堂:

1. 设置docker服务参数,禁止使用iptables

编辑docker服务的配置文件/etc/docker/daemon.json,如果没有这个文件,需要创建一个空文件,添加以下内容:

{

    ... ,

    "iptables":false

}

保存配置文件。在命令行执行以下命令重启docker服务:

# systemctl restart docker

2. 设置防火墙参数,允许地址转发

在命令行执行以下命令,开启防火墙的地址转发:

# firewall-cmd --add-masquerade --permanent

# firewall-cmd -reload

重启服务器,让配置生效。

3. 限制端口仅允许特定IP地址访问,例如设置9200端口只能被192.168.0.184访问

3.1 查看防火墙是否开启了9200端口。

# firewall-cmd --list-all

image.png
 

3.2从防火墙中删除9200端口,如果没有,可忽略这一步。

在命令行执行命令

# firewall-cmd --remove-port=9200/tcp --permanent

# firewall-cmd --reload

# firewall-cmd --list-all

image.png
 

已经没有9200端口。

3.3 添加rich-rules防火墙规则,仅允许192.168.0.184 访问9200端口。

#firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.0.184" port protocol="tcp" port="9200" accept" --permanent

注意:上面的命令要在一行中输入,不能分行。

# firewall-cmd --reload

让修改及时生效。

#firewall-cmd --list-all

image.png
 

这样设置,即使重启操作系统,也仅有192.168.0.184能访问9200端口。

注意:如果添加rich-rule出现错误输入,可以把--add-rich-rule替换为--remove-rich-rule再执行一遍命令,就能删除这条错误的规则。

 

更多小知识,可联系蓝队云一起探讨。

 


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: