先说结论:你这个问题九成不是宝塔的锅,是 CentOS 7 这个系统本身已经废了。CentOS 7 在 2024 年 6 月就停止维护了,官方的 mirror.centos.org 源早就下线,你跑官方安装脚本,第一步 yum 装依赖就全是 404,脚本走到一半挂了,但最后那句"安装成功"是它自己 echo 出来的,纯属骗你。重装一百遍结果都一样。
第一步先验证到底装没装,就一条命令:
ls /www/server/panel
如果提示 No such file or directory,那就根本没装成功,后面所有的 bt、systemctl 都无从谈起。
解决办法是先把 yum 源换掉,改成 vault 归档源:
sed -i 's/mirror.centos.org/vault.centos.org/g' /etc/yum.repos.d/CentOS-*.repo
sed -i 's/^#.*baseurl=http/baseurl=http/g' /etc/yum.repos.d/CentOS-*.repo
sed -i 's/^mirrorlist=http/#mirrorlist=http/g' /etc/yum.repos.d/CentOS-*.repo
yum clean all && yum makecache
然后再重跑宝塔安装脚本,这次大概率能装上。不过说实话,都 2026 年了,别折腾 CentOS 7 了,直接换 Ubuntu 22.04 / AlmaLinux 9 / Rocky 9,省心得多,宝塔官方现在也主推这几个。
如果目录在、就是 bt 命令敲不出来,那是软链接丢了,手动补一个:
ln -sf /etc/init.d/bt /usr/bin/bt
或者别绕弯,直接 /etc/init.d/bt start。另外宝塔自己那个 init 脚本才是最靠谱的,/etc/init.d/bt restart、/etc/init.d/bt default(查面板地址账号密码)都能用。
bt 和 systemctl 的区别:/etc/init.d/bt 是宝塔自己写的启动脚本,功能最全,stop/restart/default 都齐;systemctl start bt 走的是 systemd 的 bt.service,本质也是去调那个脚本,但有些版本这个 service 没装好或者有问题,你会觉得 systemctl 没反应。所以优先用 /etc/init.d/bt,systemctl 当备选。
启动和放行端口的顺序其实无所谓,这是两码事。安全组决定"外网能不能连进来",面板服务决定"这个端口上有没有东西在听"。排查时这么分:
- 先本地
curl -I 127.0.0.1:8888,或者ss -lntp | grep 8888看进程在不在 - 本地通、外网不通 → 就是安全组和系统防火墙的事
- 本地都不通 → 服务压根没起来,先查服务
云服务器要去控制台安全组放行 8888(或者你改的端口)。系统防火墙也别忘:
firewall-cmd --zone=public --add-port=8888/tcp --permanent
firewall-cmd --reload
开机自启,老办法 chkconfig bt on,新系统用 systemctl enable bt。装完宝塔一般默认就 enable 了,你重启后起不来,八成是当时压根没装成功或者 service 没注册。查一下 systemctl is-enabled bt 就知道了。真不行就写进 rc.local:echo "/etc/init.d/bt start" >> /etc/rc.local,记得给 rc.local 加执行权限。
还有个细节,浏览器访问用 http 别用 https,除非你自己在面板里开了 SSL,用 https 访问 8888 打不开是正常的。