All in one(九)下载工具
整个All in one的基础功能我们现在还缺少了一个部分,那就是下载工具。下载的资源部分可能需要各位自己发挥自己找资源的能力,这里只说几个常用的下载工具如何部署。各种NAS或者软路由的系统里面也有下载的套件之类的安装,但是这里还是纯粹折腾一下把All in one所有服务都放到跑docker的容器里面来跑。下面就来说一下几个常用下载工具的部署方式。
All in one当中放下载服务的目的有两个,一个是如果你的All in one主机长时间开机的话那么你就可以长时间下载上传以及刷保种时间之类的,稍微方便点;另外我们可以通过前几篇的公网访问来访问我们下载服务的webui,从而实现远程下载。当然了实在用不上就用普通电脑上的下载软件也没啥问题。
为了方便docker的管理,我们先在我们运行docker的lxc容器根目录下新建一个docker目录,用来存放所有docker文件的配置文件。
迅雷算是用的最多的下载软件了,BT和一般下载链接都可以使用,而且国内的BT环境你如果下载BT资源不用迅雷其实挺难,因为好像迅雷客户端的上传不给其他软件用。群晖的第三方套件里面倒是有迅雷的套件,如果你NAS系统用的是群晖那么直接添加第三方套件源即可,这个网上的教程比较多这里就不多做描述了, 主要是说说docker部署迅雷的办法,其实项目作者也是用群晖的套件来改的。
项目的地址如下:
https://github.com/cnk3x/xunlei
同样的我们还是使用docker-compose.yml文档来部署,使用WinSCP在/docker目录内新建一个xunlei目录,然后新建一个docker-compose.yml文档。
yml文档的基础的设置只有三个,映射端口号、映射目录(我这里用的NAS共享的挂载到本地的/mnt/nfs1目录下新建的一个xldownload作为下载目录以及在/docker/xunlei 目录下新建一个data目录来存放迅雷的data文件)、开启特权。
如果有需要的话可以配置一些环境变量,作者列出了这些变量,个人觉得如果说你要挂在公网上的话可以增加密码,其他都没必要改,如果你要改就把我下面那个示例yml文档中的enviroment相关的注释取消了,如果改了端口还要主要修改端口映射的容器内端口号。取消注释后注意各行的缩进,yml文档也是要注意对齐和缩进的,不然会报错。
环境变量名称
XL_DASHBOARD_PORT #网页访问的端口,默认 2345
XL_DASHBOARD_IP #网页访问的端口,默认 0.0.0.0(代表所有IP)
XL_DASHBOARD_USERNAME #网页访问的用户名
XL_DASHBOARD_PASSWORD #网页访问的密码
XL_DIR_DOWNLOAD #下载保存默认文件夹,默认 /xunlei/downloads,多个文件夹用冒号:分隔
XL_DIR_DATA #程序数据保存文件夹,默认 /xunlei/data
XL_UID #运行迅雷的用户ID
XL_GID #运行迅雷的用户组ID
XL_PREVENT_UPDATE #是否阻止更新,默认 true, 可选值 true/false, 1/0
XL_CHROOT #隔离运行主目录, 指定该值且不为`/`则以隔离模式运行, 用于在容器内隔离环境,容器内默认为 /xunlei,隔离模式运行需要特权模式(–privileged),可以将该值设置为`/`来以非特权模式运行。非特权模式运行有条件,可以尝试失败后使用特权模式重新运行。
XL_DEBUG #调试模式, 可选值 true/false, 1/0
示例yml文档,加了一行自动启动
services:
xunlei:
image: cnk3x/xunlei
ports:
– \”46875:2345\”
volumes:
– \”/mnt/nfs1/xldownload:/xunlei/downloads\”
– \”./data:/xunlei/data\”
# environment:
# – \”变量名称=值,以下举例用户名密码\”
# – \”XL_DASHBOARD_USERNAME=你想要的用户名\”
# – \”XL_DASHBOARD_PASSWORD=你自己输入密码\”
privileged: true
restart: always
接着我们用ssh或者控制台进入到/docker/xunlei目录,然后运行启动部署命令即可
docker compose up -d
运行成功后我们访问你的docker容器ip:映射的端口号即可进入界面,跟群晖套件的一模一样,需要你登录迅雷账号,使用手机迅雷也可以远程设备下载。
相较于迅雷不给其他BT客户端上传流量,部分网站的种子也不会让迅雷下载,所以说我们还需要一个其他的下载器。当然如果说用不上这种特殊的BT下载模式也就可以不安装了,毕竟这种资源不一定找得到不是。
transmission就是一个简单的开源BT下载工具,主打的就是一个简单。由于transmission本身的webui并不是特别好用,所以说我们还增加安装一个github上的webui来让他好用和好看一点。
它的dockerhub链接没啥好看的,因为打不开
https://hub.docker.com/r/linuxserver/transmission
里面有一个官方推荐的docker-compose配置,我直接放在下面
然后是webui的项目地址
https://github.com/ronggang/transmission-web-control?tab=readme-ov-file
然后我们需要把webui整进去,这里使用的办法是把webui的源码下载下来,用直接挂载以及修改一个webhome环境变量的方式来实现,就没有用docker exec去容器内执行命令,毕竟只是修改一个前端。
github主页直接点code然后选择download zip,然后解压,解压出来的文件夹名字太长了,我直接改了个名字叫web。然后用WinSCP在lxc的docker目录内新建一个transmission目录,先把我们这个web目录传上去,然后还是新建一个docker-compose.yml文件以及一个config目录来存配置,用户和组的ID我删了,系统默认就行。user和pass你自己设置。然后我在/mnt/nfs1这个目录下新建了一个trdownload和watch文件夹给transmission用,刚才我们传上去的web文件夹作为docker容器内的web-control,例子如下:
services:
transmission:
image: lscr.io/linuxserver/transmission:latest
container_name: transmission
environment:
– TZ=Asia/Shanghai
– USER= #optional
– PASS= #optional
– TRANSMISSION_WEB_HOME=/transmission-web-control/src
volumes:
– ./config:/config
– /mnt/nfs1/trdownloads:/downloads
– /mnt/nfs1/watch:/watch
– ./web:/transmission-web-control
ports:
– 9091:9091
– 51413:51413
– 51413:51413/udp
restart: always
如果镜像不管怎么整都报error get错误就把image最开始的lscr.io/删了或者反复多试几下,网络问题很难处理。然后跟上面迅雷一样的步骤启动,这次用9091端口就可以访问了webui了,然后输入你刚才填的user和pass即可登录。一般来说transmission是用来进行种子下载的,磁力链接要怎么用我还真的不知道。
UI大概就是这样,由于我们直接替换了src所以回不到原版UI了,相信我你也不会想用原版UI的,当然你也可以去找其他的UI。
webui界面
然后如果你要移动你下载文件的目录还要继续做种的话,我建议是先在NAS里面把文件移动了,然后再去transmission里面更改保存的目录,这样比较快一点,直接选择更改目录并移动文件他是复制后删除,会比较慢。
稍微功能丰富一点的开源bt下载器,项目地址
https://github.com/qbittorrent/qBittorrent
不过这里没有写docker安装的办法,只能自己安装相关依赖然后cmake安装,docker的hub网站上
https://hub.docker.com/r/linuxserver/qbittorrent
同样的官方示例yml文件如下
跟transmission差不多,稍微修改一下,然后还是那一套,docker目录下新建一个qbittorrent目录,里面放一个config目录以及一个yml文件,yml文件示例如下,映射的8080端口稍微改了下,要求是容器内外要保持一致,所以环境变量和端口映射都要改,我改成了37615,随你喜欢
services:
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
environment:
– TZ=Asia/Shanghai
– WEBUI_PORT=37615
– TORRENTING_PORT=6881
volumes:
– ./config:/config
– /mnt/nfs1/qbdownloads:/downloads
ports:
– 37615:37615
– 6881:6881
– 6881:6881/udp
restart: always
然后访问37615端口就可以看到webui了。然后登录密码还需要一点操作,使用命令,后面那个名字就是我们上面的container_name,如果你改了那么这里命令也有变化
docker logs qbittorrent
在这个命令输出的倒数几行找到这个,这里就是你的账号密码
进来之后点设置
图片
然后先把语言换成中文,再看你要不要设置新密码,以及是否有些IP段跳过验证
图片
图片
下载工具其他的就没什么好说的了,主要还是看你怎么寻找资源。
下一篇说说handbrake和几个杂七杂八的小工具。
打造个性化静默自动下载器
以往我们要下载一些文件,总需要启动一个下载工具,在窗口中添加下载。如果已经知道一系列文件的下载地址(如网上论坛帖子给出的下载列表),那么完全可以用记事本结合IDM软件的下载主程序,通过组织简单的命令行,打造一个在命令提示符窗口中自动运行的个性化静默下载器。
1. 静默下载的基础条件
大家知道,Internet Download Manager(简称IDM)是一个知名的网络浏览器下载辅助软件,它可以应用于各种浏览器中的文件下载。但是,它的下载是依赖于从各种浏览器中获取链接并接管其下载和管理过程的。实际上,IDM还支持另一种下载方法,那就是脱离窗口界面,以命令行的方式直接调用下载地址,这样就可以既不需要启动浏览器,也不需要启动IDM的程序界面,便可以对给定网址的文件进行下载。如果将每一个文件的下载地址均与此命令结合,组成批处理文件,配以必要的参数,那么便可以实现批量文件的后台自动静默下载。
命令构造要调用IDM软件的一个主程序,它位于“C:\\Program Files \\Internet Download Manager”路径下,文件名为IDMan.exe。用命令行调用该程序时,也可省略exe扩展名。如果路径已经加入到系统路径PATH环境变量中,那么也可省略路径而直接引用该文件名IDMan。
(图1:静默下载所用的主程序IDMan.exe)
小技巧:
可以先通过命令行“PATH [[drive:]path[;…][;%PATH%]”,添加IDMan.exe的路径到系统路径中,且保留系统原有的路径设置。%PATH%表示系统原有路径。例如,用“PATH \”C:\\Program Files \\Internet Download Manager\”;%PATH%”为系统路径添加新的路径“C:\\Program Files \\Internet Download Manager”。这样无论在哪里下达命令,直接调用不带路径的IDMan命令,皆可找到并运行下载主程序IDMan.exe。
火速链接:
有关Internet Download Manager的窗口环境下的用法技巧,请参考本刊2014年第15期文章《给网络下载雇个“金管家”》。
2. 获取下载地址的方法
由于使用此种方法下载,要求首先知道下载地址,这些地址可能是现成的地址,比如在网上逛论坛或社区时,发现一些帖子中给出的成批下载地址列表,这时可将这些下载地址拷入到文本文件中备用。此外,我们也可以通过任何一种浏览器的网页获取文件的下载链接地址,只需右键单击页面文件链接,查看“属性”选项,获得下载地址并复制即得。如果网址比较多且有规律,还可以通过打开页面查看源代码的方式,通过文字处理软件(如EmEditor等),经过有效代码过滤,筛选出有用的成批下载地址。此外,也可以通过在页面上单击右键菜单,用迅雷等下载工具成批获取下载地址。
(图2:通过右键属性获取有效下载地址)
(图3:通过网页源码成批过滤有效下载地址)
(图4:通过迅雷成批获取有效下载地址)
用如上方法获得下载地址后,将所有下载地址拷贝到一个文本文件中备用。
3. 构造静默下载批处理文件
构造下载命令行的主命令为idman,其命令基本格式为:
idman /d URL [/p 本地_路径] [/f 本地_文件_名] [/q] [/h] [/n] [/a]
其中参数/d URL 表示下载URL地址指定的一个文件。
例如: idman.exe /d \”http://www.internetdownloadmanager.com/path/FileName.zip\”
命令可下载如上网址指定的FileName.zip文件。
如果增加一个/n参数时,启动静默下载模式,也就是说,在执行命令过程中,IDM不会作出任何提醒。
例如:idman.exe /n /d http://www.tonec.com/download/idman317.exe
可实现后台静默下载idman317.exe文件。
小提示:
命令行中除了最主要的/d /n参数外,还可以使用下列参数:
/p -本地路径,定义要保存的文件放在哪个本地路径
/f -本地文件名,定义要保存的文件改名后保存在本地
/q – IDM将在成功下载之后自动退出
/h – IDM将在成功下载之后挂起连接
/a – 添加一个指定的文件,用/d到下载队列,但是不开始下载
/s -开始任务调度里的队列
按照如上命令格式的规定,建立一个BAT批处理文本文件,将要下载的网址复制到这个文件中,然后用复制粘贴的办法,在这些网址之前均加上合适的下载命令前缀,如“idman.exe /n /d ”或“idman.exe /d ”等,此外还可用“/p <路径名>”指定本地保存路径,然后将此批处理文件存盘待用。
(图5:自动下载批处理文件示例)
4. 执行静默批量下载过程
按如上方法创建批处理文件之后,将批处理文件放在接收下载文件的文件夹中,执行此文件,便可开始列表中文件的自动下载了。
小提示:一劳永逸,下载方案修改易
以上批处理文件可以留存,以后如果要下载不同的链接列表,只需要修改批处理文件中的下载链接即可。如果下载的任务多,可借助于EmEditor等替换能力强的编辑器,对下载命令的格式进行统一快速处理。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。