Fedora
為什麼 yum 將 dl.google.com 解析為 IPv6 地址?
我在 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 如何解析主機名的唯一方法)。
要僅解析 IPv4 地址,只需添加
ip_resolve=4
或ip_resolve=ipv4
配置到yum.conf
(man yum.conf
更多幫助請參閱)。對於 Fedora,使用 root 帳戶從終端執行以下命令:echo "ip_resolve=4" >> /etc/yum.conf
要僅解析 IPv6 地址,請將
ip_resolve=4
上面更改為ip_resolve=6
.其他節目
wget
和curl
# 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