关于Debian源速度慢的解决方法
- 起因
- [netselect-apt 慢的原因](#netselect-apt 慢的原因)
- 解决办法
-
- [1. 直接使用 CDN 镜像](#1. 直接使用 CDN 镜像)
- [2. 尝试更强大的测速工具 nala(最推荐)](#2. 尝试更强大的测速工具 nala(最推荐))
- [3. 手动选择邻近区域或知名的可靠镜像](#3. 手动选择邻近区域或知名的可靠镜像)
- [4. 恢复使用官方源](#4. 恢复使用官方源)
起因
事情是这样的,最近突然心血来潮,将海外服务器换成了debian,但是在安装软件的时候,发现下载速度,经常只有可怜的十几k/s,感觉时间的流逝都比下载速度快多了,实在顶不住啊。
如果是在国内的服务器,估计大部分的解决方法就是直接找阿里、腾讯的源,替换一下就行了,但是海外的,还真没有太关注有哪些好用的源。最后随便搜索了一下,看到别人推荐了 netselect-apt工具。
在一阵耐心等待下,我通过 netselect-apt 工具替换了源,结果当我执行 sudo apt update 时,依旧慢,我当时差点投诉服务器供应商了。
netselect-apt 慢的原因
-
本质是测"延迟"而非"带宽":netselect-apt 主要基于 ping 和路由跳数来评估速度,这意味着它找到的是延迟最低的源,但低延迟并不直接等同于高下载速度(带宽)。
-
忽略了全球互联复杂性:你的服务器在海外,即使选中的源地理上很近,但连接路径可能经过拥堵的国际网关,实际下载速度依然很慢。
-
策略偏向官方源:该工具倾向于选择官方源或其权威列表中的站点,而这些站点不一定能提供最优的连接速度。
解决办法
1. 直接使用 CDN 镜像
这是最省心且通常效果最好的方法。Debian 官方提供了基于地理 DNS 的 CDN 地址 deb.debian.org。它会自动将你的请求导向离你服务器物理位置最近且负载较低的镜像。
你可以直接编辑 /etc/apt/sources.list 文件,将所有的官方源地址替换为 deb.debian.org。例如,对于 Debian 12 (Bookworm),一个典型的源配置如下:
bash
deb http://deb.debian.org/debian bookworm main contrib non-free
deb http://deb.debian.org/debian-security bookworm-security main contrib non-free
deb http://deb.debian.org/debian bookworm-updates main contrib non-free
修改完成后,记得运行 sudo apt update 使配置生效。
2. 尝试更强大的测速工具 nala(最推荐)
nala 是一个更现代的 APT 前端,它的 nala fetch 命令可以从官方源列表下载并实际测试多个镜像的下载速度,从而选出真正下载最快的源。
安装与使用:
bash
#安装 nala
sudo apt update
sudo apt install nala
# 自动寻找最快的源(会显示一个交互式列表让你选择)
sudo nala fetch
# 或直接让它自动使用找到的最快源
sudo nala fetch --auto
nala 会自动将找到的源写入 /etc/apt/sources.list.d/nala-sources.list 文件,不会覆盖你原有的配置,非常安全。
3. 手动选择邻近区域或知名的可靠镜像
如果你的服务器位于特定地区,可以手动指定该区域信誉良好的镜像站。这种方式比完全依赖自动工具更可靠。
💡 如何寻找合适的镜像站?
官方镜像列表:访问 Debian 全球镜像站点的官方列表:https://www.debian.org/mirror/list。页面会根据你的IP地理位置,自动优先显示离你较近的源。
选择标准:选择与你服务器同属一个大洲、地理位置接近的镜像站。对于位于欧洲、北美等地的服务器,官方源本身速度通常就不错。
4. 恢复使用官方源
如果上述方法都不见效,可以考虑恢复到 Debian 的默认源配置。有时官方源反而是最稳定的选择。你可以使用 sed 命令快速替换:
bash
# 将 sources.list 中所有源地址替换为官方源
sudo sed -i 's|http://.*debian\.org|http://deb.debian.org|g' /etc/apt/sources.list
sudo apt update
特别提醒:如果你在中国大陆运营海外服务器,使用此方法时可能会因跨境网络限制导致速度不理想
在我的尝试下,第2种方法最好用,速度最快,建议打架尝试