宝塔管理面板里防火墙开关无法打开
在宝塔服务器管理面板中无法打开防火墙开关,无法添加端口或者屏蔽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
评论前必须登录!
注册