Debian使用APT更新Docker时遇到IPv6 连接问题


在日常的 Linux 系统维护中,我们经常需要通过 APT 包管理器来更新软件包。然而,有时会遇到由于网络配置或外部服务支持的问题导致的更新失败。例如,当尝试从 Docker 官方仓库获取最新版本的 Docker 时,可能会遇到如下错误:

W: Failed to fetch https://download.docker.com/linux/debian/dists/bookworm/InRelease  
Could not handshake: Error in the pull function. [IP: 2600:9000:26a6:6800:3:db06:4200:93a1 443]
W: Some index files failed to download. They have been ignored, or old ones used instead.

这种情况通常发生在你的系统尝试通过 IPv6 访问 Docker 的 CDN 节点时遇到了连接问题。这个问题可以通过强制 APT 使用 IPv4 来解决。下面我们将详细介绍如何操作。

编辑 APT 配置

要让 APT 强制使用 IPv4,你需要编辑 APT 的配置文件。你可以通过以下命令来实现这一点:

echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4

这条命令会在 /etc/apt/apt.conf.d/ 目录下创建一个名为 99force-ipv4 的新文件,并写入一行配置,告诉 APT 在执行任何网络操作时优先考虑 IPv4 地址。

更新软件包列表

完成上述配置后,你可以尝试再次运行 APT 更新命令来验证是否解决了问题:

sudo apt update

如果一切正常,你应该不会再看到之前的错误信息了。

额外提示:检查系统时间

值得注意的是,有时候类似的错误可能由其他原因引起,比如系统时间不准确可能导致 SSL/TLS 握手失败。确保你的系统时间是正确的,可以通过启用 NTP 同步来自动调整时间:

sudo timedatectl set-ntp on

声明:初心|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Debian使用APT更新Docker时遇到IPv6 连接问题


愿你勿忘初心,并从一而终