在 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,从而避免卡顿。


验证方法

  1. 开启抓包:

    sudo tcpdump -i any port 53 -vvv
  2. 执行:

    sudo apt update
  3. 如果配置生效,你会看到只有 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 的速度。

标签: ubuntu, debian, apt

添加新评论