前言

之前入手了一台玩客云,在刷完底包后就一直搁置在那,最近又开始继续对这台设备折腾起来了。由于不方便办宽带,手里面恰好有随身wifi,为了能让玩客云连上网就找了适合插入usbwifi就能联网的系统,最终刷入了玩客云Armbian_20.11_Aml-s812_5.9.0-支持USB-WIFI最终完美版系统,点击这里进行系统下载及详情了解。往期玩客云刷底包

本期设备

随后又看b站up主张大七先生的视频教程,完成了samba共享以及docker应用的部署,期间遇到了很多问题,在此记录下。

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

  1. 配置samba共享时出现的网络凭据问题、权限问题等。(此问题最终在解决过程中把系统搞崩,重新安装win10专业版后解决。之前的系统是win10LTSC企业版,非常稳定非常安全,同时导致配置Samba困难重重)
  2. 安装transmission后更换webui问题。(transmission原生webui非常简洁所以很少人使用,transmission-web-control是使用最多的主题样式。张大七先生的视频教程在此部分无法实现。

samba的问题比较迷,本期主要说一下transmission后更换webui的问题(包含安装教程),以及安装其他下载器并做内网穿透服务

  • 张大七视频教程中的替换代码
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
7
8
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free

再执行

1
apt update -y

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

transmission换web-ui方法

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

使用github的源

这个方法适合国外设备主机,或者主机已经安装科学插件如openwrt可以访问github。无法访问github的设备就不要尝试了,因为是要从github下载,访问不了自然一直卡在下载中。

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里面的文件内容。

压缩包解压后的目录结构

  • 执行以下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 /sda1/transmission/transmission-web-control:/transmission-web-control \
-v /sda1/transmission/config:/config \
-v /sda1/transmission/downloads:/downloads \
-v /sda1/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 文件的文件夹。
  • 新建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界面

END!!!!!

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

n3540小主机

安装qbittorrent

armbian无法使用docker安装,会出现以下错误

1
no matching manifest for linux/arm64/v7 in the manifest list entries

对于armbian可以使用如下命令安装

1
apt-get install qbittorrent-nox

运行qbittorrent

1
qbittorrent-nox -d

设置开机自启

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

设置开机自启

浏览器输入IP:8080来访问

推荐使用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)

问题

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

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

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

可以恢复默认密码adminadmin

安装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

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

连接配置

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

无法连接解决方法

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

内网穿透

首先下载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

最终文件目录结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[common]
server_addr = your_server_address
server_port = 7000
token = your_token

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

[http]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = example.com

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 上运行),从而实现反向代理和端口转发。

  • 或者使用以下frpc.toml最新写法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
serverAddr = "frps服务端ip或者域名"
serverPort = 服务端端口
auth.token = "服务端设置的token"

[[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
customDomains = ["frps服务端ip"]
  • 运行frpc服务
1
2
cd /root/frp/frpc
./frpc -c ./frpc.toml &

如果有公网服务器

frps.toml配置

1
2
3
4
5
6
7
8
9
10
11
bindPort = 7000 # 服务端与客户端通信端口
transport.tls.force = true # 服务端将只接受 TLS链接
auth.token = "9KEnahi3V" # 身份验证令牌,frpc要与frps一致

# Server Dashboard,可以查看frp服务状态以及统计信息
webServer.addr = "0.0.0.0" # 后台管理地址
webServer.port = 7500 # 后台管理端口
webServer.user = "yilan" # 后台登录用户名
webServer.password = "yilan" # 后台登录密码
vhostHTTPPort = 80
vhostHTTPSPort = 443

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

/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
[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
Restart=on-failure

[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确保有执行的权限

参考资料

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实现文件下载与共享