此前的一篇文章 中,我曾介绍过数款仍可正常使用的离线下载服务,但它们或多或少都有些局限性,如空间小、价格高、直连速度慢等。为了解决这些问题,自建是个不错的选择。

如果你的动手能力比较强,不妨试试租用一台 VPS,搭建专属于自己的离线下载服务器。在本文中,我将介绍一种基于 aria2、AriaNg 和 FileRun 的私有云盘方案,步骤相当简单,小白也可以轻松上手。

准备工作

在正式开工之前,我们需要先准备一台 VPS。考虑到离线下载对网络环境的要求,我推荐你选择一家境外服务商。

目前,市面上的主流 VPS 服务商有 VultrDigitalOceanLinodeBandwagon Host 等,基础套餐配置及定价如下,非常同质化。

如果你手头有 iOS 设备,可以试试 Cloud Speed 这款应用。它可以帮助你一键测试各服务商不同位置的 VPS 直连本地速度,选择最适合自己的那一款。

在本例中,我选用的是 Vultr 5 美元套餐,系统版本为 CentOS 7 x64,只要按照网页提示一步步操作就可以部署成功。除了信用卡和 PayPal 外,Vultr 还支持支付宝和微信付款,可以放心使用。如果你有一定 Linux 基础,也可以选择其它发行版,操作步骤类似。

VPS 部署成功后,让我们首先打开终端,输入 ssh root@你的VPS.IP,远程访问你的 VPS。如果无法正常连接,可能是由于该 IP 已因众所周知而不可说的原因被和谐,你可以通过 ping 你的VPS.IP 命令判断是否需要更换 IP 地址。

aria2

作为一款极为强大的命令行下载工具,aria2 的身影活跃于各大下载教程中。它支持 HTTP、FTP、BT、磁力等各种下载协议,占用资源少,支持多线程和远程访问,是搭建离线下载服务的不二之选。

若要安装 aria2,只需在终端执行命令 yum -y install aria2 即可。如果提示命令有误的话,可以先执行 yum -y install epel-release,添加 epel 源后再尝试。

为了确认安装成功,你可以输入命令 aria2c -v 查看 aria2 的版本号,撰写本文时最新版为 1.34.0。

安装 aria2 成功后,我们还需要为它编写配置文件。首先执行命令 mkdir ~/.aria2(路径可依喜好更改)创建存放配置的文件夹,随后执行 touch ~/.aria2/aria2.session 创建会话文件。完成以上操作后,执行 vi ~/.aria2/aria2.conf,按 i 键进入编辑模式,完工后按 Esc 键返回,再按 :wq 保存修改并退出。

在本文中,我提供了一个可直接使用的配置文件样本,你可以粘贴至 aria2.conf 文件内,注意修改 rpc-secret 为自己喜欢的密码。如果在上一步操作中选择了其它文件路径,不要忘了修改哦。


# 文件的保存路径(可自行修改)
dir=/root/Download
# 启用磁盘缓存, 0为禁用缓存
#disk-cache=32M
# 文件预分配方式, 能有效降低磁盘碎片
file-allocation=none
# 断点续传
continue=true
# 最大同时下载任务数, 运行时可修改
max-concurrent-downloads=5
# 同一服务器连接数, 添加时可指定
max-connection-per-server=5
# 最小文件分片大小, 添加时可指定
min-split-size=20M
# 单个任务最大线程数, 添加时可指定
split=5
# 整体下载速度限制, 运行时可修改
#max-overall-download-limit=0
# 单个任务下载速度限制
#max-download-limit=0
# 整体上传速度限制, 运行时可修改
#max-overall-upload-limit=0
# 单个任务上传速度限制
#max-upload-limit=0
# 禁用IPv6
disable-ipv6=true
# 从会话文件中读取下载任务
input-file=/root/.aria2/aria2.session
# 退出时保存`错误/未完成`的下载任务到会话文件
save-session=/root/.aria2/aria2.session
# 定时保存会话, 0为退出时才保存
#save-session-interval=60
# 启用RPC
enable-rpc=true
# 允许所有来源
rpc-allow-origin-all=true
# 允许非外部访问
rpc-listen-all=true
# 事件轮询方式, 取值:[epoll, kqueue, port, poll, select]
#event-poll=select
# RPC监听端口, 端口被占用时可以修改
rpc-listen-port=6800
# 设置的RPC授权令牌
rpc-secret=<token>
# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务
#follow-torrent=true
# BT监听端口, 当端口被屏蔽时使用
listen-port=6881-6999
# 单个种子最大连接数
#bt-max-peers=55
# 打开DHT功能, PT需要禁用
enable-dht=false
# 打开IPv6 DHT功能, PT需要禁用
#enable-dht6=false
# DHT网络监听端口
#dht-listen-port=6881-6999
# 本地节点查找, PT需要禁用
#bt-enable-lpd=false
# 种子交换, PT需要禁用
enable-peer-exchange=false
# 每个种子限速
#bt-request-peer-speed-limit=50K
# 客户端伪装, PT需要
peer-id-prefix=-TR2770-
user-agent=Transmission/2.77
# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种
seed-ratio=1.0
# 强制保存会话, 即使任务已经完成
#force-save=false
# BT校验相关, 默认:true
#bt-hash-check-seed=true
# 继续之前的BT任务时, 无需再次校验
bt-seed-unverified=true
# 保存磁力链接元数据为 .torrent 文件
bt-save-metadata=true

完成以上操作后,让我们输入 aria2c –conf-path=/root/.aria2/aria2.conf -D,如果没有错误提示的话,aria2 的配置工作就已经大功告成了。你可以使用 aria2c URL 下载指定链接,并在 /root/Download 文件夹中找到离线完成的文件。

为了让 aria2 开机时自动运行,我们可以编辑 vi /etc/rc.d/rc.local,加入 aria2c --conf-path=/root/.aria2/aria2.conf 这一行命令。

至此,你就已经拥有了一个简陋的离线下载服务,如果你想更直观地使用 aria2,欢迎阅读下一节内容。

如果你使用 BT 下载了侵犯版权的文件,可能会被 VPS 服务商封停,请做个好孩纸哦。

AriaNg

aria2 虽好,命令行的操作方式却令人望而却步。而 AriaNg 则允许我们在友好的 GUI 界面中使用它,并完整支持原版 aria2 的设置选项,让它像迅雷一样易用。

安装 AriaNg 前,我们需要先准备一款 Web 服务器。在本文中,我采用的是 Apache,一行命令就能搞定:sudo yum install httpd 。完成后,执行 sudo systemctl start httpd.service 就能启动 Apache。

这时,用浏览器访问你的 VPS IP 应该会看到下图所示的欢迎页面,表示 Apache 已成功启用。如果无法连接的话,可能是由于 CentOS 自带的 httpd 服务占用了 80 端口,可以通过修改监听端口来解决。

接着,让我们下载 AriaNg,你可以在其 GitHub Releases 页面找到其正式版的下载链接。撰写本文时,AriaNg 的最新版为 1.1.0,因此,要执行的命令是 wget https://github.com/mayswind/AriaNg/releases/download/1.1.0/AriaNg-1.1.0.zip

随后,执行命令 unzip AriaNg-1.1.0.zip -d /var/www/html/AriaNg,解压下载的 AriaNg 文件并将其移动至 Apache 的工作目录下。如果提示未找到 unzip 的话,请先执行 yum install -y unzip zip

现在,让我们用浏览器访问 你的VPS.IP/AriaNg,如果出现下图所示网页,就说明配置成功。在 AriaNg 设置中,填写你的 VPS 或域名地址、端口、密钥等,就可以用图形界面愉快地享受下载了。

FileRun

上一节结束后,我们就已经拥有了一个简单但高效的离线服务。如果你还想在线播放已离线的视频,并用更直观的方式管理 VPS 中的文件的话,可以试试 FileRun 这款在线文件管理系统。

在安装 FileRun 前,我们需要首先配置 MariaDBPHP。让我们从数据库开始,依次执行 sudo yum install mariadb-server mariadbsudo systemctl start mariadbsudo systemctl enable mariadb.service,安装并启动 MariaDB。

安全起见,我们不妨给 MariaDB 设置一个 root 密码。同样是在命令行,执行 sudo mysql_secure_installation,再按提示操作即可。

接下来,让我们依次输入 mysql -u root -pCREATE DATABASE filerun;GRANT ALL ON filerun.* to 'filerun'@'localhost' IDENTIFIED BY '你的密码';FLUSH PRIVILEGES;。这些命令会为 FileRun 创建一个单独的账号和数据库,不干扰其它操作。完成后,输入 exit 即可离开。

运行 FileRun 需要 PHP 5.5 以上版本,而 CentOS 7 自带的版本为 5.4。因此,我们需要首先升级 PHP,依次执行 sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmsudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpmsudo yum install php56w-fpm 即可。随后,让我们启动 PHP-FPM 并设置自启,执行 sudo systemctl enable php-fpm.servicesudo systemctl start php-fpm.service

现在,又到了喜闻乐见的编写配置文件时间。执行命令 sudo vi /etc/httpd/conf/httpd.conf,在 DirectoryIndex index.html 一行后插入 index.php,然后在 IncludeOptional conf.d/*.conf 一行前插入下方代码,保存并退出后执行 sudo systemctl restart httpd.service,重启 Apache 即可。


<IfModule proxy_module>  
  ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1
</IfModule>

下面,让我们再安装一些 PHP 模块,这次一行搞定:sudo yum install php56w-mbstring php56w-mcrypt php56w-opcache php56w-pdo php56w-mysql php56w-gd php56w-xml

不过,仍有一个 FileRun 运行所需的模块未包含在 yum 内,我们需要手动安装,相关命令依次为 cd /usr/lib64/php/modulessudo wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gzsudo tar xvfz ioncube_loaders_lin_x86-64.tar.gz

随后,让我们再编辑一个配置文件,输入 sudo vi /etc/php.d/filerun.ini,将下方代码粘贴进去,再执行 sudo systemctl restart php-fpm.service 重启 PHP-FPM 服务,就可以正式开始安装 FileRun 了。


expose_php              = Off  
error_reporting         = E_ALL & ~E_NOTICE  
display_errors          = Off  
display_startup_errors  = Off  
log_errors              = On  
ignore_repeated_errors  = Off  
allow_url_fopen         = On  
allow_url_include       = Off  
variables_order         = "GPCS"  
allow_webdav_methods    = On  
memory_limit            = 128M  
max_execution_time      = 300  
output_buffering        = Off  
output_handler          = ""  
zlib.output_compression = Off  
zlib.output_handler     = ""  
safe_mode               = Off  
register_globals        = Off  
magic_quotes_gpc        = Off  
upload_max_filesize     = 20M  
post_max_size           = 20M  
enable_dl               = Off  
disable_functions       = ""  
disable_classes         = ""  
session.save_handler     = files  
session.use_cookies      = 1  
session.use_only_cookies = 1  
session.auto_start       = 0  
session.cookie_lifetime  = 0  
session.cookie_httponly  = 1  
date.timezone            = "UTC"

zend_extension = /usr/lib64/php/modules/ioncube/ioncube_loader_lin_5.6.so

FileRun 主程序的安装步骤也比较简单,依次执行 cd /var/www/html/wget -O FileRun.zip http://www.filerun.com/download-latestsudo wget -O unzip.php http://f.afian.se/wl/?id=HS&filename=unzip.php&forceSave=1,最后输入 sudo chown -R apache:apache /var/www/html/ 赋权即可。

这时,在浏览器地址栏输入 你的VPS.IP/unzip.php,就应该会自动跳转至 FileRun 安装页面。只需要跟着提示,输入上文设置的 MariaDB 数据库名称、用户名及密码,记牢最后生成的 FileRun 用户名和密码,就能完成剩余的安装工作了。

安装完成后,第一次登录时,为了安全起见,FileRun 会要求你修改用户名及密码。你也可以创建新用户,与他人共享云服务,FileRun 免费版支持添加 3 个用户,家人共享不成问题。

现在,你已经可以愉快地使用 FileRun 管理自己的文件了。如果你想在线查看缩略图和播放视频,可以在设置中启用 ImageMagickFFmpeg 插件。FileRun 原生支持 Office 文档编辑、Markdown 预览、ePub 阅读等,功能齐全。