说实话,NVIDIA 官网的下载速度,是我这几年用过的海外软件站里最让人血压上升的一个。前几天帮朋友在一台 Ubuntu 22.04 上配 CUDA 12.4 环境,驱动安装包差不多 2.5GB,用浏览器直接下载,速度稳定在 300KB/s 到 1MB/s 之间来回跳,预计时间从 18 分钟一路涨到 45 分钟,最后还给我校验失败,整包重下。折腾了几次之后我总结出一套完整的“NVIDIA 官网下载加速”方案,从版型选择、直链提取、多线程工具到镜像仓库都踩过一遍,今天把能直接抄作业的方法全写出来。
这套方法适合所有被 NVIDIA 官网下载折磨过的人:装驱动、下 CUDA Toolkit、拉 TensorRT、拖 cuDNN、补 nvidia-container-toolkit,全部覆盖。不管你是 Windows 还是 Linux,看完至少能找到一条适合自己的加速路径。
1. 为什么 NVIDIA 官网下载会这么慢
1.1 CDN 节点与带宽调度的现实
很多人以为 NVIDIA 官网是“国际大厂,带宽肯定充足”,实际体验却是文件越大越容易卡死。原因在于 NVIDIA 官方下载流量基本都走统一的 CDN 调度,大量安装包文件放在*.download.nvidia.com和*.developer.download.nvidia.com这两个域名下,由 CDN 根据请求来源分配边缘节点。问题在于,CDN 分配给你的节点链路质量不一定好,尤其是跨运营商、跨区域访问的时候,丢包和延迟会直接把吞吐拖垮。
另一个容易被忽略的因素是:NVIDIA 官网下载中心并没有为所有地区提供长期稳定的专线带宽池,高峰时段 GPU 用户集中下载驱动和 CUDA 组件时,并发一高,单连接能分到的窗口就很可怜。浏览器默认只会创建一两个 TCP 连接,速度上限就跟单线程强绑定。换句话说,不是你的宽带不行,是“单线程+远端拥塞”双重夹击。
1.2 网页下载流程中的额外限制
还要注意,NVIDIA 官网下载页本身也有“防直链”的味道。你从浏览器点下载,中间会经过一个https://www.nvidia.com/Download/processDriver.aspx之类的页面,拿到真实文件地址后才会跳转到下载域名。某些时候页面上显示的是“准备下载”或“请稍候”,但真实地址要等重定向完成才能拿到。如果直接用浏览器下载,一旦中间断流,很多浏览器默认不会自动续传,只能从头再来。
还有一个隐蔽问题:部分组件的下载链接带了?tt=xxx这种时效参数,过一段时间就失效。这会导致你右键复制链接存到下载器里,过了半小时再点,服务器返回 403 或直接跳到错误页。所以正确做法是:先让浏览器开始下载,再从浏览器“复制下载链接”或者从开发者工具里把最终直链扣出来,再丢给下载器。这个过程最直观的收益,就是能把单线程变成多线程,绕过网页下载器对连接数的限制。
2. 下载前先花 5 分钟,定位正确的资源和文件类型
2.1 官方下载页面的正确打开方式
不要一上来就乱点“最新版”,NVIDIA 的驱动和 CUDA 有几个入口,用途完全不同:
- 驱动下载:在 NVIDIA 官网“驱动下载”栏目,输入显卡型号、操作系统,会给出 Game Ready 或 Studio 驱动。普通用户用这个入口。
- CUDA Toolkit 归档:需要指定版本、操作系统、架构和发行版,才能拿到对应安装包。这里最容易下载错,比如选了
Linux x86_64 Ubuntu 22.04,但没注意 runtime 和 devel 的差别。 - NVIDIA Developer Program 下载:TensorRT、cuDNN、VPI 等 SDK 通常要求登录账号,甚至要填问卷,下载链接很多藏在下载记录里,过期较快。
我的建议是,别理会页面“Latest”字样,先列需求:你要装驱动还是要装 CUDA 库?CUDA 版本和驱动版本有对应关系,驱动版本太老会导致nvidia-smi报错。这些在你下载前就确认好,比下到一半再纠结重要得多。
2.2 包类型与命名规则避坑
NVIDIA Linux 下载包命名还算规律,但类型很多,新手很容易认错:
| 文件/包类型 | 常见后缀 | 适用场景 | 注意事项 |
|---|---|---|---|
| 通用安装器 | .run | Linux 通用安装驱动或 CUDA | 安装时要求关闭图形界面,需要chmod +x |
| 本地仓库包 | cuda-repo-ubuntu2204_*.deb | 添加 CUDA apt 源 | 需要另行下载 keyring |
| keyring 包 | cuda-keyring_*.deb | 注册 GPG 密钥 | 官方下载页和镜像站都有 |
| Debian 系统驱动包 | nvidia-driver-xxx | 通过 apt 直接安装 | 版本往往比官网旧,但稳定 |
| 容器工具包 | nvidia-container-toolkit | 在 Docker/Podman 中使用 GPU | 通过 apt 仓库安装更方便 |
| 免安装 SDK | TensorRT-xxx.tar.gz | 解压即用 | 体积大,压缩率低 |
很多人下载慢的另一个原因,其实是用浏览器下载了一个巨大的.tar.gz或者.local.run,但自己只需要 devel 里的某个子组件。NVIDIA 官方其实提供了“组件化下载”选项,比如 CUDA Toolkit 安装时可以选择不下载全部组件,只下载驱动、runtime、cuBLAS 等子包,这样体积会小很多。如果已经下载了完整安装器,安装时再用--no-opengl-libs之类的选项裁剪,但下载流量省不回来。
2.3 提取直链的两种实用方法
方法一:浏览器开发者工具。打开下载页后按 F12,切到 Network 面板,过滤download或part,点击下载按钮后注意看是否有文件请求出现在列表里,右键复制为 cURL 或直接复制 URL。这个方法能看到真实 CDN 域名的直链。
方法二:直接猜 URL。NVIDIA 的归档链接非常规律,例如 CUDA 12.4 的 Ubuntu 2204 x86_64 包,地址就是:
https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/进去之后是索引页面,可以按版本号和文件名找包。这个目录也支持 HTTP Range 请求,配合多线程下载器效果很好。驱动包则在:
https://us.download.nvidia.com/Windows/xxx/xxx.exe但驱动包的目录结构没有固定索引页,建议用开发者工具抓直链。
3. 实测有效的加速方案
3.1 用多线程下载器替代浏览器,收益最大
浏览器默认下载是单线程,而 NVIDIA 的 CDN 对单线程连接限制很明显,最直接的解法就是用支持分段多线程下载的工具。
Windows 下我推荐 IDM,Linux 和 macOS 下我更常用 motrix 和 aria2。核心逻辑是把一个文件切分到多个 TCP 连接同时下载,每个连接各自独立,最后合并。实测同一个 CUDA 安装包,在宽带能跑满 100Mbps 的情况下,浏览器速度可能只有 3~6Mbps,aria2 用 16 线程能拉到 20~50Mbps,快上好几倍。
aria2 用法示例:
aria2c -c -x 16 -s 16 -k 1M -d /home/user/downloads "https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin"参数说明:
-c:断点续传,下载中断后再次执行会从上次位置继续。-x 16:对同一个服务器最多建立 16 个连接。-s 16:将文件切分为 16 段。-k 1M:每段大小 1MB,防止切分过小导致磁盘 IO 压力大。-d:指定保存目录。
如果是 Windows 用户,IDM 在浏览器右键菜单里可以直接接管下载,效果一样。需要留意的是,直接复制官网下载链接给 IDM 时,如果链接带时效参数,最好先让浏览器点一下下载,再从 IDM 的“新建任务”里选择“从浏览器捕获的链接”。
3.2 命令行工具的断点续传也能救急
有时候你已经下到 80% 断了,这时候别重新下载,用 wget 或 curl 续传:
wget -c --tries=0 --timeout=30 -O cuda.run "https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.15_linux.run"-c是续传,--tries=0表示无限重试,--timeout=30是每次连接超时 30 秒,避免卡死。curl 版本则用:
curl -C - -O "https://us.download.nvidia.com/Windows/551.86/551.86-notebook-win10-win11-64bit-international-dch-whql.exe"这里-C -自动检测本地已下载大小并继续,-O保持远端文件名。这两条命令的适用场景都一样:下载包拖了很久,网络偶尔断,但服务器支持断点续传,直接续传比重新来省太多时间。
不过我建议多线程工具优先,因为 wget 本身仍是单线程,只是省去重下,不是提速。
3.3 使用镜像源替代直连,速度直接起飞
如果你下载的是 CUDA、驱动(Debian 系)这类有 apt 仓库的软件,完全没必要死磕官网。国内很多镜像站都在同步 NVIDIA 的 apt 仓库,比如清华 TUNA、中科大 USTC、阿里云镜像。这些镜像走国内线路,速度通常能跑满你的带宽。
这里以清华 TUNA 的 CUDA 仓库为例:
wget https://mirrors.tuna.tsinghua.edu.cn/cuda/ubuntu2204/x86_64/cuda-ubuntu2204.pin sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600 wget https://mirrors.tuna.tsinghua.edu.cn/cuda/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt-get update sudo apt-get install cuda这里我把官方源地址整体换成了清华镜像地址,keyring 包也从镜像站拉,整个过程基本是满速。需要注意,cuda-keyring装完后,apt source 里默认会写入developer.download.nvidia.com,需要手动改成镜像地址,写在/etc/apt/sources.list.d/cuda-ubuntu2204-x86_64.list里:
deb https://mirrors.tuna.tsinghua.edu.cn/cuda/ubuntu2204 x86_64 main改完再apt-get update一次,后续安装所有 CUDA 组件都会走镜像。
对于只想装显卡驱动的 Ubuntu 用户,更简单:
sudo apt update ubuntu-drivers devices sudo apt install nvidia-driver-550Ubuntu 官方源里自带 NVIDIA 驱动,ubuntu-drivers devices会列出机器可用的驱动包,选中带 recommended 标记的版本安装即可。这个方法的好处是仓库在国内有完整镜像,下载速度比官网.run快太多,坏处是版本更新滞后,新卡可能找不到合适驱动。
| 加速方式 | 适用场景 | 速度提升 | 操作难度 |
|---|---|---|---|
| IDM 多线程 | Windows 下载任意安装包 | 3~8 倍 | 低 |
| aria2 多线程 | Linux/macOS 下载任意安装包 | 3~8 倍 | 中 |
| wget/curl 续传 | 下载大文件但断了 | 节省重下时间 | 低 |
| 镜像源安装 CUDA | Ubuntu/Debian 装 CUDA 全家桶 | 接近带宽上限 | 中 |
| apt 安装驱动 | Ubuntu 只想装稳定驱动 | 接近带宽上限 | 低 |
4. 几个高频场景的下载实战
4.1 Ubuntu / Debian 下安装 NVIDIA 驱动与 CUDA
这是个非常经典的需求。先说驱动,如果你不想折腾,直接 apt 装稳定版;如果你要用新架构或者想用非常新的驱动特性,再去官网下.run,但下载时一定要用多线程工具。
完整路线如下:
# 1. 先查硬件和系统 lspci | grep -i nvidia ubuntu-drivers devices # 2. 安装推荐驱动 sudo apt update sudo apt install nvidia-driver-550 # 3. 重启后验证 nvidia-smi如果nvidia-smi正常输出,接下来装 CUDA。这里推荐走 CUDA 官方仓库,但把源替换成镜像:
# 下载 keyring 并安装 wget https://mirrors.tuna.tsinghua.edu.cn/cuda/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb # 修改源地址 sudo sed -i 's|developer.download.nvidia.com|mirrors.tuna.tsinghua.edu.cn/cuda|g' /etc/apt/sources.list.d/cuda-ubuntu2204-x86_64.list # 安装 sudo apt update sudo apt install cuda-toolkit-12-4为什么强调只装cuda-toolkit-12-4而不是cuda?因为cuda元包会拉很多不需要的样板和文档,下载体积变大。如果只跑 PyTorch 之类,光装 toolkit 里的 runtime 和 cudnn 就够了,体积能小一半以上,下载压力也小。
4.2 Windows 下驱动与 CUDA 组件的加速下载
Windows 用户最常见的痛点是在官网点了一个 700MB 的驱动。你用浏览器下,很容易卡在 99%,然后失败。这个场景我最推荐 IDM,它默认就能接管浏览器所有下载任务,而且自动多线程。
但由于 NVIDIA 官网有时会把真实文件地址隐藏在.exe包里,IDM 抓到的不一定是最终地址,这种情况下可以先下载一个 2~3MB 的下载器(比如NVIDIA-App.exe),然后看它启动之后是否继续拉完整驱动。这个“下载器”的出现很误导人,很多人以为下载完了,结果安装时又连官网拉大文件,速度再次变慢。
正确操作:
- 在官网生成驱动搜索结果。
- 点下载后会先落下一个下载器,或者浏览器跳转到最终
.exe。 - 如果是下载器,先运行,它会开始拉全量驱动,任务管理器里能看到网络活动。
- 如果下载器速度也很慢,建议退出去,直接用浏览器开发者工具抓
download.nvidia.com的最终.exe直链,复制给 IDM。
Windows 下安装 CUDA Toolkit 同理,官网给的exe是可联网安装程序,内部会再拉取组件。如果你想要离线包,要选local版本,命名里常有local字样,比如cuda_12.4.0_550.54.15_windows.exe,下载后直接本地安装,不受二次下载影响。
4.3 大体积 SDK 与容器工具包下载提速
除了驱动和 CUDA,经常被下载速度折磨的还有这些组件:
- TensorRT:一个 tar 包动不动就几个 GB。
- cuDNN:需要对应 CUDA 版本,下载时还要登录账号。
- nvidia-container-toolkit:apt 仓库形式存在,但在某些网络环境下从 GitHub 拉取也慢。
我给自己定的规矩是:凡是 apt 仓库里能装的一律 apt,镜像有的优先镜像。比如 nvidia-container-toolkit:
curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | sudo apt-key add - distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt-get update sudo apt-get install -y nvidia-container-toolkit如果官网或 GitHub 源访问慢,就把nvidia.github.io域名映射到可用 IP,或者找对应仓库的镜像源。镜像没有同步这个仓库的时候,我一般用多线程工具直接下载 deb 包,手工dpkg -i安装,效果一样。
TensorRT 如果必须从官网下 tar 包,强烈建议不要用浏览器,复制真实直链给 aria2。另外,下载前看清压缩包是.tar.gz还是.zip,以及包内是否捆绑了onnx-tensorrt等额外工具。下错包不仅浪费流量,后续环境配置也会对不上。
5. 下载完成后的校验、安装报错与避坑指南
5.1 下载完先校验,别急着安装
下载狂慢时,运气不好还会碰上文件损坏。NVIDIA 官方会在下载页或者包旁边给出 SHA256 校验值,但很多用户不看。我见过太多人在网速卡顿的情况下下了一半、强行续传,最终文件少了几个字节,安装时各种诡异报错。
Linux 下校验命令:
sha256sum cuda_12.4.0_550.54.15_linux.run结果和官网的哈希对一下,不一致就重新下,别硬装。Windows 下可以用certutil -hashfile 文件名 SHA256。
5.2 常见问题速查表
| 症状 | 大概率原因 | 解决思路 |
|---|---|---|
| 官网下载速度几百 KB/s | 单线程连接被限速 | 用 aria2/IDM 多线程下载 |
| 下载到一半断掉 | 网络不稳或 CDN 连接 reset | 用wget -c/aria2c -c续传 |
安装驱动后nvidia-smi has failed | 内核模块没加载或驱动未兼容 | 检查dkms status、Secure Boot,必要时重装驱动 |
failed to load module "glxserver_nvidia" | X11 图形栈加载驱动失败 | 多半是 OpenGL 相关库缺失,重装驱动时关闭图形界面 |
| apt 源更新慢 | 官方源境内访问不畅 | 改成清华/阿里镜像源 |
| CUDA 安装时二次下载组件很慢 | 选择了网络版安装器 | 改用local离线安装包 |
| keyring 安装报签名错误 | 仓库地址或 GPG 密钥不符 | 更新 keyring 包到对应 CUDA 版本 |
5.3 一些个人经验
折腾这么久,我最后给自己定的默认流程是:先看需求能不能用 apt/镜像仓库解决,能则连装带下都走镜像;必须去官网的场景,一律扣出直链丢给 aria2 开 16 线程。这样弄完之后,原本动辄一两个小时的下载,现在基本三五分钟搞定。
另外一个小技巧是:如果你的系统里有多个机器都要装同样的大文件,别每台机器都去官网拉。我通常先在最快的一台机器上把.run、.deb、.tar.gz一次下载好,放到内网共享目录或者移动硬盘里,其余机器直接拷。这个方法在实验室、公司等有多台 GPU 服务器的环境尤其实用。
最后提醒一句:NVIDIA 的驱动和 CUDA 版本迭代很快,安装包体积也越来越大,但版本不会自动“平滑升级”。下载前做好文件校验,安装后第一时间跑nvidia-smi和一个小模型推理测试,确认一切正常再关终端,避免“下载花了一小时,装完发现驱动没起来”这种双重折磨。