我正在尝试更新系统,但出现错误:
sudo apt update
输出:
Err:1 http://deb.debian.org/debian unstable InRelease
Could not connect to debian.map.fastlydns.net:80 (146.75.2.132). - connect (113: No route to host) Unable to connect to deb.debian.org:http:
Err:2 http://deb.debian.org/debian-debug unstable-debug InRelease
Unable to connect to deb.debian.org:http:
Err:3 http://deb.debian.org/debian-ports unstable InRelease
Unable to connect to deb.debian.org:http:
Err:4 http://deb.debian.org/debian bullseye-updates InRelease
Unable to connect to deb.debian.org:http:
Err:5 http://deb.debian.org/debian bullseye InRelease
Unable to connect to deb.debian.org:http:
Hit:6 http://security.debian.org/debian-security bullseye-security InRelease
Hit:7 https://mx-packages.ip-connect.vn.ua/mx/repo bullseye InRelease
Hit:8 http://repository.spotify.com stable InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
系统:
Kernel: 5.10.0-13-amd64 x86_64 bits: 64 compiler: gcc v: 10.2.1
parameters: BOOT_IMAGE=/boot/vmlinuz-5.10.0-13-amd64
Desktop: Xfce 4.16.0 tk: Gtk 3.24.24 info: xfce4-panel wm: xfwm 4.16.1 vt: 7
dm: LightDM 1.26.0 Distro: MX-21.1_x64 Wildflower April 9 2022
base: Debian GNU/Linux 11 (bullseye)
答案1
您似乎能够连接到security.debian.org
、mx-packages.ip-connect.vn.ua
和repository.spotify.com
,但deb.debian.org
失败。
Err:1 http://deb.debian.org/debian unstable InRelease
Could not connect to debian.map.fastlydns.net:80 (146.75.2.132).
- connect (113: No route to host) Unable to connect to deb.debian.org:http:
从这部分中,您可以看到 是deb.debian.org
的别名debian.map.fastlydns.net
,然后将其转换为 IP 地址 146.75.2.132。
我们来看看相关的DNS记录:
$ dig +noall +answer deb.debian.org
deb.debian.org. 3600 IN CNAME debian.map.fastlydns.net.
debian.map.fastlydns.net. 30 IN A 151.101.246.132
这是一个正在运行的基于 DNS(可能还有地理定位辅助)的全球负载均衡器。请注意,我的查询得到的 IP 地址与debian.map.fastlydns.net
您的不同,可能是因为 DNS 服务器确定该 IP 地址将是最接近我的 Debian 镜像,它是负载平衡方案的一部分。作为该方案一部分的 Debian 镜像服务器应与 fastlydns.net 的负载平衡器系统进行通信,报告其状态和当前负载级别。
另请注意,第二列中的生存时间 (TTL) 值非常短:第一行的 CNAME 记录为 3600 秒,而第二行的 A 记录仅为 30 秒。
如果我们重复查询,我们应该看到 TTL 数字倒计时:
$ dig +noall +answer deb.debian.org
deb.debian.org. 3208 IN CNAME debian.map.fastlydns.net.
debian.map.fastlydns.net. 29 IN A 151.101.246.132
$ dig +noall +answer deb.debian.org
deb.debian.org. 3207 IN CNAME debian.map.fastlydns.net.
debian.map.fastlydns.net. 28 IN A 151.101.246.132
$ dig +noall +answer deb.debian.org
deb.debian.org. 3206 IN CNAME debian.map.fastlydns.net.
debian.map.fastlydns.net. 27 IN A 151.101.246.132
$ dig +noall +answer deb.debian.org
deb.debian.org. 3205 IN CNAME debian.map.fastlydns.net.
debian.map.fastlydns.net. 26 IN A 151.101.246.132
这表明答案来自缓存 DNS 解析器服务器,当 TTL 值达到零时,缓存解析器应该使旧数据过期,并从域的权威 DNS 服务器获取新答案map.fastlydns.net
。这使得权威 DNS 服务器有机会向您指出另一个镜像,deb.debian.org
如果它得到的信息表明您最初获得的镜像有问题或太忙。
所以,你可以做什么?好吧,首先要尝试的就是等待几分钟,然后重试。如果您随后被指向不同的 IP 地址,则表明您第一次尝试时获得的 Debian 镜像服务器出现了某种问题,负载均衡器意识到了这一点,并开始将来自deb.debian.org
您的常规区域的任何查询重定向到下一个最接近的具有可用容量的 Debian 镜像服务器。
如果没有发生这种情况,则可能是镜像服务器和您的 Internet 服务提供商之间存在连接问题 - 事实上,No route to host
错误消息中的部分表明可能是这种情况。您可以对目标 IP 地址的端口 80 进行基于 TCP 的跟踪路由,以了解在检测到丢失的路由之前您可以走多远:
$ sudo traceroute -T -p 80 146.75.2.132
如果输出中的最后一个主机名似乎指的是您的 Internet 服务提供商,那么可能需要联系 ISP 的支持并报告问题。
但是,如果最后一个主机名引用了一些大型骨干通信提供商(例如Level3.net
),那么问题就离您的 ISP 更远了:如果您的 ISP 有多个不同的骨干链路,他们可能能够更改其路由以解决中断问题(在事实上,这应该会在一段时间后自动发生)。除此之外,在这种情况下您的 ISP 几乎无能为力。
如果deb.debian.org
您似乎很长时间无法联系到,您可以访问Debian 镜像列表,选择一个离您相对较近并且可以到达的,并sources.list
为其添加一个条目。
如果您已经netselect
安装了该软件包,您可以使用该netselect
命令自动为您选择一个好的 Debian 镜像站点,但如果您没有安装它并且当前手头没有 Debian 介质,那么安装它就是有点像“第二十二条军规”的问题。