動(dòng)機(jī)
由于學(xué)習(xí)的需要,在國(guó)外某服務(wù)器廠商購(gòu)買了vps服務(wù)(至于是哪個(gè)廠商就不說(shuō)啦)。但是呢,就算用作梯子,一個(gè)月1T的流量總是用不完。最經(jīng)覺(jué)得自己營(yíng)養(yǎng)充足,想找點(diǎn)電影看看。
無(wú)奈現(xiàn)在百度網(wǎng)盤的速度真的感人,一年的百度網(wǎng)盤超級(jí)會(huì)員貴得不要不要的,并且百度的離線下載并不是真的離線,他只是把自己服務(wù)器上有的文件拉給你而已。如果想找點(diǎn)稀缺的資源,百度網(wǎng)盤就是個(gè)雞肋啊,摔!
誒,那能不能利用vps來(lái)搭建自己的離線下載服務(wù)器呢?這樣既能利用多余的帶寬資源,又能提高下載速度,豈不美哉!帶著這個(gè)疑問(wèn),我在某個(gè)寂寞的晚上,開(kāi)始了搭建。
搭建過(guò)程
機(jī)器配置
發(fā)行版:CentOS 6.9
RAM: 512M
CPU: 單核
帶寬: 1000Mbps
這個(gè)機(jī)器配置不算高,作為下載服務(wù)器也是綽綽有余了。
工具選擇
經(jīng)過(guò)一番搜索,選擇了作為部署的工具 transmission + vsftpd + nginx + aria2c。
- transmission, transmission-daemon: 作為種子、磁力的客戶端,作為離線下載的核心工具。
- vsftpd:用于搭建ftp, 來(lái)對(duì)文件下載文件進(jìn)行管理(可憐的vps只有10G的磁盤空間 T_T)
- nginx :高性能的nginx用來(lái)作為靜態(tài)文件服務(wù)器。
- aria2c:多線程下載器,從nginx的展示的文件列表中高速下載我們離線好的文件。
部署實(shí)踐
1. 安裝transmission,修改配置并啟動(dòng)服務(wù)
安裝transmission及transmission-daemon
$ wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
$ rpm -ivh epel-release-6-8.noarch.rpm
$ yum -y upgrade
$ yum -y install transmission transmission-daemon
修改配置并啟動(dòng)transmission服務(wù)
在路徑/var/lib/transmission/.config/transmission 下的 settings.json 文件就是transmission的配置文件
里面有一大堆配置.我們需要修改下面的配置,這樣就可以使用遠(yuǎn)程軟件對(duì)我們的tranmission進(jìn)行操控
"rpc-authentication-required": true,
"rpc-enabled": true,
"rpc-password": "遠(yuǎn)程調(diào)用的密碼",
"rpc-whitelist-enabled": false,
"rpc-username": "遠(yuǎn)程調(diào)用的用戶名",
啟動(dòng)transmission服務(wù)
$ sudo service transmission-daemon start
于是我們就能夠通過(guò) http://host_ip:9091 進(jìn)行訪問(wèn)transmission服務(wù).進(jìn)行了一下測(cè)試,速度還是可以的,峰值速度有30MB/s
另外我們還可以安裝 Transmission-Remote-GUI 來(lái)對(duì)transmission進(jìn)行操控,而不用訪問(wèn)頁(yè)面, Linux(Mint)下在應(yīng)用商店就能夠下載. 操作方式和uTorrent類似UI界面:
2. vsftpd 搭建ftp服務(wù)器
搭建ftp服務(wù)器并不是用來(lái)下載文件的,通過(guò)ftp下載文件發(fā)現(xiàn)速度奇慢.所以ftp服務(wù)器的作用是用來(lái)對(duì)文件進(jìn)行管理的, 一般來(lái)說(shuō)就是刪除操作.
安裝vsftpd
$ yum install -y vsftpd
我們使用Linux用戶來(lái)登錄,不使用虛擬用戶(因?yàn)橐b數(shù)據(jù)庫(kù),麻煩)
因?yàn)関sftpd默認(rèn)不允許使用root登錄所以我們要添加用戶
添加用戶
$ useradd ftpuser
$ passwd ftpuser
修改ftpuser的home目錄為transmission的下載目錄
$ usermod -d /var/lib/transmission/Downloads ftpuser
$ rm -rf /home/ftpuser
修改vsftpd配置文件(/etc/vsftpd/vsftpd.conf)
對(duì)配置文件如下:
# generate using cat vsftpd.conf | grep -v "#"
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ftpd_banner=Welcome to Private FTP service.
chroot_list_enable=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
local_root=/var/lib/transmission/Downloads
其中的配置 chroot_list_enable=NO表明不允許用處切換出home目錄.
啟動(dòng)vsftpd
sudo service vsftpd start
這樣我們就能使用ftp對(duì)transmission下載的文件進(jìn)行管理.
3. nginx 搭建靜態(tài)文件服務(wù)器
利用nginx作為靜態(tài)資源的服務(wù)器,提供已下載資源的展示
安裝nginx的操作網(wǎng)上有一堆教程.作為后續(xù)的填充.
主要說(shuō)一說(shuō)配置
在nginx的配置文件下(/etc/nginx/conf.d/default.conf)這么進(jìn)行修改
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
server {
listen 8090;
listen [::]:8090;
server_name localhost;
charset utf-8;
location / {
root /var/lib/transmission/Downloads;
index index.html index.htm;
}
啟動(dòng)nginx服務(wù)就可以通過(guò)8090端口獲得文件列表了.
4. aria2c 下載文件
aria2c 用于從服務(wù)器上下載文件, 安裝于自己的機(jī)器上.
主要說(shuō)一下怎么通過(guò)aria2c多線程加速下載
在aria2c中有幾個(gè)參數(shù)和多線程下載有關(guān)
參數(shù)x : --max-connection-per-server=<NUM>, 每個(gè)服務(wù)器最大的連接數(shù), 默認(rèn)是1
參數(shù)s: --split=<N>, 指每個(gè)文件下載連接數(shù),默認(rèn)5,-s受限于-x,如果s默認(rèn) x大于5時(shí), x也會(huì)受限與s
所以對(duì)于大文件來(lái)說(shuō),將x和s參數(shù)適當(dāng)提高能提高下載速度.
參考鏈接:
How To Install Transmission BitTorrent Client on CentOS 6
Linux下搭建ftp服務(wù)器