国内vpsdocker容器映射的端口无法用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
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再执行一遍命令,就能删除这条错误的规则。
购买使用一诺网络国内vps,可以极大降低初创企业、中小企业以及个人开发者等用户群体的整体IT使用成本,无需亲自搭建基础设施、简化了运维和管理的日常工作量,使用户能够更专注于自身的业务发展和创新。国内vps低至69元/月,购买链接:https://www.enuoidc.com/vpszq.html?typeid=5