Linux的命令行文件下載加速神器,快到飛起
如果你是那種經常下載和嘗試各種Linux發行版的人,我們確信你會喜歡下載加速器。
在本指南中,我們將向您介紹Axel,它是一個輕量級的wget克隆,沒有依賴關系(除了gcc和makeutils)。
axel可以安裝在任何地方,不僅可以用于通過HTTP/FTP鏈接同時下載多個文件,還可以加快它們的速度。
安裝Axel(適用于Linux的命令行下載加速器)
正如我們前面提到的,axel不僅僅是另一個下載工具。它通過使用多個連接從目標檢索文件來加速HTTP和FTP下載,還可以配置為使用多個鏡像。
如果這還不足以讓您有動力嘗試它,讓我們添加以下內容:axel支持自動中止和恢復在給定時間后無響應或不返回任何數據的連接。
此外,如果您有這樣做的權限,您可以利用axel來打開到一個服務器的多個同時進行的FTP連接,以便成倍地增加每個連接所分配的帶寬。
如果不允許這樣做或不確定,可以打開多個服務器的連接,并同時從所有服務器下載。
最后但并非最不重要的一點是,axel與其他Linux下載加速器的不同之處在于,它在下載時將所有數據放在一個文件中,而不是將數據寫入單獨的文件并在后期加入它們。
在CentOS/RHEL 8/7中,你需要啟用EPEL存儲庫來安裝axel:
- linuxmi@linuxmi:~/www.linuxmi.com$ yum install epel-release
- linuxmi@linuxmi:~/www.linuxmi.com$ yum install axel
在Fedora中,它可以從默認存儲庫中獲得。
- linuxmi@linuxmi:~/www.linuxmi.com$ yum install axel
- linuxmi@linuxmi:~/www.linuxmi.com$ dnf install axel [在 Fedora 23 以上版本]
在Debian和衍生工具如Ubuntu和Linux Mint中,你可以通過aptitude直接安裝axel:
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo aptitude install axel
在Arch Linux和相關發行版(例如Manjaro Linux和OpenSUSE Linux)上,可以直接使用以下命令安裝axel:
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo pacman -S axel [在Arch/Manjaro 上]
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo zypper install axel [在 OpenSUSE 上]
配置Axel – Linux下載加速器
您可以使用/etc/axelrc配置axel,并在調用它時在命令行中傳遞所需的其他選項。該配置文件已被詳細記錄,我們將在此處列舉最有用的選項:
reconnect_delay是axel在再次嘗試開始與服務器的新連接之前將等待的秒數。
max_speed是不言自明的。值以每秒字節數(B/s)為單位。考慮到可用帶寬后,您可能需要將此變量設置為適當的值。這將幫助您防止axel在下載時占用大量帶寬。
重要提示:請注意,實際最大下載速率取決于您的網絡連接–不用說,如果您的Internet連接最大速度為1.22 MB / s,則將max_speed設置為5 MB/s也無濟于事。如你在下面的示例中看到的-我只是留下那個值來說明這一點)。
num_connections是axel將嘗試啟動的最大連接數。推薦值(4)在大多數情況下就足夠了,并且主要是出于尊重其他FTP用戶的考慮而給出的。請注意,某些服務器甚至可能不允許多個連接。
connection_timeout表示axel在嘗試中止并自動恢復之前將等待接收響應的秒數。
如果尚未在系統范圍內設置HTTP_PROXY環境變量,則http_proxy允許您設置代理服務器。此變量使用與HTTP_PROXY (http://:PORT)相同的格式。
no_proxy是本地域的列表,以逗號分隔,axel不應嘗試通過代理訪問。此設置是可選的。
buffer_size表示一次可從所有當前連接讀取的最大字節數。
verbose使您可以選擇是否在屏幕上打印與下載相關的消息。如果要禁用它,則將其設置為0;如果仍要查看消息,則將其設置為1。
如果有多個接口,則可以使用接口列出可以訪問Internet的網絡接口。如果未明確設置,則axel將使用路由表中的第一個接口。
更多的配置選項使用如下命令:
- linuxmi@linuxmi:~/www.linuxmi.com$ axel --help
如果仔細看,您會發現大多數命令行選項與配置文件中的選項相似。另外,-o(-output)選項允許您指定輸出文件名。
如果使用,它將覆蓋源文件名。如果您設置了任何命令行選項,它們將覆蓋配置文件中設置的那些選項。
如何在Linux中使用Axel更快地下載文件
我們將使用配置文件中的以下設置(取消注釋相應的行):
- reconnect_delay = 20
- max_speed = 500000
- num_connections = 4
- connection_timeout = 30
- buffer_size = 10240
- verbose = 1
來自:https://www.linuxmi.com/axel-linux-xiazai.html
現在,我們將使用wget和axel比較HTTP和FTP鏈接的下載時間。您可以選擇任何大小的任何文件,但為簡單起見,我們將從以下位置下載100 MB的文件:
ftp://speedtest:speedtest@ftp.otenet.gr/test100Mb.db
http://speedtest.ftp.otenet.gr/files/test100Mb.db
比較FTP和Axel下載時間
使用wget進行FTP下載:
100.00M 平均205KB/s 用時 8m 7s s
- linuxmi@linuxmi:~/www.linuxmi.com$ wget ftp://speedtest:speedtest@ftp.otenet.gr/test100Mb.db
使用axel的FTP下載:
已下載 100 兆字節,用時 37 second(s)。(平均2734.36 KB/s)
- linuxmi@linuxmi:~/www.linuxmi.com$ axel -n 10 --output=axel-test100Mb.db ftp://speedtest:speedtest@ftp.otenet.gr/test100Mb.db
比較HTTP和Axel下載時間
使用wget的HTTP下載(平均226 KB/s):
- linuxmi@linuxmi:~/www.linuxmi.com$ wget http://speedtest.ftp.otenet.gr/files/test100Mb.db
使用axel的HTTP下載(平均2458.08 KB/s):
- linuxmi@linuxmi:~/www.linuxmi.com$ axel -n 10 --output=axel-test100Mb.db http://speedtest.ftp.otenet.gr/files/test100Mb.db
從上面我們進行的測試的結果中可以看到,axel可以大大加快FTP或HTTP下載的速度。
總結
在本文中,我們已經解釋了如何使用axel(FTP/HTTP下載加速器),并展示了它比wget等其他程序執行得更快的原因,因為它能夠打開多個同時連接到遠程服務器的連接。
我們希望通過本文的介紹能激發你嘗試axel。如果你對本文有任何疑問或意見,請使用下面的留言欄告訴我們。我們期待著收到你的反饋。