VPS搭建離線下載服務器——后網盤時代


動機

由於學習的需要,在國外某服務器廠商購買了vps服務(至於是哪個廠商就不說啦)。但是呢,就算用作梯子,一個月1T的流量總是用不完。最經覺得自己營養充足,想找點電影看看。
無奈現在百度網盤的速度真的感人,一年的百度網盤超級會員貴得不要不要的,並且百度的離線下載並不是真的離線,他只是把自己服務器上有的文件拉給你而已。如果想找點稀缺的資源,百度網盤就是個雞肋啊,摔!

誒,那能不能利用vps來搭建自己的離線下載服務器呢?這樣既能利用多余的帶寬資源,又能提高下載速度,豈不美哉!帶着這個疑問,我在某個寂寞的晚上,開始了搭建。

搭建過程

機器配置

發行版:CentOS 6.9
RAM: 512M
CPU: 單核
帶寬: 1000Mbps

這個機器配置不算高,作為下載服務器也是綽綽有余了。

工具選擇

經過一番搜索,選擇了作為部署的工具 transmission + vsftpd + nginx + aria2c。

  • transmission, transmission-daemon: 作為種子、磁力的客戶端,作為離線下載的核心工具。
  • vsftpd:用於搭建ftp, 來對文件下載文件進行管理(可憐的vps只有10G的磁盤空間 T_T)
  • nginx :高性能的nginx用來作為靜態文件服務器。
  • aria2c:多線程下載器,從nginx的展示的文件列表中高速下載我們離線好的文件。

部署實踐

1. 安裝transmission,修改配置並啟動服務

  • 安裝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
  • 修改配置並啟動transmission服務
    在路徑/var/lib/transmission/.config/transmission 下的 settings.json 文件就是transmission的配置文件
    里面有一大堆配置.我們需要修改下面的配置,這樣就可以使用遠程軟件對我們的tranmission進行操控
"rpc-authentication-required": true,  
"rpc-enabled": true, 
"rpc-password": "遠程調用的密碼", 
"rpc-whitelist-enabled": false,
"rpc-username": "遠程調用的用戶名", 
  • 啟動transmission服務

$ sudo service transmission-daemon start

於是我們就能夠通過 http://host_ip:9091 進行訪問transmission服務.進行了一下測試,速度還是可以的,峰值速度有30MB/s

另外我們還可以安裝 Transmission-Remote-GUI 來對transmission進行操控,而不用訪問頁面, Linux(Mint)下在應用商店就能夠下載. 操作方式和uTorrent類似
GUI界面:

2. vsftpd 搭建ftp服務器

搭建ftp服務器並不是用來下載文件的,通過ftp下載文件發現速度奇慢.所以ftp服務器的作用是用來對文件進行管理的, 一般來說就是刪除操作.

  • 安裝vsftpd
    $ yum install -y vsftpd

我們使用Linux用戶來登錄,不使用虛擬用戶(因為要裝數據庫,麻煩)
因為vsftpd默認不允許使用root登錄所以我們要添加用戶

  • 添加用戶
$ useradd ftpuser
$ passwd ftpuser

修改ftpuser的home目錄為transmission的下載目錄

$ usermod -d /var/lib/transmission/Downloads ftpuser
$ rm -rf /home/ftpuser
  • 修改vsftpd配置文件(/etc/vsftpd/vsftpd.conf)
    對配置文件如下:
# 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目錄.

  • 啟動vsftpd
    sudo service vsftpd start

這樣我們就能使用ftp對transmission下載的文件進行管理.

3. nginx 搭建靜態文件服務器

利用nginx作為靜態資源的服務器,提供已下載資源的展示
安裝nginx的操作網上有一堆教程.作為后續的填充.

主要說一說配置

在nginx的配置文件下(/etc/nginx/conf.d/default.conf)這么進行修改

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;
    }

啟動nginx服務就可以通過8090端口獲得文件列表了.

4. aria2c 下載文件

aria2c 用於從服務器上下載文件, 安裝於自己的機器上.

主要說一下怎么通過aria2c多線程加速下載

在aria2c中有幾個參數和多線程下載有關

  • 參數x : --max-connection-per-server=<NUM>, 每個服務器最大的連接數, 默認是1
  • 參數s: --split=<N>, 指每個文件下載連接數,默認5,-s受限於-x,如果s默認 x大於5時, x也會受限與s

所以對於大文件來說,將x和s參數適當提高能提高下載速度.


參考鏈接:
How To Install Transmission BitTorrent Client on CentOS 6
Linux下搭建ftp服務器


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM