源码包SHA256校验不匹配说明文件被篡改、截断或损坏,绝不能跳过校验直接编译;须从Nginx官网下载页面获取官方SHA256值,用sha256sum命令比对,确认一致后方可解压编译。

源码包下载后 SHA256 校验和不匹配,说明文件在传输或存储过程中被篡改、截断或损坏,**绝不能跳过校验直接编译**——否则可能引入安全风险或编译失败。
确认官方提供的 SHA256 值
必须从 Nginx 官网(https://nginx.org/download/)对应版本的下载页面查找 SHA256 哈希值。该值通常以 nginx-x.y.z.tar.gz.sha256 文件形式提供,或直接写在页面 HTML 中(如“nginx-1.26.2.tar.gz (1.1 MB, SHA256: 9a7...)”)。切勿依赖第三方镜像站、论坛帖或缓存网页的哈希值。
本地计算并比对 SHA256
进入存放源码包的目录(如 /usr/local/src),执行:
sha256sum nginx-1.26.2.tar.gz
输出形如:
9a7e8b1c... nginx-1.26.2.tar.gz
将该结果与官网公布的 SHA256 值逐字符比对(建议用 diff 或复制粘贴到文本编辑器中启用“显示空格/换行符”功能检查是否多出空格或换行)。
常见不符原因及处理方式
- 下载中断或网络错误导致文件不完整:删除当前包,重新 wget -c 或浏览器重下;使用 wget --spider 先探测 URL 是否可访问
- 浏览器自动解压或重命名(如把 .tar.gz 误存为 .tar):检查文件扩展名和实际大小,用 file nginx-*.tar.gz 确认 MIME 类型
- 代理/CDN 缓存了旧版本包:清除本地代理缓存,或换用 curl -LJO 直连官网
- 官网已更新同名包(如小版本热修复):核对下载时间与官网发布日期,优先选择带明确发布时间的稳定版(如 nginx-1.26.2 而非 nginx-stable)
校验通过后再解压和编译
只有 sha256sum 输出完全一致,才执行:
tar -zxvf nginx-*.tar.gz
cd nginx-*
后续再运行 ./configure 等步骤。若跳过校验,后续遇到 configure 失败、make 报奇怪语法错误或编译出二进制异常,都可能溯源至此。











