前言

之前入手了一台玩客云,在刷完底包后就一直搁置在那,最近又对这台设备折腾起来了。为了能让玩客云连wifi上网,就找了适合的系统,最终刷入了玩客云Armbian_20.11_Aml-s812_5.9.0-支持USB-WIFI最终完美版系统,点击查看系统安装教程。往期玩客云刷底包。安装系统前需要先刷底包。需要挂载磁盘的查看Linux 磁盘分区、格式化、目录挂载

注意点:Armbian_20.11_Aml-s812_5.9.0这个系统有个bug,设备通电状态下拔下外置硬盘后系统会崩溃无法正常运行,只能重装。

本期设备

随后完成了samba共享以及docker应用的部署,期间遇到了很多问题,在此记录下。

主要问题和解决方法以及最终结果如下:

  1. 配置samba共享时出现的网络凭据问题、权限问题等。
  2. 安装transmission后更换webui问题。(transmission原生webui非常简洁所以很少人使用,transmission-web-control是使用最多的主题样式。张大七先生的视频教程在此部分无法实现。
  • 张大七视频教程中的替换代码
1
2
wget https://gitee.com/culturist/transmission-web-control/raw/master/release/install-tr-control-gitee.sh
bash install-tr-control-cn.sh

执行后会出现bash: install-tr-control-cn.sh: No such file or directory的报错。

报错是必然的,wget下载的是install-tr-control-gitee.sh这个文件,而bash执行时却是install-tr-control-cn.sh这个文件。两个文件的名字都不同自然找不到文件或目录。在修改成bash install-tr-control-gitee.sh后还是安装不上主题,提示识别失败,请确认 Transmission 已启动,问题详情。问题的原因:install-tr-control-gitee.sh是有问题的版本,这个项目的作者在github上更新修复了但是并没有在gitee更新修复。

准备工作

添加系统软件国内镜像源

1
nano /etc/apt/sources.list

然后按方向键到最后在空白处添加以下代码

阿里云镜像:

1
2
3
4
5
6
deb http://mirrors.aliyun.com/debian bullseye main contrib non-free
deb-src http://mirrors.aliyun.com/debian bullseye main contrib non-free
deb http://mirrors.aliyun.com/debian-security bullseye-security main contrib non-free
deb-src http://mirrors.aliyun.com/debian-security bullseye-security main contrib non-free
deb http://mirrors.aliyun.com/debian bullseye-updates main contrib non-free
deb-src http://mirrors.aliyun.com/debian bullseye-updates main contrib non-free

或者清华镜像:

1
2
3
4
5
6
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main
deb http://security.debian.org/debian-security bullseye-security main
deb-src http://security.debian.org/debian-security bullseye-security main
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main

再执行

1
apt update -y

一定要等代码跑完,不要中途退出

如果出现以下问题

玩客云刷armbian更新源报错The repository ‘http://apt.armbian.com stretch Release‘ does not have a Release file

配置samba

  • 安装samba
1
apt install samba

设置samba用户,yilan替换成你的用户名

1
useradd yilan

设置用户密码

1
smbpasswd -a yilan

注意输入密码时屏幕不会显示密码

  • 配置smb.conf。注意该文件要有写如权限。
1
nano /etc/samba/smb.conf

在最下面添加

1
2
3
4
5
6
7
8
9
[OneCloud]                         
comment = OneCloud
path = /mnt/sda1
create mask = 0777
directory mask = 0777
browseable = yes
read only = No
public = no
valid users = yilan

安装docker

1
apt install docker.io

查看是否安装成功

1
docker info
  • 换docker镜像源

2024 最新docker/containerd镜像源,8月,9月

安装transmission

执行以下docker cli命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
docker run \
-d \
--name=transmission \
-e USERNAME=admin \
-e PASSWORD=admin \
-e PUID=1000 \
-e PGID=1000 \
-e TRANSMISSION_WEB_HOME=/transmission-web-control/web \
-p 9091:9091 \
-p 51413:51413 \
-p 51413:51413/udp \
-v /mnt/sda1/docker_data/transmission/transmission-web-control:/transmission-web-control \
-v /mnt/sda1/docker_data/transmission/config:/config \
-v /mnt/sda1/docker_data/transmission/downloads:/downloads \
-v /mnt/sda1/docker_data/transmission/watch:/watch \
--restart unless-stopped \
lsioarmhf/transmission

主要需要修改的是四个-v开头的内容,-v就是映射本地目录到容器里面。冒号左边的是本地目录路径可以自己改动,冒号右边的是容器内部目录路径不要修改。可以只改所有的sda1,sda1是我设备里面挂载的硬盘名,这个需要改成自己的,其他的不要动。

参数含义:

-p 9091 WebUI用户界面
-p 51413 Torrent 端口 TCP
-p 51413/udp Torrent 端口 UDP
-e PUID=1000 对于用户 ID - 请参阅下面的说明
-e PGID=1000 对于 GroupID - 请参阅下面的说明
-e TZ=Etc/UTC 指定要使用的时区,请参阅此列表
-e TRANSMISSION_WEB_HOME= 指定备用 UI 文件夹的路径。
-e USER= 为接口指定可选用户名
-e PASS= 为接口指定可选密码
-e WHITELIST= 指定逗号分隔的 IP 白名单的可选列表。填充 rpc-whitelist 设置。
-e PEERPORT= 指定用于 torrent TCP/UDP 连接的可选端口。填充对等端口设置。
-e HOST_WHITELIST= 指定逗号分隔的 dns 名称白名单的可选列表。填充 rpc-host-whitelist 设置。
-v /config 传输应该在哪里存储配置文件和日志。
-v /downloads 下载的本地路径。
-v /watch 监视 torrent 文件的文件夹。

换主题

  • 方法1:容器内执行命令

使用github的源

这个方法适合国外设备主机,或者主机网络可以访问github。否则不要尝试了。

进入容器的web目录下执行:

1
2
wget https://github.com/ronggang/transmission-web-control/raw/master/release/install-tr-control-cn.sh
bash install-tr-control-cn.sh
  • 方法二:本地上传主题文件(推荐)

需要先下载transmission-web-control-master

样式上传到了蓝奏云,需要的点击这里下载,下载好后解压文件。下面是transmission-web-control-master目录结构,需要src里面的文件内容。

压缩包解压后的目录结构

新建web文件夹

在设备的/sda1/transmission/transmission-web-control这个目录下新建web文件夹,或者完成了samba共享的也可以在\\192.168.0.3\onecloud\transmission\transmission-web-control这个目录下新建web文件夹。这两都是一样的,注意把前面的sda1或者192.168.0.3\onecloud替换成自己的。

设备端目录结构

本地电脑目录结构

注意:如果在本地电脑端上传出现权限问题。执行如下

1
chmod 777 /sda1 -R

使用finalshell也可以这么操作

添加权限

上传文件到web文件夹

把下载下来的压缩包中src文件夹里面所有文件上传到设备的web文件夹里

src文件

上传好后,ip:9091就可以访问了

ui界面

安装qbittorrent

docker安装

https://hub.docker.com/r/johngong/qbittorrent

1
2
3
4
5
6
7
8
9
10
11
12
13
14
docker create \
--name=qbittorrent \
-e QB_WEBUI_PORT=8989 \
-e QB_EE_BIN=false \
-e UID=1000 \
-e GID=1000 \
-e UMASK=022 \
-p 6881:6881 \
-p 6881:6881/udp \
-p 8989:8989 \
-v /mnt/sda1/docker_data/qbittorrent/config:/config \
-v /mnt/sda1/docker_data/qbittorrent/downloads:/Downloads \
--restart unless-stopped \
johngong/qbittorrent:latest

运行

1
docker start qbittorrent

停止

1
docker stop qbittorrent

删除容器

1
docker rm qbittorrent

删除镜像

1
docker image rm johngong/qbittorrent:latest

更改下载目录

下载目录更改

可以看到,下载目录要填写容器内的路径,不要使用映射到本地的路径!

apt安装

1
apt-get install qbittorrent-nox

运行qbittorrent

1
qbittorrent-nox -d

设置开机自启

1
2
3
nano /etc/rc.local
#添加
qbittorrent-nox -d

设置开机自启

浏览器输入IP:8080来访问

问题

无法登录,提示无效的用户名和密码

  • apt安装

先停止qb,然后找到qbittorrent.conf文件(/root/.config/qBittorrent),在Preferences下方添加一行

1
WebUI\Password_PBKDF2="@ByteArray(ARQ77eY1NUZaQsuDHbIMCA==:0WMRkYTUWVT9wVvdDtHAjU9b3b7uB8NR1Gur2hmQCvCDpm39Q+PsJRJPaCU51dEiz+dTzh8qbPsL8WkFljQYFQ==)"

用户名:admin

密码:adminadmin

  • docker安装

先停止容器:

1
docker stop qbittorrent

找到qBittorrent.conf配置文件,我的在这个/mnt/sda1/docker_data/qbittorrent/config/qBittorrent/config目录下。

qBittorrent.conf中添加:

1
2
WebUI\Username=admin1
WebUI\Password_PBKDF2="@ByteArray(ARQ77eY1NUZaQsuDHbIMCA==:0WMRkYTUWVT9wVvdDtHAjU9b3b7uB8NR1Gur2hmQCvCDpm39Q+PsJRJPaCU51dEiz+dTzh8qbPsL8WkFljQYFQ==)"

添加

启动容器:

1
docker start qbittorrent

浏览器访问:ip:8989

用户名:admin1

密码:adminadmin

使用systemd控制qb

如果是使用apt安装的qbittorrent推荐使用systemd控制qb

执行命令

1
nano /etc/systemd/system/qbittorrent.service

然后将下面的内容粘贴并保存:

1
2
3
4
5
6
7
8
9
[Unit]
Description=qBittorrent Daemon Service
After=network.target
[Service]
User=root
ExecStart=/usr/bin/qbittorrent-nox
ExecStop=/usr/bin/killall -w qbittorrent-nox
[Install]
WantedBy=multi-user.target

执行下面的命令更新服务:

1
systemctl daemon-reload

常用命令

1
2
3
4
5
6
7
8
9
10
启动qb
service qbittorrent start
关闭qb
service qbittorrent stop
查看qb状态
service qbittorrent status
开机自启
systemctl enable qbittorrent
关闭开机自启
systemctl disable qbitorrent

访问如下地址:

1
2
3
http://Armbian设备的IP:8080
用户名:admin
密码:adminadmin(两个admin)

安装ari2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
docker run -d \
--name aria2-pro \
--restart unless-stopped \
--log-opt max-size=1m \
-e UMASK_SET=022 \
-e PUID=1001 \
-e PGID=1001 \
-e RPC_SECRET=12345 \
-e RPC_PORT=6800 \
-e LISTEN_PORT=6888 \
-p 16800:6800 \
-p 16888:6888 \
-p 16888:6888/udp \
-v /sda1/aria2/config:/config \
-v /sda1/aria2/downloads:/downloads \
p3terx/aria2-pro

连接方法1

浏览器安装插件ari2 explorer,然后配置连接

连接配置

必须赋予downloads文件夹写入权限才可以连接上

无法连接解决方法

连接方法2

也可以搭建ariaNg网页页面,手把手教你 使用Docker搭建aria2+AriaNg,打造自己的离线下载服务器

1
2
3
4
5
6
docker run -d \
--name ariang \
--log-opt max-size=1m \
--restart unless-stopped \
-p 16880:6880 \
p3terx/ariang

端口填16800

image

内网穿透

首先下载frp_0.52.3_linux_arm.tar.gz

github项目地址,github访问速度慢的下载下面的蓝奏云

蓝奏云备份下载:3w3a

玩客云客户端

  • 新建frp服务目录
1
2
3
cd /root
mkdir frpc
cd frpc
  • 上传frp_0.52.3_linux_arm.tar.gz

把frp_0.52.3_linux_arm.tar.gz上传到/root/frpc

  • 解压frp_0.52.3_linux_arm.tar.gz
1
tar -xzvf frp_0.52.3_linux_arm.tar.gz

会在frpc目录下生成frp_0.52.3_linux_arm目录

  • frp_0.52.3_linux_arm目录下的frpcfrpc.toml移动到frpc目录下。注意:需要赋予frpc执行权限
1
2
cd frp_0.52.3_linux_arm
mv frpc frpc.toml ..
  • 删除frp_0.52.3_linux_arm.tar.gz和frp_0.52.3_linux_arm
1
cd /root/frpc && rm -rf frp_0.52.3_linux_arm.tar.gz frp_0.52.3_linux_arm

最终文件目录结构

server_addr:这是 frp 服务器(云服务器)的地址(即公网ip),客户端会将其用于与服务器建立连接。

server_port:这是 frp 服务器的端口,客户端使用此端口来连接服务器。

token:这是用于授权和身份验证的令牌。客户端必须提供正确的令牌以与服务器通信。

type:这是服务的类型,用于告诉 frp 客户端如何处理请求。在这个示例中,服务类型是 HTTP,表示客户端将处理 HTTP 请求。

local_port:这是客户端本地服务运行的端口。

local_ip:这是客户端本地服务的 IP 地址。通常,你将其设置为 “127.0.0.1”,表示本地主机。

custom_domains:这是自定义域名或主机名,将映射到 frp 客户端的本地服务。在这个示例中,客户端将 “公网ip” 映射到本地服务。

这些参数的配置使 frp 客户端能够将传入的 HTTP 请求通过 frp 服务器转发到本地服务(在这种情况下,本地服务在 127.0.0.1:8080 上运行),从而实现反向代理和端口转发。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
serverAddr = "frps服务端ip或者域名"
serverPort = 9000 # 服务端端口
auth.token = "rtwretrwetwe" # 服务端设置的token
dial_server_timeout = 30
login_fail_exit = false

[[proxies]]
name = "transmission-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 9091
remotePort = 9091

[[proxies]]
name = "qb-web"
type = "http"
localIP = "127.0.0.1"
localPort = 8080
remotePort = 8080
  • 运行frpc服务
1
2
cd /root/frp/frpc
./frpc -c ./frpc.toml &

如果有公网服务器

frps.toml配置

1
2
3
4
5
6
7
bindPort = 9000 # 服务端与客户端通信端口
auth.token = "rtwretrwetwe" # 身份验证令牌,frpc要与frps一致
# Server Dashboard,可以查看frp服务状态以及统计信息
webServer.addr = "0.0.0.0" # 后台管理地址
webServer.port = 4555 # 后台管理端口
webServer.user = "username" # 后台登录用户名
webServer.password = "password" # 后台登录密码

推荐使用systmed来控制frpc和frps的启动和开始

/etc/systemd/system/ 目录下新建 frpc.service

1
sudo touch /etc/systemd/system/frpc.service

将以下内容填入至 frpc.service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[Unit]
Description=frpc service
After=network.target

[Service]
Type=simple
ExecStart=/root/frpc/frpc -c /root/frpc/frpc.toml
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
KillMode=process
ExecStartPost=/root/modify_frpc_proxy.sh
Restart=on-failure
RestartSec=5
TimeoutStartSec=300

[Install]
WantedBy=multi-user.target

/etc/systemd/system/ 目录下新建 frps.service

1
sudo touch /etc/systemd/system/frps.service

将以下内容填入至 frps.service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[Unit]
Description=frps service
After=network.target

[Service]
Type=simple
ExecStart=/root/frps/frps -c /root/frps/frps.toml
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
KillMode=process
Restart=on-failure
RestartSec=5
TimeoutStartSec=300

[Install]
WantedBy=multi-user.target

保存后重载 systemd 配置:

1
sudo systemctl daemon-reload

通过 systemd 控制 frpc

  • 启动 frpc:
1
sudo systemctl start frpc
  • 停止 frpc:
1
sudo systemctl stop frpc
  • 查看 frpc 状态:
1
systemctl status frpc
  • 将 frpc 设为开机启动:
1
sudo systemctl enable frpc
  • 取消 frpc 开机启动:
1
sudo systemctl disable frpc

frp报错问题

  • code=exited, status=1/FAILURE

问题1

检查frpc.tom文件的格式,写法问题,比如http协议必须要有自定义域名参数。frpc确保有执行的权限

结语

后续会介绍下下面的机器,一台n3540的工控机,想把它作为web服务器(基于内网穿透)。因为手里三台vps每年都要缴租,有了它可以只保留一台vps用来搭建内网穿透服务,其余两台vps上面的服务迁移到这台工控机上。

n3540小主机

参考资料

Docker版本的Transmission更换webui为 transmission-web-control

Docker安装Transmission替换WebUI实现持久化中文汉化

docker中安装transmission并配置transmission-web-control

linuxserver/transmission镜像hub地址

玩客云遇见docker风生水起

transmission-web-control作者安装教程

finalshell的官网

frp实现内网穿透]

frp配置教程

transmission-web-control-mastergithub地址

code=exited, status=1/FAILURE

Armbian安装下载神器qBittorrent - 麦克斯和雪莉的部落阁 (haibara.cn)

将ubuntu设置为NAS——16.qBittorrent server安装与卸载)

无法登录,提示无效的用户名和密码

玩客云armbian5.67手动安装qb,tr,samba,FTP实现文件下载与共享