您尚未登录。

#1 2022-09-07 23:34:34

raner
会员
注册时间: 2021-09-07
帖子: 4

reflector报错URLError: <urlopen error [Errno 101] Network is unreachable

今天在virtualbox(6.1.36 windows host)虚拟机中安装archlinux的时候使用reflector更新镜像列表的时候遇到如下报错,原因是什么?如何让reflector恢复正常?

root@archiso ~ # reflector --country China --age 12 --sort rate --save /etc/pacman.d/mirrorlist
error: failed to retrieve mirrorstatus data: URLError: <urlopen error [Errno 101] Network is unreachable>

但是另一台不在同一网络中的、昨天刚pacman -Syyu更新过的机器运行同样的命令则输出正常如下:

[root@arch ~]$ sudo reflector --country China --age 12 --sort rate --connection-timeout 60 --download-timeout 60
[2022-09-07 22:18:20] WARNING: failed to rate rsync download (rsync://mirrors.neusoft.edu.cn/archlinux/community/os/x86_64/community.db): [Errno 2] No such file or directory: 'rsync'
[2022-09-07 22:19:36] WARNING: failed to rate rsync download (rsync://mirrors.bfsu.edu.cn/archlinux/community/os/x86_64/community.db): [Errno 2] No such file or directory: 'rsync'
[2022-09-07 22:20:36] WARNING: failed to rate http(s) download (http://mirrors.hit.edu.cn/archlinux/community/os/x86_64/community.db): Download timed out after 60 second(s).
################################################################################
################# Arch Linux mirrorlist generated by Reflector #################
################################################################################

# With:       reflector --country China --age 12 --sort rate --connection-timeout 60 --download-timeout 60
# When:       2022-09-07 14:20:36 UTC
# From:       https://archlinux.org/mirrors/status/json/
# Retrieved:  2022-09-07 14:16:07 UTC
# Last Check: 2022-09-07 14:17:08 UTC

Server = http://mirrors.163.com/archlinux/$repo/os/$arch
Server = https://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.xjtu.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.sjtug.sjtu.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = rsync://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch
Server = rsync://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.hit.edu.cn/archlinux/$repo/os/$arch

无效的解决方案:

  1. Google检索:error: failed to retrieve mirrorstatus data: URLError: <urlopen error [Errno 101] Network is unreachable>  :看了前10个和第一页其他感觉有关系的结果,但是没遇到一样的报错信息,有的是errno -3或者timeout等等,相关的检查网络的操作放在下面的环境信息里了

  2. 上面的检索结果里有一个提到了完全一致的报错信息https://www.yidajiabei.xyz/posts/arch-s … and-usage/,说是代理的问题,但是另一台正常的机器并没有代理,所以我认为不是这个问题

  3. Google检索:site:archlinuxcn.org [Errno 101]  :发现了 https://bbs.archlinuxcn.org/viewtopic.php?id=4835,尝试了讲pacman.conf中的两行“#XferCommand = /usr/bin/curl -L -C - -f -o %o %u”“#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u”分别取消注释,但是不行

环境信息如下:

镜像版本:
八月、九月两个镜像都会报错
archlinux-2022.08.05-x86_64.iso
archlinux-2022.09.03-x86_64.iso

网络情况:
ping baidu.com和8.8.8.8都是通的
设置了一个端口转发,将虚拟机的22转发到主机,但是直接在虚拟机中执行reflector命令也不行
ip a输出如下

root@archiso ~ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:c0:1c:78 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 metric 100 brd 10.0.2.255 scope global dynamic enp0s3
       valid_lft 85981sec preferred_lft 85981sec
    inet6 fe80::a00:27ff:fec0:1c78/64 scope link
       valid_lft forever preferred_lft forever

其他:
手动直接改mirrorlist是可以正常使用pacman的

如果有排查问题的流程、搜索、问题描述不清楚等问题希望也一并指出

离线

#2 2022-09-07 23:48:05

SamLukeYes
会员
所在地: Canton, China
注册时间: 2020-07-19
帖子: 320
个人网站

Re: reflector报错URLError: <urlopen error [Errno 101] Network is unreachable

不建议用 reflector,直接手搓 mirrorlist,只写你觉得比较好用的个别镜像站

离线

#3 2022-09-08 11:28:53

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,917
个人网站

Re: reflector报错URLError: <urlopen error [Errno 101] Network is unreachable

网络不可达就 ip r 看一下路由表。

离线

#4 2022-09-09 00:35:51

raner
会员
注册时间: 2021-09-07
帖子: 4

Re: reflector报错URLError: <urlopen error [Errno 101] Network is unreachable

依云 说:

网络不可达就 ip r 看一下路由表。

命令输出如下,我没用过ip route命令,看到回复后简单搜索了一下,但是似乎没什么奇怪的?

root@archiso ~ # ip route | column -t
default      via  10.0.2.2  dev    enp0s3  proto  dhcp  src  10.0.2.15  metric  100
10.0.2.0/24  dev  enp0s3    proto  kernel  scope  link  src  10.0.2.15  metric  100
10.0.2.2     dev  enp0s3    proto  dhcp    scope  link  src  10.0.2.15  metric  100
192.168.3.1  via  10.0.2.2  dev    enp0s3  proto  dhcp  src  10.0.2.15  metric  100

离线

#5 2022-09-09 00:37:24

raner
会员
注册时间: 2021-09-07
帖子: 4

Re: reflector报错URLError: <urlopen error [Errno 101] Network is unreachable

SamLukeYes 说:

不建议用 reflector,直接手搓 mirrorlist,只写你觉得比较好用的个别镜像站

目前使用了手写的方法,但是还是好奇为什么会出现这个问题,另外想问为什么不推荐reflector?是因为会经常出这种怪问题吗?

离线

#6 2022-09-09 01:27:34

SamLukeYes
会员
所在地: Canton, China
注册时间: 2020-07-19
帖子: 320
个人网站

Re: reflector报错URLError: <urlopen error [Errno 101] Network is unreachable

raner 说:

目前使用了手写的方法,但是还是好奇为什么会出现这个问题,另外想问为什么不推荐reflector?是因为会经常出这种怪问题吗?

主要是 reflector 太复杂了,它的各种排序依据也不一定能客观地反映镜像站的状况,不如根据口碑和长期使用体验来手动选择镜像站。定期跑 reflector 还会让 mirrorlist 变得不稳定,让你的下载体验时好时坏,甚至可能间接导致部分更新。

离线

#7 2022-09-09 09:46:13

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,917
个人网站

Re: reflector报错URLError: <urlopen error [Errno 101] Network is unreachable

192.168.3.1  via  10.0.2.2  dev    enp0s3  proto  dhcp  src  10.0.2.15  metric  100

这条就挺奇怪的。你这样能 ping 通 192.168.3.1 么?

另外你为什么要 column -t 啊。这样对齐是对齐了,但是对齐的东西又不一样。

离线

#8 2022-09-11 00:39:58

raner
会员
注册时间: 2021-09-07
帖子: 4

Re: reflector报错URLError: <urlopen error [Errno 101] Network is unreachable

依云 说:
192.168.3.1  via  10.0.2.2  dev    enp0s3  proto  dhcp  src  10.0.2.15  metric  100

这条就挺奇怪的。你这样能 ping 通 192.168.3.1 么?

另外你为什么要 column -t 啊。这样对齐是对齐了,但是对齐的东西又不一样。

可以ping通的,虚拟机使用的virtualbox的nat模式(不是nat网络),宿主机是直接插在路由器上的,路由器的地址是192.168.3.1

用column是因为看的文章里这么用的,经提醒发现确实是只有看起来齐了...

最近编辑记录 raner (2022-09-11 00:40:45)

离线

页脚