首页 / 云服务器

宝塔面板安装:10个下载节点双源实测,装不上卡在哪一步

阅读 5

装宝塔面板这件事,失败率比想象中高。多数人卡在进度条走了一半不动,重装几次还是同一个位置,最后归结为「这台机器不行」。实际原因往往不在机器,而在安装器挑下载节点的那几秒钟。

宝塔面板安装:10 个下载节点双源实测

一句话结论:宝塔面板安装失败,多数卡在选下载节点这一步。10 个官方节点里有 2 个测速接口当前不可用,装之前删掉 /www/node.pl 就能强制重新测速。

宝塔官方安装脚本里写死了 10 个下载节点。我用两台国内机器(广东电信 AS4816、阿里云北京 AS37963)把这 10 个节点逐个测了一遍,同时把 install_panel.sh 拆开看它怎么选点。测完发现两件事:名单里有两个节点当前是坏的,而选点逻辑只看一个 1.5 KB 的小文件。

一、宝塔面板安装前先过三关

第一关是系统。官方支持 CentOS、Ubuntu、Debian、AlmaLinux、RockyLinux。CentOS 7 已经停止维护,新机器别再选它。脚本开头还有一段 macOS 检查,检测到 Darwin 直接退出并提示改用 Docker。

第二关是内存。脚本里写得很直白:

MEM_TOTAL=$(free -m|grep Mem|awk '{print $2}')
if [ "${MEM_TOTAL}" -lt "450" ];then
    echo "检测到当前服务器内存小于450MB,无法安装宝塔面板"
    exit 1
fi

低于 450 MB 连装都装不上,脚本自己建议换 512 MB 以上的机器。装完面板本身跑得动,但接着装 MySQL 8 和 PHP 就会碰到 OOM。内存小于等于 1 GB 时脚本会自动建 swap,这一步会多花几分钟,进度条停在「正在设置虚拟内存」属于正常。

第三关是磁盘和权限。脚本会往 /www 写一个 disk.pl 做可写校验,失败时报 ERROR: Install python env fielded. 并提示检查目录、用户和磁盘权限。20 GB 起步比较稳妥,LNMP 全家桶装完加上日志,10 GB 的盘很快就会满。机器还没买的话,可以先在主机商列表按机房和支付方式筛一遍。

二、宝塔面板安装命令:现在是 install_panel.sh

宝塔官方文档 2026 年 9 月更新的命令是这一条:

if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh docscenter

网上大量教程还在给 install_6.0.sh,那是 6.x 时代的脚本,跑在新系统上会缺依赖。也有人把命令简写成 install.sh,这个文件名在官方源上已经不对应面板安装脚本。命令跑起来后会问一句 Do you want to install Bt-Panel to the /www directory now?(y/n),输入 y 回车。

脚本本体只有 91 KB,如果连这一步都卡住,问题在 DNS 或出网,跟节点快慢无关。

三、敲回车之后,安装器做了五件事

拆开脚本,安装流程是固定的:

  1. 请求 api.bt.cn/api/isCN,判断这台机器是否在中国大陆;
  2. 按判断结果换一套候选节点表,大陆一套、海外一套;
  3. 对每个候选节点请求一次 /net_test,按响应体的字节数和耗时打分;
  4. 把选中的节点写进 /www/node.pl;
  5. 用这个节点下载 panel6.zip(46,946,652 字节),再装依赖、起服务。

大陆分支的候选是 8 个,海外分支是 6 个。大陆这套里 download-cdn1 出现了两次,一次 https 一次 http,所以实际只有 7 个不同域名。

选点的判断条件写得很具体:响应必须是 HTTP 200,响应体字节数不小于 1500,耗时(减去固定 500 ms)小于 300 ms 才进快表;响应体达到 2390 就提前结束,不再试后面的节点。全部失败才回落到 download.bt.cn。

这里有个容易踩的地方。脚本开头会先读 /www/node.pl:

if [ -f "/www/node.pl" ];then
    download_Url=$(cat /www/node.pl)
    return
fi

只要这个文件在,脚本就不再测速,直接用上次那个节点。装到一半中断、删了 /www 之外的东西重来,节点还是老的那一个。想让它重新选,得先把 /www/node.pl 删掉。

四、10 个节点,两个源,实测

宝塔 10 个官方下载节点双源延迟实测表

口径如下:两个探测源分别是中国广东电信 AS4816(单线)和阿里云北京 AS37963(BGP 多线),每个节点 20 个 ICMP 包取平均,/net_test 请求 3 次取中位,安装包取前 4 MB 分两次测吞吐取中位。采样时间 2026-10-24 上午。

节点 域名 广东电信 avg(ms) 丢包 阿里云北京 avg(ms) 丢包 两源差(ms)
东莞(dg2) dg2.bt.cn 6.057 0.0% 51.509 0.0% 45.452
主域名 / 回落默认 download.bt.cn 4.993 0.0% 51.524 0.0% 46.531
CDN 备用 download-cdn1.bt.cn 30.311 0.0% 16.810 0.0% 13.501
电信线路节点 ctcc1-node.bt.cn 29.822 0.0% 51.797 0.0% 21.975
移动线路节点 cmcc1-node.bt.cn 5.906 0.0% 35.938 0.0% 30.032
电信备用节点 ctcc2-node.bt.cn 5.328(节点异常) 0.0% 36.496(节点异常) 0.0% 31.168
香港节点 hk1-node.bt.cn 30.145 0.0% 51.923 0.0% 21.778
北美节点 na1-node.bt.cn 158.672 0.0% 192.187 0.0% 33.515
东京节点 jp1-node.bt.cn 110.238 0.0% 105.139 0.0% 5.099
Cloudflare 节点 cf1-node.aapanel.com 196.479 0.0% 169.850 0.0% 26.629

十个节点全部 0% 丢包,两源都是。延迟上,广东源最低的是 download.bt.cn 的 4.993 ms,最高是 cf1-node.aapanel.com 的 196.479 ms;北京源最低是 download-cdn1.bt.cn 的 16.810 ms,最高是 na1-node.bt.cn 的 192.187 ms。两源差最大的是 download.bt.cn,广东 4.993 ms 对北京 51.524 ms,相差 46.531 ms;cf1 走 Cloudflare anycast,两源分别解析到 104.26.11.85 和 172.67.73.28,ipinfo 标注都在美国,但 anycast 的实际落点无法从解析结果判断。

再看吞吐。安装包 panel6.zip 实测 46,946,652 字节,取前 4 MB 各拉两遍,结果和延迟完全不是一回事:

节点 广东 net_test(s) 北京 net_test(s) 广东 4MB 吞吐(MB/s) 北京 4MB 吞吐(MB/s) 备注
东莞(dg2) 0.605 0.776 1.153 6.023
主域名 / 回落默认 0.322 0.758 1.104 5.931
CDN 备用 0.797 0.871 1.119 7.749 net_test 返回 500,安装包仍可下
电信线路节点 0.664 0.766 1.132 6.478
移动线路节点 0.629 0.739 1.139 7.344
电信备用节点 0.111 0.171 未取得 未取得 TLS 证书不匹配,取不到数据
香港节点 0.652 0.776 1.114 5.850
北美节点 1.049 1.328 0.778 0.835
东京节点 3.041 1.033 0.788 0.814
Cloudflare 节点 1.121 1.821 0.843 1.243

五、三个反直觉的结论

5.1 「香港节点」在国内多半没出省

把每个节点在 /net_test 请求里实际落到的 IP 列出来,问题就很清楚了(同一域名不同请求可能落到同一 CDN 的不同边缘,表中是本次 3 次请求的落点):

节点 广东源解析到 归属 北京源解析到 归属
东莞(dg2) 211.99.112.100 AS134543 广东联通(标注 广州) 112.5.37.34 AS9808 中国移动(ipinfo 标注 福建福州)
主域名 / 回落默认 125.44.162.111 AS4837 中国联通 169 骨干(标注 郑州) 112.5.37.34 AS9808 中国移动(ipinfo 标注 福建福州)
CDN 备用 58.221.77.156 AS4134 中国电信骨干(标注 南京) 123.184.216.109 未复核
电信线路节点 112.5.37.34 AS9808 中国移动(ipinfo 标注 福建福州) 112.5.37.34 AS9808 中国移动(ipinfo 标注 福建福州)
移动线路节点 211.99.112.100 AS134543 广东联通(标注 广州) 211.99.112.100 AS134543 广东联通(标注 广州)
电信备用节点 211.99.112.67 AS134543 广东联通(标注 广州) 211.99.112.67 AS134543 广东联通(标注 广州)
香港节点 112.5.37.34 AS9808 中国移动(ipinfo 标注 福建福州) 112.5.37.34 AS9808 中国移动(ipinfo 标注 福建福州)
北美节点 128.1.164.196 AS21859 Zenlayer(标注 洛杉矶) 128.1.164.196 AS21859 Zenlayer(标注 洛杉矶)
东京节点 45.76.53.20 AS20473 The Constant Company(标注 东京) 45.76.53.20 AS20473 The Constant Company(标注 东京)
Cloudflare 节点 104.26.11.85 AS13335 Cloudflare(标注 旧金山) 172.67.73.28 AS13335 Cloudflare(标注 旧金山)

hk1-node.bt.cn 名字里带香港,但两个源都解析到 112.5.37.34,ipinfo 归属 AS9808 中国移动,标注地是福建福州。ctcc1-node.bt.cn 名字里带电信,解析到的是同一个地址。北京源上,dg2、download、ctcc1、hk1 四个域名全部指向这一台。

节点名说明的是这个域名在哪个机房有一份源文件,不说明你的请求最终落在哪。宝塔官网在前面挂了 CDN,按访客的运营商和地区调度,所以你看到 30 ms 的「香港节点」,很可能根本没出省。

5.2 名单里有两个节点当前是坏的

ctcc2-node.bt.cn 解析到 211.99.112.67(AS134543 广东联通)。两个源、https 和 http 两种协议我都试了:

  • https 下 TLS 握手失败,广东源报 tlsv1 unrecognized name,北京源报 SSL peer has no certificate for the requested DNS name;
  • http 下直接空响应,Empty reply from server。

download-cdn1.bt.cn 则是另一种坏法:/net_test 稳定返回 HTTP 500,错误页 170 字节。广东源解析到 117.24.243.212,北京源解析到 123.184.216.70,两个落点都是 500。

安装器要求 HTTP 200 才计入候选,这两个节点在选点时会被直接跳过。大陆分支的 8 个候选位对应 7 个不同域名,去掉这 2 个测速失败的,实际能被选中的只有 5 个:dg2、download、ctcc1、cmcc1、hk1。

另外说明一下口径:上面落点表里 download-cdn1 两源分别是 58.221.77.156 和 123.184.216.109,那是 /net_test 请求落到的边缘;单独复核 500 错误时又解析到 117.24.243.212 和 123.184.216.70。同一个 CDN 的不同边缘,报的都是 500。

有意思的是 download-cdn1 的安装包下载并不慢,北京源上它跑到 7.749 MB/s,是全表最快的。一个节点测速接口挂了、下载却最快,这种错位正好说明安装器只看响应体字节数的打分方式,只能当参考。

5.3 吞吐这一列,量的是你自己的出口

广东源上,大陆 6 个能取到数据的节点,吞吐全落在 1.104 到 1.153 MB/s 之间,折合 8.8 到 9.2 Mbps,彼此差不到 5%;三个海外节点(na1、jp1、cf1)在 0.778 到 0.843 MB/s。北京源上,大陆 6 个节点是 5.850 到 7.749 MB/s,折合 46.8 到 62.0 Mbps,三个海外节点 0.814 到 1.243 MB/s。

同样是大陆节点,北京源比广东源快五倍以上。瓶颈不在宝塔的 CDN,在探测机自己的出口带宽。所以吞吐这一列只能在同一个源里横向比,跨源比没有意义。真要判断某个节点对你的速度,只能在自己的机器上测。

六、按你的线路选节点

延迟数据摆在这里,选择其实不复杂:

  • 广东、福建一带的电信或移动线路,dg2.bt.cn 和 cmcc1-node.bt.cn 都在 6 ms 上下,直接用它俩;
  • 北京及华北的 BGP 机器,download-cdn1 和 cmcc1 最快,但前者测速接口是坏的,实用首选还是 cmcc1 和 ctcc1;
  • 海外机器(isCN 返回 False),脚本自己会走 cf1-node.aapanel.com、jp1、na1 这套组合,实测 cf1 两源 169 到 196 ms,na1 和 jp1 在 105 到 192 ms,都不算快,但没有更好的选择;
  • 想省事,直接用 download.bt.cn。它是回落默认值,两源延迟分别 4.993 ms 和 51.524 ms,吞吐与大陆其他节点差在 5% 以内,属于不会出错的选择。

要手动指定节点,最稳的做法是装之前先写好 /www/node.pl,里面只放一行节点地址,比如 https://dg2.bt.cn。改完再跑安装命令,脚本读到文件就跳过测速。

网上流传的 hosts 写死 IP 的做法不建议跟。IP 会变,写死等于把线路锁在一个可能已经下线的边缘节点上,而且改 hosts 会影响同一台机器上其他域名的解析。至于第三方的一键换源脚本,它指向的地址不在官方域名下,装面板这种要 root 权限的操作,没必要引入这层风险。

七、宝塔面板下载慢:先分清卡在哪一段

安装过程分四段,卡在不同位置的解法完全不同:

卡住的位置 实际在做什么 怎么判断 处理
命令刚执行就没动静 下载 install_panel.sh(91 KB) 连 curl -I https://download.bt.cn/install/install_panel.sh 都不通 查 DNS 和出网,与节点无关
打印 Selected download node... 后停住 逐个请求 /net_test 每个节点最多 3 秒,8 个节点最多 24 秒 正常等待,超过 1 分钟说明网络有拦截
打印 Download node: xxx 后进度条不动 下载 panel6.zip(44.8 MB) 用同一个节点手动 curl 安装包 删 /www/node.pl 重跑,换节点
卡在编译或 正在设置虚拟内存 装依赖、建 swap 看 /tmp/btpanel-install.log 内存小于 1 GB 会建 swap,慢是正常的

脚本把全过程写进 /tmp/btpanel-install.log。卡住时先看这个文件最后几行,比反复重装有效。

八、宝塔面板安装失败:8 类高频报错

报错或现象 原因 处理
内存小于 450MB,无法安装宝塔面板 脚本硬门槛 加内存或换机器,swap 骗不过这一关
ERROR: Install python env fielded. /www 不可写 检查磁盘是否只读、是否已有同名目录属主不对
Could not get lock /var/lib/dpkg/lock apt 自动更新占用 等它跑完,或停掉 unattended-upgrades
TLS 握手失败、unrecognized name 落到 ctcc2 这类异常节点 删 /www/node.pl,手动指定其他节点
磁盘空间不足 分区太小或日志占满 清日志,df -h 确认 /www 所在分区
端口被占用 机器上已有 web 服务 先停掉旧服务,或装完改面板端口
依赖安装失败 系统源不可用 换系统源,AlmaLinux 与 RockyLinux 需要 EPEL
macOS 无法安装 脚本主动拒绝 用 Linux 机器,或走 Docker

九、装完打不开:端口、安全组、安全入口

装完终端会打印面板地址、用户名和密码,三样都要存下来。面板端口是安装时随机分配的,不是固定 8888。官方文档里 8888 对应的是 phpmyadmin,很多人照着老教程去开 8888,自然打不开。

安全组要放行的是终端提示的那个面板端口。除此之外,按需放行 80、443、21、3306:80 和 443 是网站,21 是 FTP,3306 是 MySQL 远程连接,不需要外连数据库就别开。阿里云、腾讯云、华为云的控制台位置不一样,官方文档里有逐个厂商的图文步骤。

面板还有一个随机生成的安全入口路径,登录地址是 http://IP:端口/安全入口。只输 IP 和端口会看到 404 或者空白页,这也不是故障。

十、装完第一步:环境怎么选

面板装好后会提示装 LNMP 或 LAMP。版本选择上,Nginx 1.24 以上、MySQL 5.7 或 8.0、PHP 8.0 以上是比较稳的组合,PHP 7.4 已经停止维护,新站没必要再用。

机器配置要和环境匹配。1 核 1 GB 能装面板、能跑静态站,但 MySQL 8 的默认配置就要占掉 400 MB 以上,加上 PHP-FPM,很快会触发 OOM Killer。这种配置建议用 MySQL 5.7 并把 innodb_buffer_pool_size 压到 128 MB,或者干脆用 SQLite 跑轻量站。真要跑 WordPress 加几个插件,2 GB 内存是底线。

选机器这件事,线路比核数更影响体验。同样 2 核 2 GB,香港优化线路和欧洲机房的国内访问延迟能差出十倍,可以参考香港 VPS 机房的双源实测。预算有限的话,便宜 VPS 怎么选里讲了怎么识别超售和虚标带宽,比单看价格有用。想横向比商家,VPS 评测汇总按地区做了归类。

十一、还在流传的过时做法

  • 用 install_6.0.sh 或 install.sh 安装,这两个文件名在当前官方源上都不对应面板安装脚本;
  • 认为面板固定用 8888 端口,实际端口安装时随机,8888 是 phpmyadmin;
  • 用 hosts 把节点 IP 写死,IP 会变,且会污染同机其他域名解析;
  • 用第三方一键换源脚本,地址不在官方域名下,等于把 root 权限交给不明来源;
  • 认为 512 MB 内存够用,面板本身够,装 LNMP 会 OOM;
  • 认为必须买专业版才能建站,面板本体免费,专业版是 WAF、报表这类增值功能;
  • 用 rm -rf /www 清理重装,站点和数据库会一起没;
  • 把 Windows 面板的操作照搬 Linux,Windows 版走远程桌面,不是 SSH。

装完机器先验一遍再上业务,比事后排查省事,具体项目可以看VPS 到手怎么验货。想找当前在做的促销,优惠码汇总比挨个翻官网快;按机房挑机器的,这份按机房索引的主机商清单可以一次比完。

十二、常见问题

宝塔面板安装需要多少内存?

脚本硬门槛是 450 MB,低于这个值直接退出并提示换 512 MB 以上的机器。面板本身在 512 MB 上能跑,但同时装 MySQL 和 PHP 会 OOM。跑 WordPress 这类动态站,2 GB 起步比较稳。内存小于等于 1 GB 时脚本会自动创建 swap。

为什么重装之后还是卡在同一个节点?

因为安装器把上次选中的节点写进了 /www/node.pl,下次运行直接读这个文件,不再测速。删掉 /www/node.pl 再重跑,才会重新对 10 个节点做一遍 net_test。

download.bt.cn 打不开怎么办?

先确认是 DNS 还是网络问题:curl -I https://download.bt.cn/install/install_panel.sh,如果连不上,换 https://dg2.bt.cn 或 https://cmcc1-node.bt.cn 试同一个路径。两个都通说明是主域名的解析问题,可以临时改 /www/node.pl 指定可用节点,不建议长期写 hosts。

面板装完为什么显示 404 或者空白页?

大概率是少了安全入口。登录地址是 IP:端口/安全入口,只输 IP 和端口打不开。安全入口在安装完成的终端输出里有,也可以在服务器上执行 bt default 查看面板信息。

1 核 1 GB 的机器能装宝塔吗?

能装。脚本要求 450 MB 以上内存,1 GB 满足条件,还会自动建 swap。但装完 LNMP 之后余量很小,MySQL 8 默认配置就吃不消,建议用 MySQL 5.7 并调低缓冲池,或者只跑静态站和轻量应用。

安装包有多大,装完占多少磁盘?

panel6.zip 当前是 46,946,652 字节,约 44.8 MB。装完面板本体、Python 环境和依赖大约占 1 GB 到 1.5 GB,再装 LNMP 会到 3 GB 以上。给 /www 留 20 GB 比较从容。

海外机器会不会自动选海外节点?

会。脚本先请求 api.bt.cn/api/isCN,返回 False 时换成海外分支,候选是 cf1、jp1、na1、download、dg2、download-cdn1 这套组合。实测 cf1 在 169 到 196 ms,jp1 和 na1 在 105 到 192 ms,比国内节点慢一截。

宝 塔 面 板 , 面 板 安 装 , V P S 建 站 , 下 载 节 点 , 安 装 教 程