宝塔面板更新失败因防火墙或安全组拦截出站HTTPS请求,需放行443端口、检查云安全组、临时禁用防火墙验证、替换DNS及hosts直连官方IP。

如果您尝试在宝塔面板中执行更新操作,但始终提示“连接宝塔官网异常”或“获取更新包失败”,且已确认网络连通性正常,则很可能是系统防火墙或安全组策略拦截了面板向 download.bt.cn 等域名发起的出站 HTTPS 请求。以下是解决此问题的具体步骤:
一、检查并放行宝塔面板所需的出站端口与域名
宝塔面板更新过程需主动连接官方下载节点(如 download.bt.cn、api.bt.cn),默认使用 HTTPS(443端口)协议;部分旧环境或节点切换时可能依赖 HTTP(80端口)。若系统防火墙(如 firewalld、ufw)或云平台安全组限制了出站 80/443 端口,将直接导致更新失败。
1、执行命令查看当前防火墙状态:
systemctl status firewalld(CentOS/RHEL)或 systemctl status ufw(Ubuntu/Debian)
2、若 firewalld 正在运行,临时允许全部出站 HTTPS 流量:
firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p tcp --dport 443 -j ACCEPT
3、若使用 ufw,启用出站规则:
ufw allow out 443/tcp
4、重载防火墙配置:
firewall-cmd --reload 或 ufw reload
5、验证是否可通外网目标:
curl -I https://download.bt.cn
二、检查云服务器安全组策略
即使本地防火墙已放行,云服务商(如阿里云、腾讯云、华为云)的安全组仍会独立控制进出站流量。若安全组未开放出站 443 端口,面板将无法建立 TLS 连接获取更新包,表现为超时或空响应。
1、登录对应云平台控制台,进入“安全组”管理页面
2、定位到当前服务器所绑定的安全组
3、在“出方向”规则列表中,确认存在一条允许协议为 TCP、端口范围为 443、目标地址为 0.0.0.0/0 的规则
4、若不存在,点击“添加规则”,填写:类型=自定义TCP,协议=TCP,端口范围=443/443,授权对象=0.0.0.0/0
5、保存后等待约 30 秒生效,再于服务器内执行 curl -v https://download.bt.cn 测试连通性
三、临时禁用系统防火墙进行验证
为快速排除是否为本地防火墙导致的问题,可临时完全关闭防火墙服务,观察更新是否恢复。该操作仅用于诊断,验证后应立即恢复并配置最小化放行规则。
1、停止 firewalld 服务:
systemctl stop firewalld
2、禁用开机自启:
systemctl disable firewalld
3、若为 Ubuntu/Debian 系统,关闭 ufw:
ufw disable
4、执行面板更新命令:
curl https://download.bt.cn/install/update_panel.sh|bash
5、若更新成功,说明原防火墙策略确为瓶颈;此时应重新启用防火墙,并按第一项配置精准出站规则,切勿长期保持防火墙关闭状态
四、替换 DNS 并绕过解析干扰
某些地区运营商 DNS 存在缓存污染或解析劫持,可能导致 download.bt.cn 解析至错误 IP,进而被防火墙误判为非法请求而拦截。强制指定可信 DNS 可规避该类中间环节干扰。
1、编辑 resolv.conf 文件:
nano /etc/resolv.conf
2、将原有 nameserver 行替换为:
nameserver 8.8.8.8
nameserver 1.1.1.1
3、添加防止覆盖的保护(针对 systemd-resolved 系统):
chattr +i /etc/resolv.conf
4、测试解析结果是否正确:
nslookup download.bt.cn
5、确认返回 IP 属于宝塔官方节点(如 120.78.156.100、42.157.129.47 等),非 127.0.0.1 或私有网段地址
五、手动指定更新节点并跳过 CDN 路由
当默认 CDN 节点因地域策略被防火墙识别为高风险源时,可通过 hosts 绑定直连稳定 IP,避免经由不可控中间节点转发,从而降低被拦截概率。
1、备份原始 hosts 文件:
cp /etc/hosts /etc/hosts.bak
2、追加直连记录(以最新确认可用节点为例):
echo "120.78.156.100 download.bt.cn api.bt.cn www.bt.cn" >> /etc/hosts
3、清除 DNS 缓存:
systemd-resolve --flush-caches(systemd 系统)或 service nscd restart(nscd 系统)
4、验证绑定是否生效:
ping -c 2 download.bt.cn
5、执行带证书跳过的更新命令确保不因 SSL 校验中断:
curl -k https://download.bt.cn/install/update6.sh|bash









