Ubuntu 24.04 APT SRV 查询导致的卡顿问题
在 Ubuntu 24.04 上运行 apt update
时,可能会遇到长时间的卡顿。通过抓包(tcpdump
)可以发现,APT 在访问镜像站之前,会发送一些 SRV 记录查询:
SRV? _https._tcp.esm.ubuntu.com.
SRV? _https._tcp.mirrors.tuna.tsinghua.edu.cn.
SRV? _https._tcp.developer.download.nvidia.com.
但是大多数镜像站/CDN 并不会提供 SRV 记录,只支持常规的 A
/ AAAA
。这会导致 DNS 请求超时或 fallback,从而拖慢 apt update
的整体速度。
解决方案:禁用 APT 的 SRV 查询
APT 支持通过配置文件禁用 SRV 查询。只需要在 /etc/apt/apt.conf.d/
目录下添加一个配置文件,例如:
echo 'Acquire::EnableSrvRecords "false";' | sudo tee /etc/apt/apt.conf.d/99-disable-srv
这样,APT 在解析镜像站地址时就只会做标准的 A
/AAAA
查询,不再尝试 SRV,从而避免卡顿。
验证方法
开启抓包:
sudo tcpdump -i any port 53 -vvv
执行:
sudo apt update
- 如果配置生效,你会看到只有
A?
和AAAA?
查询,不再有_https._tcp.*
的 SRV 查询。
恢复方法
如果需要恢复默认行为,只需删除配置文件即可:
sudo rm /etc/apt/apt.conf.d/99-disable-srv
总结
- 原因:APT 默认会尝试 SRV 查询,但绝大多数镜像站并不支持,导致卡顿。
解决办法:在
/etc/apt/apt.conf.d/
下添加Acquire::EnableSrvRecords "false";
即可永久禁用 SRV 查询,提升
apt update
的速度。