这次明月就碰到了一个因为误操作在宝塔防火墙里禁止了 40517 端口(面板默认端口)造成宝塔面板无法访问的问题,当时客户差点儿都要卸载重装宝塔了,考虑到客户网站众多,恢复工作量太大,明月刘仔细研究了一下给解决了,今天就给大家分享一下!
在宝塔面板的【面板设置】里可以指定“面板端口”的,40517 是默认的
宝塔面板的防火墙其实使用的是 FireWalld,这是自 CentOS 7 以来带有一个动态的、可定制而无需重新启动防火墙守护程序或服务。明月个人并不是很喜欢用,一般部署 CentOS 的时候都会禁用转为 iptables 的,所以对 FireWalld 也谈不上多熟练,但这次没办法了,只能是边摸索边解决问题了。理论上然是误操作禁止了 40517 端口,只需要再开启 40517 端口就是了,问题就出在 FireWalld 的变态 rich(富规则)规则了,Firewalld 富规则是一种用于 Firewalld 防火墙的高级规则。 它允许我们使用更复杂的规则,以灵活地控制网络连接。 与常规规则相比,富规则具有更高的优先级,因此可以更精细地控制网络连接。让我是研究了好一会儿才算是明白过来,怪不得很多国外的运维都不喜欢用 Firewalld 呢!
只需要在 SSH 远程连接的控制台终端里输入如下命令:
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" port port="40517" protocol="tcp" drop
先删除禁止 40517 端口规则,然后:
firewall-cmd --reload
重载 FireWalld 生效,再然后:
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" port port="40517" protocol="tcp" accept"
增加一个开放 40517 端口规则,最后再:
firewall-cmd --reload
重载 FireWalld 生效。
这时候访问宝塔面板就可以正常登录访问了!
需要注意的是,这个办法有一个重要的前提就是你的宝塔面板已经开启了 SSH 远程登录,并记得 SSH 端口以及 Linux 的 root 密码哦!
宝塔面板开启 SSH 远程登录设置位置,注意开关和指定SSH 端口,默认是22(上图箭头所指)
至于 Linux 的 root 密码,是需要在【软件商店】里安装一个叫【Linux 工具箱】的才能设置的,如下图:
上述两点非常重要,可以说是给技术人员留下的最后补救措施了,否则神仙来了也没救,只能是卸载宝塔重装了。当然,也可以通过云服务上的 VNC 登录来操作,但那个操作起来相对麻烦一些了,主要是纯命令行操作不是每个人都能熟练完成的。