文章目录

  • 目标
  • A. 下载qBittorrent
  • B. 安装qBittorrent
  • C. 配置qBittorrent
  • a. 修改用户名和密码
  • b. 修改下载文件的默认保存地址
  • c. 修改文件夹权限
  • D. 远程访问
  • E. 添加SSL
  • F. 修改打开文件数量限制[^2]
  • 常见问题


目标

为威联通NAS配置qBittorrent,使其可远程访问,可直接从NAS中删除通过其下载的文件,而不是必须从qBittorrent中删除。

A. 下载qBittorrent

qnapclub下载qBittorrent,由于NASTS-453Dmini,故选择版本TS-NASX86_64

B. 安装qBittorrent

进入威联通NAS网页端的AppCenter,右上角选择从手动安装,然后浏览选中下载的qpkg文件后点击安装,等待安装完成。1

威联通docker 威联通docker qbittorrent_Max

C. 配置qBittorrent

a. 修改用户名和密码

打开qBittorrent,初始用户名admin,密码adminadmin,然后登录。

威联通docker 威联通docker qbittorrent_网络_02


tool菜单下的options...子菜单中的Web UI页中可修改用户名和密码。

威联通docker 威联通docker qbittorrent_网络_03

b. 修改下载文件的默认保存地址

options>>Downloads>>Saving Management>>Default Save Path中可修改默认保存地址,可设置为/share/Public/qbittorrent/Downloads/

威联通docker 威联通docker qbittorrent_Max_04

c. 修改文件夹权限

经测试上面操作完成后无法在NAS中直接删掉qBittorrent下载的文件,为实现可从NAS中直接删除其下载的文件,可在威联通NAS网页端中控制台>>权限>>共享文件夹>>高级权限中勾选启动高级文件夹权限并应用。尚未确定该方法是否有弊端

威联通docker 威联通docker qbittorrent_打开文件_05

D. 远程访问

上面安装的是套装,直接附带Web UI,可配置端口转发或启动UPnP即可远程访问。

E. 添加SSL

  1. 阿里云网站上下载证书,类型选择其他。解压后得到两个后缀分别为pemkey的文件,上传到NAS
  2. 威联通docker 威联通docker qbittorrent_网络_06


  3. 威联通docker 威联通docker qbittorrent_打开文件_07

  4. Options>>Web UI>>勾选Use HTTPS instead of HTTP,Certificate填写后缀为pem的证书文件云端地址,Key填写后缀为key的证书文件的云端地址,然后保存。
  5. 威联通docker 威联通docker qbittorrent_用户名_08

F. 修改打开文件数量限制2

  1. ssh登录qnap nas并进入/share/CACHEDEV1_DATA/.qpkg/qBittorrent/文件夹;
  2. 执行命令创建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;
}
  1. qnap nas应用商店从qnapclub仓库安装包管理应用Entware-std安装后是否需重启还未确定
  2. ssh登录qnap nas并执行命令:
sudo /opt/bin/opkg update
sudo /opt/bin/opkg install gcc
  1. 添加/opt/binPATH中,不然后面gcc编译会报错:gcc: error trying to exec 'as': execvp: No such file or directory:
sudo vim /root/.bashrc

在文件的开头PATH相应位置添加/opt/bin,然后执行

source /root/.bashrc
  1. 编译limit.c输出limit可执行文件,会提示两条警告信息,不用管它们
/opt/bin/gcc limit.c -o limit
  1. 修改qBittorrent.sh
vim qBittorrent.sh

在脚本文件启动相关代码处,做出如下修改。可以看到原脚本中的 $! 就为运行的 qbittorrent-nox 的进程 pid 号。

./qbittorrent-nox --webui-port=6363 &
echo $! > $PIDF
./limit $! 16384 16384 &
  1. 重启qBittorrent;
  2. 执行命令查看当前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

  1. 查看当前qBittorrent打开文件数量:
sudo ls "/proc/$(ps | grep qbittorrent | grep -v grep | awk 'NR==1{print $1}')/fd" | wc -l

完成。

常见问题

  1. 安装后默认密码无法登录,且配置文件/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> 杀掉进程后重新打开,此时应该就可以正常输密码访问。
  2. 在网页端设置中修改Web UI端口号是无效的,重启后仍会恢复默认的6363端口号。

  1. 玩转下载神器qbittorrent:威联通NAS随心所欲实现异地挂载下载 ↩︎
  2. 威联通 套件版 qBittorrent: Too many open files 或者 No file descriptors available 的解决方案 ↩︎