编辑:这似乎可能是电缆调制解调器的问题:根据https://test-ipv6.com/ipv6 在 Ubuntu 和 Windows 上都无法工作(双启动,同一个工作站),在我的智能手机上使用 wifi 时(即同一个电缆调制解调器)也无法工作,但在禁用 wifi 的智能手机上(即移动数据)却可以工作。所以我会联系我的 ISP。
我在一台台式电脑上安装了全新的 Ubuntu 22.04,有线互联网连接。它具有默认的网络配置设置(DHCP;来自电缆调制解调器的 IP 地址)。
通过浏览器可以正常访问互联网。
但是从命令行来看,一些程序(例如apt update
或apt upgrade
)似乎运行良好,尽管可能有点慢(?),而其他程序则失败,例如wget
:
~$ wget https://raw.githubusercontent.com/ros2/ros2/rolling/ros2.repos
--2023-05-17 13:56:57-- https://raw.githubusercontent.com/ros2/ros2/rolling/ros2.repos
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 2606:50c0:8002::154, 2606:50c0:8001::154, 2606:50c0:8000::154, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8002::154|:443... failed: Connection timed out.
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8001::154|:443... ^C
从网络浏览器访问相同的链接会立即加载该ros2.repos
文件。
添加条目“185.199.108.133 raw.githubusercontent.com”/etc/hosts
也可以解决问题:
$ wget https://raw.githubusercontent.com/ros2/ros2/rolling/ros2.repos
--2023-05-17 14:52:18-- https://raw.githubusercontent.com/ros2/ros2/rolling/ros2.repos
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 12144 (12K) [text/plain]
Saving to: ‘ros2.repos.1’
ros2.repos.1 100%[=======================================================================================================>] 11,86K --.-KB/s in 0s
2023-05-17 14:52:18 (124 MB/s) - ‘ros2.repos.1’ saved [12144/12144]
所以我认为这是ipv4
vs 的ipv6
问题。不过我不知道为什么它在浏览器中可以工作,但在终端上却不行。
关于如何调试这个问题有什么建议吗?
答案1
显然wget
IPv6 地址偶尔会出现问题。有一个选项可以设置为始终仅使用 IPv4 地址:
添加inet4_only = on
应该/etc/wgetrc
可以解决这个问题。