使用aria2搭建離線下載服務(wù)器(校園網(wǎng)IPv6免流量)

  • 本文施工中...

簡介

實(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.htmlindex.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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 互聯(lián)網(wǎng)最大的特點(diǎn)之一就是信息的便捷分享,對(duì)一個(gè)“愛學(xué)習(xí)”的童鞋來說,沖浪的過程中或多或少都要下載一些文件、音視頻什...
    肆不肆傻閱讀 17,256評(píng)論 4 16
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,837評(píng)論 18 139
  • 關(guān)于Aria2 Aria2是一個(gè)基于命令行的開源下載工具,支持多協(xié)議、多來源(HTTP/HTTPS、FTP、Bit...
    殼叔閱讀 13,659評(píng)論 0 4
  • 該文章屬于<簡書 — Timhbw>原創(chuàng),轉(zhuǎn)載請(qǐng)注明: <簡書社區(qū) — Timhbw>http://www.jia...
    伯虔閱讀 179,525評(píng)論 49 368
  • Page 1:nginx 服務(wù)器安裝及配置文件詳解 CentOS 6.2 x86_64 安裝 nginx 1.1 ...
    xiaojianxu閱讀 8,564評(píng)論 1 41