如何给宝塔面板 v7.7.0 做内网离线安装:断网环境 5 步部署到位
【免费下载链接】btpanel-v7.7.0宝塔v7.7.0官方原版备份项目地址: https://gitcode.com/GitHub_Trending/btp/btpanel-v7.7.0
你的 Linux 机器部署在隔离内网,但宝塔面板 v7.7.0 的标准安装命令要从外网拉取安装包,外网不通时安装会卡在下载环节。本文带你在完全断网的机器上完成宝塔面板 v7.7.0 的离线安装:准备哪些文件、怎么把下载源换成本地文件、每步做完怎么确认。
动手前的自检:系统要求与环境确认
安装脚本开头会做一系列硬性检查,不达标会直接退出。先确认环境,能省掉很多返工:
| 项目 | 最低线 | 建议值 |
|---|---|---|
| 操作系统 | CentOS 7/8、Ubuntu 18.04+、Debian 9+ | 干净系统 |
| 架构 | 64 位(x86_64) | x86_64 |
| 内存 | 1GB(低于 1GB 时脚本会自动建 1GB swap) | 2GB 以上 |
| / 目录剩余空间 | 10GB | 20GB 以上 |
| 权限 | root | root |
三条命令快速核对:
getconf LONG_BIT # 应输出 64 free -h # 看内存 df -h / # 看剩余空间另外注意:如果机器上已装有 Nginx、MySQL、PHP 等环境(非面板安装的),脚本会要求你输入 yes 强制安装,干净系统跑一遍最省心。
离线包清单核对:要往服务器上拷什么
安装脚本依赖网络的点,集中在一批文件下载和 yum/apt 系统包上。在一台能上网的机器上取齐这些文件,一次性拷进内网服务器:
| 文件 | 用途 |
|---|---|
| install_panel.sh | 安装主脚本 |
| public.sh | 运行时下载节点选择脚本 |
| bt7.init | 7.x 服务脚本,装到 /etc/init.d/bt |
| panel6.zip | 面板主程序包(约 8.4MB) |
| LinuxPanel-7.7.0.zip | 面板主程序包(约 5.4MB),升级场景使用 |
| softList.conf | 一键软件清单(Nginx/MySQL/PHP 等) |
| pip_select.sh | pip 源选择脚本 |
| pyenv-{系统}-{版本}-x{架构}.tar.gz | 预置好的 Python 3.7 运行环境,按系统命名,如 pyenv-el7-x64.tar.gz |
前七个文件都来自仓库的 install/ 目录,主程序包在 install/src/ 子目录里。还要准备两样东西:
- 系统依赖:脚本会用 yum/apt 装 gcc、make、openssl 等一串包,内网的本地软件源要提前备好(本地 yum 源或 deb 目录)。
- pip 依赖:脚本会按 pip.txt 安装一批 Python 包。最省事的做法是在一台配置相近的机器上把完整 pyenv 装好后整个拷过来,其次才是备齐 wheel 文件。
建议统一平铺放到服务器 /root/offline 下。
把下载源换成本地文件:两种做法
做法 A:sed 替换下载行为本地拷贝
适合单台机器安装,不依赖任何网络服务。把 install/install_panel.sh 里的 6 条网络下载命令逐条改成本地拷贝:
cd /root/offline sed -i 's|^wget -O /etc/init.d/bt .*|cp /root/offline/bt7.init /etc/init.d/bt|' install_panel.sh sed -i 's|^wget -O /www/server/panel/init.sh .*|cp /root/offline/bt7.init /www/server/panel/init.sh|' install_panel.sh sed -i 's|^wget -O /www/server/panel/install/public.sh .*|cp /root/offline/public.sh /www/server/panel/install/public.sh|' install_panel.sh sed -i 's|^wget -O panel.zip .*|cp /root/offline/panel6.zip ~/panel.zip|' install_panel.sh sed -i 's|^wget -O /www/server/panel/data/softList.conf .*|cp /root/offline/softList.conf /www/server/panel/data/softList.conf|' install_panel.sh sed -i 's|^curl -Ss .*\|bash$|bash /root/offline/pip_select.sh|' install_panel.sh第一条 sed 会同时命中脚本里两处wget -O /etc/init.d/bt(先下 bt6.init、后下 bt7.init),两行都换成 bt7.init,也就是脚本最终生效的那份,正好符合要求。
做法 B:/www/node.pl 指定内网文件服务器
脚本内置了“指定源”机制:只要存在 /www/node.pl,就按该文件内容取下载地址,不再探测外网节点。内网里有一台 nginx 文件服务器时,这是最干净的离线安装方式:
echo "http://10.0.0.10/bt" > /www/node.pl文件服务器上的目录按官方结构摆放(install/src/、install/pyenv/ 等),脚本可完全不改。适合“一台文件服务器 + 多台装机”的批量部署。
无论哪种做法,都要先把 yum/apt 源指向内网镜像,否则系统依赖那一步就会卡住。
执行安装并逐步确认
- 启动安装,提示安装到 /www 目录时输入 y。这一步开始正式装系统包和面板程序。
bash /root/offline/install_panel.sh- 观察终端输出中的三个标志:“Download node:”一行应显示你指定的本地源;系统包安装无报错;随后进入“Install python env...”或面板解压阶段。用现成 pyenv 时,Python 环境这步会被直接跳过。
- 完成后确认 Python 运行环境版本:
/www/server/panel/pyenv/bin/python3.7 -V应输出 Python 3.7.8。 4. 确认面板主程序文件在位,这两个文件就是脚本自己判成功的依据:
ls /www/server/panel/tools.py /www/server/panel/BT-Panel- 启动服务并验证本地端口:
/etc/init.d/bt start ps aux | grep 'BT-Panel' | grep -v grep curl -I 127.0.0.1:8888/login- 记录账号。安装脚本最后会打印面板地址、随机用户名和 8 位密码,立刻写进运维文档,之后不会再显示第二次。
装完之后的三件事
- 验证内网可达。从另一台内网机器打开
http://内网IP:8888/随机路径。端口和随机路径分别记录在 /www/server/panel/data/port.pl 和 admin_path.pl 里。 - 处理 swap。内存 ≤1GB 时脚本已自动创建 1GB 的 /www/swap,用
free -h确认是否生效,再按运维规范决定保留还是清理。 - 收敛防火墙。脚本默认放行 20/21/22/80/8888/面板端口/SSH 及 39000-40000 一段端口,内网环境建议只留 SSH 和面板端口。
排错快查:三个高频故障
现象一:报错“下载宝塔运行环境失败”(红字)
- 定位:
ls -lh /www/pyenv.tar.gz,脚本对不足 700KB 的包会直接判为不完整 - 处理:本地 pyenv 包不全或系统版本不对,重新拷贝对应文件(如 pyenv-el7-x64.tar.gz)后重跑脚本
现象二:安装走完但 8888 端口无响应、找不到 BT-Panel 进程
- 定位:
tail -n 50 /www/server/panel/logs/error.log - 处理:看报错是否指向 python 路径或 pip 缺包;服务脚本启动时会自动修正 shebang,先执行
/etc/init.d/bt restart,再按日志逐项排查
现象三:本机 curl 通,其他内网机器打不开面板
- 定位:先
curl -I 127.0.0.1:8888/login确认本地正常 - 处理:基本是网络放行问题,按服务器防火墙、交换机 ACL、云安全组顺序检查,确认面板端口和随机路径在内网可达
验收清单:确认面板真的能用
- 进程在跑:
ps aux | grep 'BT-Panel'有输出 - 本地响应:
curl -I 127.0.0.1:8888/login返回 HTTP 状态 - 内网可达:另一台机器用 内网IP+端口+随机路径 能打开面板
- 登录正常:生成的用户名和密码可登入并看到首页
- 服务脚本正常:
/etc/init.d/bt restart执行成功
五项全部勾完,这台机器就算部署完成:把内网面板地址和账号写进团队运维文档,下次装新机器直接照这套离线安装流程走。
【免费下载链接】btpanel-v7.7.0宝塔v7.7.0官方原版备份项目地址: https://gitcode.com/GitHub_Trending/btp/btpanel-v7.7.0
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考