搭建一个自己的私有云 + 离线下载站

前言

本次实验环境如下:

  • VPS : Google Cloud Platform
  • 系统 : CentOS_7.0_64
  • 运行环境 : XAMPP 7.2
  • 私有云服务 : kodcloud
  • 离线下载 : 逗比根据地 - Aria2 一键安装管理脚本

获取权限

国内的阿里云,腾讯云等获取 root 权限很简单,我记得这两家的 CentOS 系统一般都是默认 root 权限的,但这里还是要说一下,如何开启 root 密码登陆的方式,(如果以获得 root 权限,则可以跳过这一段)。

先使用 sudo -i 切换到 root 用户,vi /etc/ssh/sshd_config: 找到 PermitRootLogin no 改成 PermitRootLogin yes 找到 PasswordAuthentication no 改成 PasswordAuthentication yes 按 Esc 输入:wq 保存退出 vi

根据系统重启 SSH 服务,其他系统请自行搜索。

sevice ssh restart # centos 6.x

systemctl restart sshd.service # centos 7.x

这样就开启用 root 用户密码登陆的权限了。但我们还不知道 root 用户的密码呢,所以输入 passwd 修改一下就可以用 xshell、putty 等工具登陆了。

Google Cloud Platform 缺只允许使用 ssh 登陆,虽然可以使用 sudo 来使用 root 权限,但发现最后还是有一些问题,就是 aria 下载的文件都是 root 用户,root 组的,而 kodexplorer 对这些下载的文件只有只读权限,很不方便,既然是个人的一些环境,所以这里就不那么考虑安全性了。

安装 XAMPP

下载:

代码语言:javascript
复制
cd ~
wget https://www.apachefriends.org/xampp-files/7.2.0/xampp-linux-x64-7.2.0-0-installer.run
chmod 777 xampp-linux-x64-7.2.0-0-installer.run

如果提示 bash: wget: command not found,就先执行一下 yum install wget

安装:

1

./xampp-linux-x64-7.2.0-0-installer.run

安装选项全部默认即可,直接回车确认。

安装 kodcloud

进入站点目录,创建网站存放目录

代码语言:javascript
复制
cd /opt/lampp/htdocs
mkdir kodcloud
cd kodcloud

下载

1

wget http://static.kodcloud.com/update/download/kodexplorer4.25.zip

安装解压工具并解压

yum install unzip

unzip kodexplorer4.25.zip

rm -rf kodexplorer4.25.zip

赋予权限

1

chmod 777 -R /opt/lampp/htdocs/kodcloud

现在访问 http://ip/kodcloud 即可访问到了,可能有人会说,我不想要这一级目录,并且还要配置域名,关于域名的配置,我们一会再说。

安装 aria2

服务端

aria2 安装脚本源地址:https://doub.bid/shell-jc4/ (需访问外国网站)

代码语言:javascript
复制
cd ~
wget -N --no-check-certificate https://softs.fun/Bash/aria2.sh && chmod +x aria2.sh && bash aria2.sh

如果上面这个脚本无法下载,尝试使用备用下载:

#wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/aria2.sh && chmod +x aria2.sh && bash aria2.sh

执行后输入 1 即可安装。

显示端

创建站点存放目录

cd /opt/lampp/htdocs

mkdir aria

cd /opt/lampp/htdocs/aria

下载

1

wget https://github.com/mayswind/AriaNg/releases/download/0.3.0/aria-ng-0.3.0.zip

解压

unzip aria-ng-0.3.0.zip

rm -rf aria-ng-0.3.0.zip

配置域名及 SSL 证书

阿里有提供免费的 SSL 证书,打开阿里云官网 -> 管理控制台 -> 左侧的安全(云盾) -> CA 证书服务。

填写相应的信息,申请两个即可,我这里申请是 pan.zhaojun1998.com 和 aria.zhaojun1998.com 的证书。

申请后几分钟内会自动通过,然后下载证书。

接下来就是如何将证书上传到服务器的问题了,可以通过前面配置的 kodcloud 云打开 http://ip/kodcloud 将证书上传进去,或 ftp 等方式。(只需要上传 数字.key 和 数字.pem 即可)

最后在 /opt/lampp/apache2 目录下建立一个文件夹 cert,将证书放进来。

然后编辑 /opt/lampp/apache2/conf/httpd.conf,将域名对应上站点路径和证书。

代码语言:javascript
复制
Alias /bitnami/ "/opt/lampp/apache2/htdocs/"
Alias /bitnami "/opt/lampp/apache2/htdocs"

<Directory "/opt/lampp/apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<VirtualHost :80> ## http 自动跳转 https
ServerName pan.zhaojun1998.com
RewriteEngine On
RewriteRule ^/(.
)$ https://pan.zhaojun1998.com/$1 [R=301]
</VirtualHost>
<VirtualHost :80> ## http 自动跳转 https
ServerName aria.zhaojun1998.com
RewriteEngine On
RewriteRule ^/(.
)$ https://aria.zhaojun1998.com/$1 [R=301]
</VirtualHost>
<virtualhost *:443> ## https 配置
SSLEngine on
SSLCertificateFile /opt/lampp/apache2/cert/214413124310384.pem
SSLCertificateKeyFile /opt/lampp/apache2/cert/214413124310384.key
ServerName pan.zhaojun1998.com
DocumentRoot /opt/lampp/htdocs/kodcloud
</virtualhost>
<virtualhost *:443> ## https 配置
SSLEngine on
SSLCertificateFile /opt/lampp/apache2/cert/214298372380384.pem
SSLCertificateKeyFile /opt/lampp/apache2/cert/214298372380384.key
ServerName aria.zhaojun1998.com
DocumentRoot /opt/lampp/htdocs/aria
</virtualhost>

配置完或,保存,然后重启 xampp:

1

/opt/lampp/lampp restart

其他

aria 证书配置

这样基本就完成了,但打开 aria 后发现,无法链接上 aria,原因是因为我们配置了 https 证书,但没有告诉 aria ,下面我们修改 aria 的配置:

代码语言:javascript
复制
cd ~
./aria2.sh

选择主要修改的为以下几项:

代码语言:javascript
复制
## 下载到 kodcloud 管理员的 home 目录下
dir=/opt/lampp/htdocs/kodcloud/data/User/admin/home

设置的RPC授权令牌,就是一个认证的密码,防止别人恶意下载

rpc-secret=123456

是否启用 RPC 服务的 SSL/TLS 加密,

启用加密后 RPC 服务需要使用 https 或者 wss 协议连接

rpc-secure=true

在 RPC 服务中启用 SSL/TLS 加密时的证书文件(.pem/.crt)

rpc-certificate=你的 aria 证书pem路径

在 RPC 服务中启用 SSL/TLS 加密时的私钥文件(.key)

rpc-private-key=你的 aria 证书key路径

aria + kodcloud 权限问题

aria 是以 root 身份运行的,而 kodcloud 是以 apache 的 daemon 用户运行的。也就是说 aria 下载的文件, kodcloud 只有可读的权限,无法进行删除,修改等操作。

root 用户创建的文件默认是 644 权限,我们将它改为 664 权限,然后将 daemon 用户添加到 root 组即可。

修改 root 用户创建文件的默认权限,将超级用户的 uamsk 修改为 002 即可,这个计算方式有兴趣的自行查阅:

代码语言:javascript
复制
vim /etc/bashrc     71行是普通用户的更改,73是超级用户的更改
vim /etc/profile    60行是普通用户的更改,62是超级用户的更改

source /etc/bashrc ##刷新bash配置
source /etc/profile ##刷新系统配置

将 daemon 添加到 root 组

1

usermod -a -G root daemon

重启 xampp 服务

1

/opt/lampp/lampp restart

结果展示