人生就是由众多的细节组成的
正因为是个细节,所以常被人所淡忘

宝塔管理面板里防火墙开关无法打开 Docker启动失败,提示'iptables: No chain/target/match by that name'

宝塔管理面板里防火墙开关无法打开

649142a45fbd1

在宝塔服务器管理面板中无法打开防火墙开关,无法添加端口或者屏蔽IP。

先在ssh就是命令检查

systemctl restart firewalld
systemctl status firewalld

先用这二条命令看看结果,类似如下报错:

firewalld.service – firewalld – dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Wed 2022-09-07 10:48:04 CST; 6s ago
Docs: man:firewalld(1)
Process: 16382 ExecStart=/usr/sbin/firewalld –nofork –nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
Main PID: 16382 (code=exited, status=0/SUCCESS)
Sep 07 10:48:03 5 systemd[1]: Starting firewalld – dynamic firewall daemon…
Sep 07 10:48:04 5 systemd[1]: Started firewalld – dynamic firewall daemon.
Sep 07 10:48:04 5 firewalld[16382]: WARNING: ipset not usable, disabling ipset usage in firewall.
Sep 07 10:48:04 5 firewalld[16382]: ERROR: Failed to load nf_conntrack module: modprobe: ERROR: could not …rack’
modprobe: ERROR: could not insert ‘nf_conntrack’: Function not implemented
modprobe: ERROR: Error running install command for nf_conntrack…
Sep 07 10:48:04 5 firewalld[16382]: ERROR: Raising SystemExit in run_server
Hint: Some lines were ellipsized, use -l to show in full.

通过上面的出错,基本可以判定是防火墙程序软件问题。

解决方法:

先删掉firewalld防火墙程序,在重装下,最后重启,SSH命令如下。

yum remove -y firewalld
yum install -y firewalld
firewall-cmd –reload

如果打开宝塔,可以重启下服务器,如还是进不了宝塔,可能需要在SSH中放行下宝塔的8888端口,其他端口80、443也一起在SSH中放行下,命令如下,将8888换成80或443。

firewall-cmd –zone=public –add-port=8888/tcp –permanent

docker容器报错:

docker: Error response from daemon: driver failed programming external connectivity on endpoint etlmysql (12ccdbcef942bef6f32dbfc157dd1b49319ee2df4d68bf7b9a9b9ea88b5bd4fa):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 3306 -j DNAT --to-destination 172.17.0.2:3306 ! -i docker0: iptables: No chain/target/match by that name. (exit status 1)).

docker ps -a 查看是否还有12ccdbcef的容器。
发现已经被删除 。
进行百度
https://blog.csdn.net/qq_40822132/article/details/131892842
发现其中,这个文章中的原因,很符合我的现象 。想起来前几天我是关闭了firewalld的。
最后按照提示重启了docker,发现可以啦。

原因:在我们启动了Docker后,我们再对防火墙firewalld进行操作,就会发生上述报错。

详细原因:docker服务启动时定义的自定义链DOCKER,当 centos7 firewall 被清掉时,
firewall的底层是使用iptables进行数据过滤,建立在iptables之上,这可能会与 Docker 产生冲突。
当 firewalld 启动或者重启的时候,将会从 iptables 中移除 DOCKER 的规则,从而影响了 Docker 的正常工作。
当你使用的是 Systemd 的时候, firewalld 会在 Docker 之前启动,但是如果你在 Docker 启动之后操作 firewalld ,你就需要重启 Docker 进程了。

解决办法:重启docker服务及可重新生成自定义链DOCKER

systemctl restart docker
赞(0) 打赏
未经允许不得转载:毛桃博客 » 宝塔管理面板里防火墙开关无法打开

评论 抢沙发

评论前必须登录!

 

实践是学习的最佳途径

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

了解更多看平潭

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册