qnap+qBitorrent
文章目录
目标
为威联通NAS
配置qBittorrent
,使其可远程访问,可直接从NAS
中删除通过其下载的文件,而不是必须从qBittorrent
中删除。
A. 下载qBittorrent
从qnapclub下载qBittorrent
,由于NAS
为TS-453Dmini
,故选择版本TS-NASX86_64。
B. 安装qBittorrent
进入威联通NAS网页端的AppCenter
,右上角选择从手动安装
,然后浏览
选中下载的qpkg
文件后点击安装,等待安装完成。1
C. 配置qBittorrent
a. 修改用户名和密码
打开qBittorrent
,初始用户名admin
,密码adminadmin
,然后登录。
tool
菜单下的options...
子菜单中的Web UI
页中可修改用户名和密码。
b. 修改下载文件的默认保存地址
在options
>>Downloads
>>Saving Management
>>Default Save Path
中可修改默认保存地址,可设置为/share/Public/qbittorrent/Downloads/
。
c. 修改文件夹权限
经测试上面操作完成后无法在NAS中直接删掉qBittorrent
下载的文件,为实现可从NAS中直接删除其下载的文件,可在威联通NAS网页端中控制台
>>权限
>>共享文件夹
>>高级权限中
勾选启动高级文件夹权限
并应用。尚未确定该方法是否有弊端。
D. 远程访问
上面安装的是套装,直接附带Web UI
,可配置端口转发
或启动UPnP
即可远程访问。
E. 添加SSL
-
从阿里云网站上下载证书,类型选择其他。解压后得到两个后缀分别为
pem
和key
的文件,上传到NAS
。
-
Options
>>Web UI
>>勾选Use HTTPS instead of HTTP
,Certificate
填写后缀为pem
的证书文件云端地址,Key
填写后缀为key
的证书文件的云端地址,然后保存。
F. 修改打开文件数量限制2
ssh
登录qnap nas
并进入/share/CACHEDEV1_DATA/.qpkg/qBittorrent/
文件夹;- 执行命令创建
limit.c
文件
touch lilmit.c
使用 prlimit 函数来调整虽然网上有许多关于修改系统文件的教程,但是在这里我都不管用…… 后面是看到了 CARLO 的博文,采用他的方案。大致就是使用如下的代码来对运行中的进程进行动态调整,三个输入参数分别为待调整的进程 pid、文件打开数的 soft limit、文件打开数的 hard limit。因此基本操作就是在 qbittorrent-nox 进程运行后,再在威联通系统上运行一下此程序即可。要实现这一目的,首先要在威联通系统上对此 C 程序进行编译。
然后
vim limit.c
在其中写入:
#include <stdio.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <sys/types.h>
int main(int argc, char** argv) {
pid_t pid;
struct rlimit new_limit;
int result;
if (argc < 4) {
return 1;
}
pid = atoi(argv[1]);
new_limit.rlim_cur = atoi(argv[2]);
new_limit.rlim_max = atoi(argv[3]);
result = prlimit(pid, RLIMIT_NOFILE, &new_limit, NULL);
return result;
}
qnap nas
应用商店从qnapclub
仓库安装包管理应用Entware-std
,安装后是否需重启还未确定ssh
登录qnap nas
并执行命令:
sudo /opt/bin/opkg update
sudo /opt/bin/opkg install gcc
- 添加
/opt/bin
到PATH
中,不然后面gcc
编译会报错:gcc: error trying to exec 'as': execvp: No such file or directory
:
sudo vim /root/.bashrc
在文件的开头PATH
相应位置添加/opt/bin
,然后执行
source /root/.bashrc
- 编译
limit.c
输出limit
可执行文件,会提示两条警告信息,不用管它们:
/opt/bin/gcc limit.c -o limit
- 修改
qBittorrent.sh
vim qBittorrent.sh
在脚本文件启动相关代码处,做出如下修改。可以看到原脚本中的 $!
就为运行的 qbittorrent-nox
的进程 pid
号。
./qbittorrent-nox --webui-port=6363 &
echo $! > $PIDF
./limit $! 16384 16384 &
- 重启
qBittorrent
; - 执行命令查看当前
qBittorrent
打开文件数量限制:
cat "/proc/$(ps | grep qbittorrent | grep -v grep | awk 'NR==1{print $1}')/limits"
显示如下:
</proc/$(ps | grep qbittorrent | grep -v grep | awk 'NR==1{print $1}')/limits"
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 31048 31048 processes
Max open files 16384 16384 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 31048 31048 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
可看到Max open files
已修改为16384
- 查看当前
qBittorrent
打开文件数量:
sudo ls "/proc/$(ps | grep qbittorrent | grep -v grep | awk 'NR==1{print $1}')/fd" | wc -l
完成。
常见问题
- 安装后默认密码无法登录,且配置文件
/share/CACHEDEV1_DATA/.qpkg/qBittorrent/.config/qBittorrent/qBittorrent.conf
中也没有WebUI
用户名和密码相关信息:尝试更换浏览器,测试chrome不可以,edge可以;edge登录后可配置上面提到的E. 添加SSL
,然后在chrome
中可通过输入https://xxxx:6363
来正常访问;还有一种情况是上次在APP Center
中将qBittorrent
退出后但进程并没有停止,表现为APP Center
中显示已停止,但仍可打开网页端,这时需要到资源监视器中找到qBittorrent
的进程号,然后ssh
登入后执行sudo kill -9 <pid of qBittorrent>
杀掉进程后重新打开,此时应该就可以正常输密码访问。 - 在网页端设置中修改
Web UI
端口号是无效的,重启后仍会恢复默认的6363
端口号。