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

本文详细介绍了如何在Docker服务中禁用iptables,设置防火墙参数以允许地址转发,并限制9200端口只允许192.168.0.184访问。步骤包括配置daemon.json、重启docker服务、管理防火墙规则等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

{

    ... ,

    "iptables":false

}

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

# systemctl restart docker

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

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

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

# firewall-cmd -reload

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

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

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

# firewall-cmd --list-all

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

在命令行执行命令

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

# firewall-cmd --reload

# firewall-cmd --list-all

已经没有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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值