关键字 nas,ubuntu,linux,debian,samba,netatalk
来填上次挖的坑,上次写完了 samba, netatalk, avahi 这些有关文件共享的部分,这次来写 nas 用到的其他服务,下载器 aria2, qbittorrent, 以及 frp 内网穿透的部分
docker 和 docker-compose
考虑部署方便,我的部分应用使用了 docker-compose 部署。
安装 docker 并设置为开机启动
1
2
| apt install docker.io
systemctl enable --now docker
|
安装 docker-compose
1
| apt install docker-compose
|
aria2
aria2 分后端 aria2c 和前端页面,前端页面有 AriaNg 和 webui-aria2,这里我用了 AriaNg。直接安装 aria2c 后端然后用 nginx 架 webserver 配合 AriaNg 做前端也是可以的,但是考虑部署方便,后来我改用了 docker 部署,镜像是hurlenko/aria2-ariang
。
配置文件
docker-compose.yml 如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| version: "3"
services:
ariang:
image: hurlenko/aria2-ariang
container_name: aria2-ariang
ports:
- 8014:8080
volumes:
- /nas/sp-lomot/download/aria2:/aria2/data
- ./conf:/aria2/conf
environment:
- PUID=1000
- PGID=1000
- DOMAIN=0.0.0.0:8080
- ARIA2RPCPORT=8080
restart: always
|
docker-compose.yml 文件中有两处需要修改成你自己的,其中
- /nas/sp-lomot/download/aria2 是我的下载文件存放目录,
- 8014:8080 中的 8014 是暴露出来的端口。
使用示例
找个用于存放 docker-compose.yml 和 aria2 设置的目录,例如/opt/appdata/aria2
1
2
3
4
5
6
7
| # 创建目录
mkdir -p /opt/appdata/aria2
cd /opt/appdata/aria2
# 编辑 docker-compose.yml
vim docker-compose.yml
# 启动服务
docker-compose up -d
|
qbittorrent
qbittorrent 是一个很好用的 BT 下载器,我用了 docker 部署
配置文件
docker-compose.yml 如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| version: "3"
services:
qbittorrent:
image: gists/qbittorrent
container_name: qbittorrent
volumes:
- /nas/sp-lomot/download/qbittorrent:/data/downloads
- ./data:/data
ports:
- 6881:6881
- 6881:6881/udp
- 8012:8012
environment:
- UID=1000
- GID=1000
- TZ=Asia/Shanghai
- WEB_PORT=8012
restart: always
|
由于暴露的端口有点多,我使用的是 host 模式:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| version: "3"
services:
qbittorrent:
image: gists/qbittorrent
container_name: qbittorrent
network_mode: "host"
volumes:
- /nas/sp-lomot/download/qbittorrent:/data/downloads
- ./data:/data
environment:
- UID=1000
- GID=1000
- TZ=Asia/Shanghai
- WEB_PORT=8012
restart: always
|
其中/nas/sp-lomot/download/qbittorrent 是我的下载文件存放目录。
使用方法跟上面的 aria2 一样,这里不介绍了。
frp
frp 是一款优秀的内网穿透软件,不过需要服务端,我使用了一台阿里云的服务器作为服务端。详细使用方法可以直接参考官方的中文文档, 以下是我的个人配置
服务端
下载安装
apt 软件源是没有 frp 的,因此需要去 github 下载对应版本:下载地址,这里以 0.32.1,x86_64 为例
1
2
3
4
5
6
7
| # 下载frp_0.32.1_linux_amd64.tar.gz
wget https://github.com/fatedier/frp/releases/download/v0.32.1/frp_0.32.1_linux_amd64.tar.gz
# 创建文件夹并解压
mkdir -p /opt/frp
mv frp_0.32.1_linux_amd64.tar.gz /opt/frp
cd /opt/frp
tar -zxvf frp_0.32.1_linux_amd64.tar.gz
|
配置
配置文件为/etc/frp/frps.ini,需要手动创建
1
2
3
4
5
6
7
8
9
| # frps.ini
[common]
bind_port = 7070
# token类似密码,需要服务器端与客户端一样
token = xxxxxx
log_file = /var/log/frps.log
log_max_days = 3
log_level = info
|
使用 systemctl 启动服务端, 创建/etc/systemd/system/frps.service,
1
2
3
4
5
| # 创建frps.service
vim /etc/systemd/system/frps.service
# 启动服务端并开机自启
systemctl daemon-reload
systemctl enbale --now frps.service
|
/etc/systemd/system/frps.service 内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
| [Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
User=root
Restart=on-failure
RestartSec=5s
ExecStart=/opt/frp/frps -c /etc/frp/frps.ini
[Install]
WantedBy=multi-user.target
|
客户端
客户端的安装和配置方法与服务端类似,只是配置文件不一样
1
2
3
4
5
6
7
8
9
10
11
12
13
| # frpc.ini
# ssh: 7080
[common]
server_addr = xxx.xx.xx.xx #ip和域名都行
server_port = 7070
# token需要与服务端一样
token = xxxxxx
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 7080
|
这个配置文件只对外网暴露了一个 ssh 服务,更多使用方法还请参考官方文档。
- /etc/systemd/system/frpc.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| [Unit]
Description=Frp Client Service
After=network.target
[Service]
Type=simple
User=root
Restart=on-failure
RestartSec=5s
ExecStart=/opt/frp/frpc -c /etc/frp/frpc.ini
ExecReload=/opt/frp/frpc reload -c /etc/frp/frpc.ini
[Install]
WantedBy=multi-user.target
|
相关系列
截止到这篇文章,已经包括了 samba, netatalk, aria2, qbittorrent, frp 这些服务,也算是囊括了一个 nas 的基本功能。后续额外的功能等有空再写吧。