Fedora

為什麼 yum 將 dl.google.com 解析為 IPv6 地址?

  • March 20, 2019

我在 Fedora 18 上安裝了 Google chrome 瀏覽器。現在當我嘗試使用 更新軟體時yum upgrade,它報告以下錯誤,我無法更新 chrome。

http://dl.google.com/linux/chrome/rpm/stable/x86_64/repodata/repomd.xml: [Errno 14] curl#7 - "Failed to connect to 2404:6800:4005:c00::88: Network is unreachable"

看起來 dl.google.com 被解析為 IPv6 地址,但我不使用 IPv6,並按ping dl.google.com預期返回 IPv4 地址。

# ping dl.google.com
PING dl.l.google.com (74.125.128.93) 56(84) bytes of data.

可能的原因是什麼,我該如何解決?

預設情況下,yum 將解析主機/域名的 IPv4 和 IPv6 地址,請參見下面的 wireshark 截圖(我不知道 python 程序,所以網路流量擷取是找出 yum 如何解析主機名的唯一方法)。

yum 解析IP地址,擷取

要僅解析 IPv4 地址,只需添加ip_resolve=4ip_resolve=ipv4配置到yum.confman yum.conf更多幫助請參閱)。對於 Fedora,使用 root 帳戶從終端執行以下命令:

echo "ip_resolve=4" >> /etc/yum.conf

要僅解析 IPv6 地址,請將ip_resolve=4上面更改為ip_resolve=6.

其他節目

wgetcurl

# To resolve IPv4 address only
wget -4
curl -4

# To resolve IPv6 address only
wget -6
curl -6

host

host也有-4-6選項,但它們沒有相同的含義 wget 和 curl,它們強制host使用 IPv4/IPv6 傳輸來查詢主機名。

# To resolve IPv4 address only
host -t A

# To resolve IPv6 address only
host -t AAAA

引用自:https://unix.stackexchange.com/questions/68586