強制 wget 使用 IPV4 或 IPV6 連接下載內容


Wget 是一個命令行工具,可以使用 HTTP、HTTPS 和 FTP 協議從 Internet 下載任何內容。 支持 IPv4(Internet 協議版本 4)和 IPv6(Internet 協議 6)地址連接到 Internet。

如果出於某種原因您想使用 IPv4 或 IPv6 協議進行連接,則每次使用 wget 命令時都必須指定它。否則,您將不得不更改默認值。在本文中,我們將只看這個過程。

wget vs curl – wget 和 wget curl 命令有什麼區別?

安裝 wget

該工具默認安裝在大多數 Linux 發行版上,因此首先在終端中輸入以下命令來檢查版本:

wget --version
檢查操作系統上安裝的 Wget 版本

如果您沒有看到上述結果,您可以從命令行安裝工具,如下所示,具體取決於您的 Linux 發行版:

對於基於 Debian 和 Ubuntu 的發行版

在終端中,鍵入並運行以下命令:

sudo apt update && sudo apt install wget

對於 Fedora 工作站

Fedora 有 dnf 和 yum 包管理器,所以你可以像這樣從終端安裝任何應用程序:

sudo dnf install wget

對於 Arch Linux 和基於 Arch 的發行版:

Arch 及其衍生產品使用 pacman 作為包管理器。所以安裝過程是這樣的:

sudo pacman -S wget

強制 IPv4 和 IPv6 協議一次性使用

如果您只使用 wget 命令和 URL,默認情況下您使用 32 位 IPv4 和 128 位 IPv6 地址連接到 Internet。例如:

wget https://ftp.gnu.org/gnu/fdisk/fdisk-0.9.1.tar.bz2
默認情況下,Wget 連接到 IPv4 和 IPv6

要使用 IPv4 協議,您必須使用 –inet4-only 標誌和命令。

wget --inet4-only https://ftp.gnu.org/gnu/fdisk/fdisk-0.9.1.tar.bz2
這次只用 IPv4 下載這次只用 IPv4 下載

同樣,您可以使用 –inet6-only 標誌強制下載以 IPv6 協議開始,如下所示:

wget --inet6-only https://ftp.gnu.org/gnu/fdisk/fdisk-0.9.1.tar.bz2
僅通過 IPv6 下載文件僅通過 IPv6 下載文件

永久應用 IPv4 和 IPv6 協議

要永久強制執行該操作,您需要分別為單個用戶或所有用戶修改 ~/.wgetrc 或 /etc/wgetrc 中的 .wgetrc 文件。 使用 vim 或 nano 等文本編輯器打開文件。

vim ~/.wgetrc
# or vim /etc/wgetrc
在文本編輯器中打開 Wgetrc 文件。在文本編輯器中打開 Wgetrc 文件。

要強制 IPv4 或 IPv6,只需在文件中添加(或通過刪除 # 取消註釋)。

inet4_only = on/off

# or

inet6_only = on/off

概括

如果您不知道自己在做什麼,強烈建議您僅使用 IPv4 或 IPv6 臨時標誌。 如果您強制 IPv6 並且您的主機 DNS 沒有該連接,您將收到錯誤“失敗:沒有與主機名關聯的地址”。

參考

Archwiki – Wget