90%插件安装失败源于网络链路三节点中断:API元数据拉取、安装脚本下载、二进制包分发;需依次用curl、wget验证各环节,再针对性换源、改hosts、调挂载参数或禁用SELinux。

插件安装报错,90% 不是授权问题,而是网络链路断在了三处关键节点:API 元数据拉取、安装脚本下载、插件二进制包分发。先确认哪一环断了,再针对性换源或绕过。
curl -I https://www.bt.cn/api/plugin 返回超时或 403
这是最典型的“元数据层”断连,说明宝塔面板根本拿不到插件列表。不是你服务器上不了网,而是 www.bt.cn/api/ 被云厂商出口策略拦截、DNS 污染,或中间 HTTPS 证书校验失败。
- 执行
curl -I https://www.bt.cn/api/plugin,若卡住或报SSL certificate problem,临时关闭证书验证:编辑/www/server/panel/data/panelConfig.conf,把ssl_verify改为0,然后运行bt restart - 别只改
/etc/resolv.conf——宝塔部分请求走 IP 直连,DNS 无效;重点检查安全组是否放行 outbound 的 443 端口 - 如果确认是 DNS 污染(
nslookup www.bt.cn解析到非官方 IP),直接绑定可信 IP:echo "103.224.251.67 www.bt.cn" >> /etc/hosts
插件列表能显示,但点安装后卡在“正在下载安装脚本”
说明元数据拿到了,但拼出的脚本 URL(如 https://download.bt.cn/install/plugin/nginx/install.sh)无法访问。这个环节常被 CDN 限流、域名劫持或路径失效卡住。
- 打开浏览器开发者工具(F12),切到 Network 标签,点击安装,找到状态为
pending或返回403的install.sh请求,复制完整 URL - 在终端执行
wget -S [复制的URL],看是否返回403 Forbidden或404 Not Found - 若确认是
download.bt.cn问题,手动替换域名:把 URL 中的download.bt.cn换成ghproxy.com/https://raw.githubusercontent.com/btpanel/bt-plugin/master/(注意保留原始路径,如/plugin/nginx/install.sh)
安装脚本执行后报 Permission denied 或 No such file or directory
这不是网络问题,而是脚本下载到了,但执行环境缺失或权限不匹配。常见于系统源失效导致依赖未装、/www 目录挂载参数限制、或 SELinux 强制拦截。
- 检查
/www所在分区挂载参数:mount | grep "/www",若含noexec或ro,需修改/etc/fstab并执行mount -o remount /www - 确认
/www属主为root:www且权限为755:chown -R root:www /www && chmod -R 755 /www - SELinux 启用时即使权限正确也会拒绝写入,临时验证:
setenforce 0,若此时安装成功,需执行semanage fcontext -a -t httpd_sys_rw_content_t "/www(/.*)?"再restorecon -Rv /www
离线源配置后插件列表仍为空
离线源只缓存插件元数据,不托管安装脚本和二进制包。它能让你看到列表、点安装,但后续仍需联网拉取脚本——所以“离线”只是半离线,配置错误会静默失败,不报错也不刷新。
- 确认宝塔版本 ≥ 7.9.0:
bt 16查看;旧版本不支持自定义源 - 编辑
/www/server/panel/data/backup_url.pl,内容必须是可直接浏览器打开的 JSON 列表地址,且以/结尾,例如:https://ghproxy.com/https://raw.githubusercontent.com/btpanel/bt-plugin/master/ - 改完立即清缓存:
rm -f /www/server/panel/data/plugin.json,再执行bt 11重载面板
真正难处理的从来不是“连不上”,而是“看起来连上了,但某一层悄悄失败”。比如元数据能取、脚本能下、甚至安装日志显示成功,最后插件功能不可用——这时往往要查 /tmp/panelUpdate.pl.log 或插件自身的日志目录,而不是反复重试安装。


















