在已安装 MySQL 的 Linux 服务器上安全部署宝塔面板(BT Panel),关键在于避免端口冲突、权限隔离、网络最小化暴露以及后续加固。以下是推荐的安全安装步骤:
✅ 一、前置检查与准备
1. 确认 MySQL 状态
systemctl status mysql # 或 mariadb / mysqld
netstat -tlnp | grep 3306
确保 MySQL 正常运行,且未绑定 0.0.0.0(建议仅监听 127.0.0.1):
# /etc/my.cnf 或 /etc/mysql/my.cnf
[mysqld]
bind-address = 127.0.0.1
🔒 若需远程访问,应通过 SSH 隧道或配置白名单防火墙,而非直接开放公网。
2. 备份现有数据
mysqldump --all-databases > /root/mysql_backup_$(date +%F).sql
tar czf /root/mysql_data_backup.tar.gz /var/lib/mysql
3. 关闭不必要的服务/端口
- 检查是否已有 Web 服务(如 Nginx/Apache)占用 80/443:
netstat -tlnp | grep -E ':80|:443' systemctl stop nginx apache2 httpd # 按需停止 - 宝塔默认使用 8888 端口管理后台,请确保该端口未被占用:
netstat -tlnp | grep 8888
✅ 二、安全安装宝塔面板(推荐方式)
方法 A:官方脚本 + 自定义参数(推荐)
yum install -y wget curl # CentOS/RHEL
# 或 apt install -y wget curl # Ubuntu/Debian
# 执行安装脚本时指定非默认端口 & 启用安全模式
wget -O install.sh https://download.bt.cn/install/install.sh &&
sudo bash install.sh ed8484bec
⚠️ 注意:
ed8484bec是示例令牌,请勿直接使用!
✅ 正确做法:访问 https://www.bt.cn/bbs 获取你的专属安装令牌(需登录账号),替换为真实值。
更安全的定制安装(避免自动开启所有功能):
# 先下载脚本但不执行
wget https://download.bt.cn/install/install.sh -O install.sh
# 编辑脚本,注释掉不需要的组件(如 PHP-FPM、Redis 等)
nano install.sh
# 找到类似:
# yum install -y php-fpm redis ...
# 改为注释或删除对应行
# 然后手动指定端口(可选)
sudo bash install.sh ed8484bec --port=8889
📌 建议将管理端口改为非常规端口(如
8889),降低扫描风险。
方法 B:Docker 方式(更高隔离性,适合高级用户)
docker run -d
--name bt-panel
-p 8889:8888
-v /www/wwwroot:/www/wwwroot
-v /www/server:/www/server
-e BT_PANEL_TOKEN=your_token_here
--restart always
btbt/bt-panel:latest
✅ 优势:MySQL 独立运行,面板容器与系统解耦;便于快照回滚、资源限制。
✅ 三、安装后关键加固措施
1. 修改默认账户信息
- 登录后立即修改:
- 管理员用户名(避免
admin) - 强密码(≥12位,含大小写+数字+符号)
- 绑定手机/邮箱开启双重验证(2FA)
- 管理员用户名(避免
2. 配置防火墙(iptables/firewalld/ufw)
# CentOS (firewalld)
firewall-cmd --permanent --add-port=8889/tcp
firewall-cmd --permanent --remove-service=http
firewall-cmd --permanent --remove-service=https
firewall-cmd --reload
# 仅允许特定 IP 访问宝塔后台(生产环境强烈推荐!)
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.50/32" port port="8889" protocol="tcp" accept'
3. 禁用公网直连 MySQL(宝塔内操作)
- 进入宝塔 → 【数据库】→ 点击 MySQL → 【设置】→ 勾选:
- ✅ “禁止远程连接”
- ✅ “只允许本地连接”
- 如需外部访问,使用 SSH 隧道:
ssh -L 3306:127.0.0.1:3306 user@your-server-ip # 然后在本地用客户端连接 localhost:3306
4. 启用 HTTPS 管理面板
- 宝塔自带 Let’s Encrypt 证书申请:
- 进入【面板设置】→ 【SSL】→ 申请免费证书
- 强制跳转 HTTPS(勾选“强制 HTTPS”)
5. 定期更新与安全扫描
- 启用自动更新(谨慎选择):
crontab -e # 添加每日凌晨 2 点检查更新(建议先人工确认) 0 2 * * * cd /www/server/panel && python3 tools.py update_check - 安装【安全插件】并配置:
- 登录失败锁定
- IP 黑名单
- 文件监控(防篡改)
❌ 绝对禁止的操作
- 不要将宝塔后台端口(8888)对全网开放;
- 不要使用默认密码或弱密码;
- 不要同时运行多个 Web 服务器(Nginx/Apache + 宝塔内置 Nginx)导致冲突;
- 不要随意安装不明来源的宝塔插件。
🔍 验证安装成功
curl -k https://your-ip:8889
# 应返回宝塔登录页(无报错)
ps aux | grep panel
# 确认 panel 进程正常
tail -f /www/server/panel/logs/access.log
# 查看是否有异常访问
如你提供具体发行版(如 CentOS 7/Ubuntu 22.04)、MySQL 版本及业务需求(是否需网络访问数据库?),我可进一步给出定制化加固方案。
CLOUD云计算