接上次,我们在 AX9000
中安装了 Docker
,我们可以用它搭建一个网盘,并且打洞映射到外网(Cloudflare Argo Tunnel
)
打洞使用
Cloudflare Argo Tunnel
/ 和Cloudflare 零信任
使用同一个程序
找到 Docker Compose
安装方式
为什么不使用传统安装方式? AX9000 虽然开启了 Docker,但是不提供 SSH 所以我们无法通过命令行的方式安装
Cloudreve
复制 Compose
文件
version: "3.8"
services:
cloudreve:
container_name: cloudreve
image: cloudreve/cloudreve:latest
restart: unless-stopped
ports:
- "5212:5212"
volumes:
- temp_data:/data
- ./cloudreve/uploads:/cloudreve/uploads
- ./cloudreve/conf.ini:/cloudreve/conf.ini
- ./cloudreve/cloudreve.db:/cloudreve/cloudreve.db
- ./cloudreve/avatar:/cloudreve/avatar
depends_on:
- aria2
aria2:
container_name: aria2
image: p3terx/aria2-pro
restart: unless-stopped
environment:
- RPC_SECRET=your_aria_rpc_token
- RPC_PORT=6800
volumes:
- ./aria2/config:/config
- temp_data:/data
volumes:
temp_data:
driver: local
driver_opts:
type: none
device: $PWD/data
o: bind
在桌面新建一个 yml
文件并用 VSCode
打开
看到 Cloudreve
的文件映射,我们要将 ./cloudreve
前面全部加上 /mnt/docker_disk/mi_docker/
version: "3.8"
services:
cloudreve:
container_name: cloudreve
image: cloudreve/cloudreve:latest
restart: unless-stopped
ports:
- "5212:5212"
volumes:
- temp_data:/data
- /mnt/docker_disk/mi_docker/cloudreve/uploads:/cloudreve/uploads
- /mnt/docker_disk/mi_docker/cloudreve/conf.ini:/cloudreve/conf.ini
- /mnt/docker_disk/mi_docker/cloudreve/cloudreve.db:/cloudreve/cloudreve.db
- /mnt/docker_disk/mi_docker/cloudreve/avatar:/cloudreve/avatar
depends_on:
- aria2
aria2:
container_name: aria2
image: p3terx/aria2-pro
restart: unless-stopped
environment:
- RPC_SECRET=your_aria_rpc_token
- RPC_PORT=6800
volumes:
- /mnt/docker_disk/mi_docker/aria2/config:/config
- temp_data:/data
volumes:
temp_data:
driver: local
driver_opts:
type: none
device: $PWD/data
o: bind
然后在 Windows 资源管理器
中进入路由器的 SMB
请对你的设备在米家中开启全盘访问
新建一个 cloudreve
文件夹
在其中新建 aria2 | avatar | uploads
三个文件夹
并创建 cloudreve.db | conf.ini
两个空文件
然后返回到 mi_docker
文件夹
新建 aria2
文件夹
并在其中新建 config
文件夹
这样就完成了文件映射~
进入 Portainer
中的 Stacks
新建一个 Stacks
将本地修改好的 yml
直接粘贴到输入框中
然后点击 Deploy the stack
稍等片刻,你就能在 Stacks 中看见你部署的容器了
容器后面的 IP Address
就是你的容器内网地址
aria2
没有映射端口,我们只要复制 cloudreve
的地址加上 5212
端口就行
接下来我们去 cloudreve
的日志中获取管理员密码
(这里是我配置好的网盘)
此处我们需要创建一个
Ubuntu
容器用来映射
进入 App Templates
界面
找到 Ubuntu
并部署
部署完成之后进入容器详情
找到 Connected networks
在这里加入 Cloudreve Stack
的网络
然后找到 Console
连接到容器
此处假设你拥有 Cloudflare 账号,并添加好了域名
首先换源
因为这个系统太迷你了
先升级 ca-certificates
$ apt-get update
$ apt-get install ca-certificates
然后安装必要工具
$ apt-get install vim
$ apt-get install systemctl
对于网络环境差的用户,请先用 sed
替换源,在进行操作
现在我们下载 Cloudflared
$ wget https://github.com/cloudflare/cloudflared/releases/download/2022.11.1/cloudflared-linux-arm64.deb cloudflared.deb
网络不好可以上传到你刚才搭建的 Cloudreve
中,然后 wget
下载下来
安装 Cloudflared
$ dpkg -i ./cloudflared.deb
然后我们需要设置隧道
$ cloudflared tunnel login
这时候终端里面会出现一串 URL,复制在浏览器里访问并授权就好了
创建一个隧道
$ cloudflared tunnel create <隧道名>
记录下隧道 ID
创建路由
$ cloudflared tunnel route dns <隧道名> <主机名>
然后我们需要创建配置文件
$ touch ~/.cloudflared/config.yml
内容大概如下
url: http://localhost:8080
tunnel: xxxxxxx-5b0e-xxxx-8034-xxxxxxx
credentials-file: ~/.cloudflared/xxxxxxx-5b0e-xxxx-8034-xxxxxxx.json
url
替换成你要映射的 cloudreve
地址
tunnel
和 credentials-file
中的 xxxxxxx-5b0e-xxxx-8034-xxxxxxx
替换成你的隧道 ID
不知道为什么, screen
在容器上面是用不了的,所以我们只能用 systemctl
作为服务运行
两步走起
$ cloudflared service install
$ systemctl start cloudflared
等 Cloudflared
连接到了 HKG 节点之后,你的 Cloudreve
就被映射出去辣~