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