- 本文施工中...
簡介
實(shí)現(xiàn)效果:在VPS主機(jī)上安裝aria2下載軟件用作離線下載,能夠遠(yuǎn)程管理下載,下載完成后能夠通過HTTP(或其他任何你愿意的方式)從VPS取回,若VPS擁有IPv6地址,校園網(wǎng)用戶可以免IPv4流量取回。
此VPS可以兼作aria2下載機(jī)和ss番強(qiáng)代理機(jī)...
不足:aria2本身不支持刪除下載任務(wù)中的文件,所以,不論是下載完成后已經(jīng)不需要的文件,還是刪除任務(wù)放棄下載的文件,都要手動(dòng)登陸主機(jī)去刪除。
需要條件
運(yùn)行Linux操作系統(tǒng)的VPS一個(gè),本文以Debian 9為例。
校園網(wǎng)IPv6用戶,可以考慮使用Vultr的Storage Instance套餐主機(jī),5美刀/月,包括一個(gè)125GB的HDD,雖然HDD較慢,但相比20GB的SSD明顯更適合用作下載。
- 優(yōu)先速度,使用Los Angeles主機(jī),北美西部訪問延遲較低,速度較快。
- 優(yōu)先容量,使用New York(NJ)主機(jī),目前可以免費(fèi)領(lǐng)取一個(gè)50G空間的Block Storage,這個(gè)空間好像是SSD的,但在系統(tǒng)里是另一塊硬盤,管理稍有不便。
- IPv4用戶可以使用Tokyo主機(jī),多數(shù)情況下訪問速度比北美快,由于IPv6要繞路北美,反而比美國西部的主機(jī)更慢。
(更新,125G的HDD機(jī)現(xiàn)在常年售罄狀態(tài)...)
VPS上安裝、配置Aria2
- 安裝
在Ubuntu、Debian上安裝Aria2非常方便,SSH遠(yuǎn)程登錄VPS后執(zhí)行如下命令即可:
# apt update
# apt install aria2
其他操作系統(tǒng)可以訪問aria2官網(wǎng)獲取下載、安裝信息。
- 配置&啟動(dòng)
aria2最簡單的運(yùn)行方式是$ aria2c <download-url-path>
,即會(huì)從給出的url下載文件。但我們希望它能記住一些設(shè)置,常駐后臺(tái)運(yùn)行。aria2啟動(dòng)時(shí)會(huì)首先嘗試從$HOME/.aria2/aria2.conf
讀取配置文件,對(duì)于一般VPS上我們都用root賬戶登錄,那么目錄即為/root/.aria2/aria2.conf
。此外,可以在啟動(dòng)時(shí)加入--conf-path
參數(shù)手動(dòng)指定配置文件位置,也可以通過--no-conf
強(qiáng)制不讀取配置文件。
- 首先創(chuàng)建配置文件:
# cd ~ # 進(jìn)入HOME目錄
# mkdir .aria2 # 創(chuàng)建文件夾
# cd aria2 # 進(jìn)入文件夾
# touch aria2.conf # 創(chuàng)建配置文件
# touch aria2.session # 會(huì)話文件,若開啟session會(huì)用到
- 使用vim或其他編輯器編輯配置文件,可參考如下,
#
之后為注釋內(nèi)容,不起配置作用
##### RPC Options #####
# 開啟JSON-RPC/XML-RPC服務(wù),從而能夠通過其接口控制aria2,默認(rèn)為true
enable-rpc=true
# 指定訪問端口號(hào),默認(rèn)6800
rpc-listen-port=6800
# 允許所有訪問來源,web控制界面跨域需要,默認(rèn)false
rpc-allow-origin-all=true
# 允許除local loopback以外的網(wǎng)卡訪問,默認(rèn)false,遠(yuǎn)程控制需要
rpc-listen-all=true
# 外部訪問安全令牌,強(qiáng)烈建議設(shè)置token并記住
rpc-secret=123456
# 若不設(shè)置token,也可通過用戶名密碼訪問,現(xiàn)版本不建議使用
# rpc-user=<username>
# rpc-passwd=<passwd>
##### Advance Options #####
# 以守護(hù)進(jìn)程方式后臺(tái)運(yùn)行,默認(rèn)為false,也可在啟動(dòng)aria2c時(shí)加上-D選項(xiàng)達(dá)到相同效果
daemon=true
# 磁盤緩存,可設(shè)為0禁用,默認(rèn)16M。
disk-cache=16M
# 磁盤空間分配模式,可選none,prealloc,trunc,falloc,默認(rèn)prealloc
# 若完整分配,官方建議ext4、NTFS使用falloc快速分配,可以瞬間完成分配
# FAT32、ext3建議使用prealloc,如果此時(shí)使用falloc分配時(shí)間和prealloc相當(dāng),分配時(shí)會(huì)造成aria2卡頓
file-allocation=falloc
# 使用會(huì)話文件保存信息,并能夠從意外錯(cuò)誤(斷電等)錯(cuò)誤中恢復(fù)
save-session=/root/.aria2/aria2.session
# 指定開啟時(shí)讀取會(huì)話文件的位置
input-file=/root/.aria2/aria2.session
# 定期保存會(huì)話,默認(rèn)0為只在退出時(shí)保存
save-session-interval=60
##### Basic Options #####
# 下載路徑
dir=/root/Downloads
# 最大同時(shí)下載任務(wù)數(shù)量,默認(rèn)為5
max-concurrent-downloads=20
# 若下載速度低于此值(Byte/s),會(huì)被自動(dòng)暫停,速度可以有K或M等后綴,對(duì)BT下載無效
#lowest-speed-limit=0
# 每個(gè)下載任務(wù)對(duì)單個(gè)服務(wù)器最大的鏈接數(shù)量,默認(rèn)為1
max-connection-per-server=10
# 任務(wù)分塊大小,當(dāng)下載文件大小大于兩倍于此設(shè)置時(shí),會(huì)被分塊下載,默認(rèn)20M
min-split-size=20M
# 任務(wù)分塊數(shù)量,默認(rèn)為5
split=10
- 可以通過偽裝方式進(jìn)行PT下載,參考下列設(shè)置,但請(qǐng)謹(jǐn)慎嘗試
# DHT(若torrent禁用,即使設(shè)置為true也不會(huì)啟用)
# enable-dht=false
# enable-dht6=false
# 本地查找(若torrent禁用,即使設(shè)置為true也不會(huì)啟用)
# bt-enable-lpd=false
# 本地peer交換(若torrent禁用,即使設(shè)置為true也不會(huì)啟用)
# enable-peer-exchange=false
# 客戶端偽裝
peer-id-prefix=-TR2770-
user-agent=Transmission/2.77
在寫好配置文件后,若配置文件包括daemon=true
,那么運(yùn)行aria2c
# aria2c
aria2即會(huì)在后臺(tái)運(yùn)行。
通過Web管理Aria2
比較靠譜的Aria2 Web管理界面有webui-aria2, AriaNG, yaaw三種,介紹如下:
- webui-aria2 (Github鏈接)
歷史相對(duì)悠久,功能相對(duì)穩(wěn)定,足夠全面,可以在本地直接用瀏覽器打開index.html操作,也可以部署在Web服務(wù)器中,配置信息保存在瀏覽器Cookie中。 - yaaw (Github鏈接)
運(yùn)行方式和webui-aria2相似,界面相對(duì)簡單很多。 - AriaNG (Github鏈接)
分為Web和本地應(yīng)用兩個(gè)版本,Web需要部署到Web服務(wù)器上,本地應(yīng)用是可以在Windows或macOS下直接運(yùn)行的應(yīng)用。比較年輕,功能齊全,作者比較積極。
其中webui-aria2和yaaw相對(duì)較為方便,從Github右側(cè)的Clone or download
按鈕中,下載zip,或者git clone到本地,打開index.html就可以使用。設(shè)置信息保存在瀏覽器Cookie中。也可以將其放到Web容器中,可以參考AriaNG的安裝配置方法。
對(duì)于AriaNG,個(gè)人認(rèn)為管理能力更強(qiáng)一些,其官網(wǎng)如下:
http://ariang.mayswind.net/zh_Hans/
release發(fā)布地址:
https://github.com/mayswind/AriaNg/releases
最新每日構(gòu)建:
https://github.com/mayswind/AriaNg-DailyBuild/archive/master.zip
安裝、配置AriaNG
如果服務(wù)器上沒有Web服務(wù)器軟件,可以安裝nginx:
# apt install nginx
在nginx配置文件/etc/nginx/sites-available/default
中,可以看到root /var/www/html
一行,代表nginx的默認(rèn)Web服務(wù)器以文件夾var/www/html
為根目錄,下載得到的AriaNG程序直接放到這里就可以。
下載Aria2,例如當(dāng)前版本為0.2.0,并解壓、移動(dòng)到相應(yīng)目錄:
# wget https://github.com/mayswind/AriaNg/releases/download/0.2.0/aria-ng-0.2.0.zip
# unzip aria-ng-0.2.0.zip -d ./airang
# sudo mv ./airang/* /var/www/html/
然后重啟nginx服務(wù)
# service nginx restart
此時(shí)用瀏覽器訪問這臺(tái)主機(jī)的地址,應(yīng)當(dāng)能夠看到AriaNG的頁面。
在AriaNG頁面的左邊欄中的AriaNG設(shè)置
中配置Aria2的連接設(shè)置。Aria 2 RPC地址設(shè)置為下載機(jī)的IP地址或域名,設(shè)置連接密鑰,其他一般保持默認(rèn)即可。
如果AriaNG部署在VPS中,那么安全起見,建議給Web設(shè)置訪問密碼。
首先安裝apache2-utils,其包含用于生成密鑰文件的工具h(yuǎn)tpasswd
# apt install apache2-utils
進(jìn)入計(jì)劃用于存放密鑰文件的文件夾,例如/var/www/auth
# cd /var/www
# sudo mkdir auth
# cd auth
在這里使用htpasswd生成驗(yàn)證所需的文件
$ htpasswd -c -d ./nginx_auth [你希望的登錄用戶名,例如admin]
然后根據(jù)提示設(shè)置密碼,生成文件nginx_auth
使用編輯器打開/etc/nginx/sites-available/default
在server
后的大括號(hào)內(nèi)補(bǔ)充:
auth_basic "Authrization";
auth_basic_user_file /var/www/auth/nginx_auth;
重啟nginx
$ sudo service nginx restart
此時(shí)再訪問AriaNG頁面會(huì)要求用戶名、密碼。
配置文件取回功能
我們希望aria2下載好文件后,我們能夠通過瀏覽器訪問下載目錄,并能下載文件。可以搭建HTTP或FTP服務(wù)來實(shí)現(xiàn)這一功能。通常HTTP和FTP搭建的文件服務(wù),可以使用下載工具,一些服務(wù)軟件(如nginx)還可以支持多線程下載、斷點(diǎn)續(xù)傳。
使用nginx搭建HTTP文件服務(wù)
這里使用另一個(gè)端口號(hào)(8080)做文件服務(wù)器,若要訪問下載目錄,在瀏覽器輸入http://[主機(jī)IP地址或域名]:8080
訪問。
我們?cè)?code>/etc/nginx/sites-available/下新建一個(gè)站點(diǎn)配置
# cd /etc/nginx/sites-available/
# touch file # 創(chuàng)建一個(gè)名為file的文件
打開file,做如下配置:
server {
listen 8080 default_server;
listen [::]:8080 default_server;
root /root/Downloads; # 這里使用下載文件夾的絕對(duì)路徑
server_name _;
auth_basic "Authrization";
auth_basic_user_file /var/www/auth/nginx_auth; # 同樣要求密碼登陸
location / { # 使nginx自動(dòng)生成文件列表
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
}
然后轉(zhuǎn)移到/etc/nginx/sites-enabled/
下,創(chuàng)建配置文件的軟鏈接。
# cd /etc/nginx/sites-enabled/
# ln -s /etc/nginx/sites-available/file ./file
最后打開/etc/nginx/nginx.conf
,修改首行的內(nèi)容如下:
# user www-data;
user root; # 或者其他具有下載文件夾訪問權(quán)限的用戶名稱
從而避免因默認(rèn)的www-data
用戶無權(quán)訪問下載文件夾導(dǎo)致的403錯(cuò)誤。
至此,可以通過http://[主機(jī)IP地址或域名]:8080
看到下載文件夾下的文件。注意的是這里不能有index.html
、index.php
等Web默認(rèn)的首頁名稱,否則nginx會(huì)直接加載這些頁面。
通過aria2下載百度云、115網(wǎng)盤內(nèi)容
Todo
開啟TCP-BBR提高取回速度
uname -r
查看內(nèi)核,需要為4.9或更高,否則需要手動(dòng)升級(jí)Linux內(nèi)核。
如下操作開啟TCP BBR
modprobe tcp_bbr
echo "tcp_bbr" >> /etc/modules-load.d/modules.conf
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
查看系統(tǒng)設(shè)置,確認(rèn)已經(jīng)打開BBR
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control
https://www.vultr.com/docs/how-to-deploy-google-bbr-on-centos-7