专栏首页赵俊的Java专栏搭建一个自己的私有云 + 离线下载站

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

前言

本次实验环境如下:

获取权限

国内的阿里云,腾讯云等获取 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

下载:

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

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

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/ (需访问外国网站)

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,将域名对应上站点路径和证书。

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 的配置:

cd ~
./aria2.sh

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

## 下载到 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 即可,这个计算方式有兴趣的自行查阅:

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

结果展示

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • LeetCode 938 Range Sum of BST

    给予一颗二叉搜索树, 返回区间 L - R 之间的所有值的总和. 二叉搜索树中没有重复值.

    一份执着✘
  • MySQL 连接

    给予一颗二叉搜索树, 返回区间 L - R 之间的所有值的总和. 二叉搜索树中没有重复值.

    一份执着✘
  • Hadoop 伪分布式环境搭建

    一份执着✘
  • 【Go 语言社区】go 学习中遇到一些语法问题

    1.可变参数,传入数组的饿时候,必须加三个... func sums(nums ...int){} nums := []int{1, 2, 3, 4, 5}...

    李海彬
  • linux inotify-tools 安装

    安装inotify工具inotify-tools 由于inotify特性需要Linux内核的支持,在安装inotify-tools前要先确认Linux系统内核...

    黑白格
  • [手把手系列之二]实现多层神经网络

    训练集: \(X = [x^{(1)},x^{(2)},...,x^{(i)},....,x^{(m)}]\) ;对应标签:\(Y=[y^{(1)},y^{(2...

    用户1631856
  • [手把手系列之二]实现多层神经网络

    训练集: X=[x(1),x(2),...,x(i),....,x(m)]X=[x(1),x(2),...,x(i),....,x(m)]X = [x^{(1)...

    公众号-不为谁写的歌
  • 搞它!!!Linux构建远程YUM仓库与NFS共享存储服务

    FTP服务:ftp://… HTTP服务: http://… 本地目录:file://…

    不吃小白菜
  • 分发系统——expect 原

    (adsbygoogle = window.adsbygoogle || []).push({});

    阿dai学长
  • 使用typescript开发angular模块(发布npm包)

    易兒善

扫码关注云+社区

领取腾讯云代金券