【Ubuntu】打造全自动追剧工具
部署参考,以及部署效果展示:https://www.bilibili.com/video/BV1wD4y1B7xZ
原视频是使用群晖nas进行部署,本文使用ubuntu上安装
一共需要安装三个软件:nas-tools(管理器), Emby(媒体播放器), qBittorrent(下载器)
挂载nas到ubuntu
把局域网的Nas设备挂载到Ubuntu电脑上
单次挂载
首先在Ubuntu 的 /mnt
目录下新建一个 NAS 挂载目录 nas
:
1 | sudo mkdir /mnt/nas |
安装 cifs-utils
1 | sudo apt-get install cifs-utils |
查看用户的 uid
和 gid
1 | id root |
运行下面的命令,完成单次挂载
1 | sudo mount -t cifs -o uid=root,username=admin,password=xxxx,iocharset=utf8,file_mode=0777,dir_mode=0777 //192.168.6.154/public /mnt/nas/ |
- uid 选择ubuntu系统上普通用户或root
- username 是nas上的用户名
- password 是nas上的密码
- iocharset=utf8 防止有中文路径
- //192.168.6.154/public 是nas下的public目录
- /mnt/nas/ 挂载到ubuntu的这个目录下
- file_mode=0777,dir_mode=0777 权限全开
开机自动挂载
编辑启动挂载文件 fstab
1 | sudo vim /etc/fstab |
在文件最后追加一行
1 | # 仅给root用户全部权限 |
在重启之前,你可以手动测试这个配置是否有效。
首先,卸载之前可能已经手动挂载的共享:
1 | sudo umount /mnt/nas/ |
运行以下命令来挂载所有在/etc/fstab
中定义的文件系统:
1 | sudo mount -a |
如果没有错误提示,说明配置成功。
重启系统,并检查CIFS共享是否自动挂载了。
通过上述步骤,每次系统启动时,CIFS共享就会自动挂载到指定的挂载点。如果遇到问题,检查日志文件(如/var/log/syslog
)中的错误信息
Ubuntu共享文件
ubuntu共享其目录给局域网内的其它设备
通过 Samba 共享目录
安装samba
1 | sudo apt install samba |
编辑 Samba 配置文件:
1 | sudo vim /etc/samba/smb.conf |
在文件末尾添加以下内容:
1 | [nas] |
重启 Samba 服务
每次修改配置文件后,都需要重启 Samba 服务以使更改生效:
1 | sudo systemctl restart smbd |
测试 Samba 共享
你现在可以从其他计算机访问共享目录。比如在 Windows 上,通过文件资源管理器访问:
1 | \\your_ubuntu_ip\nas |
在 Linux 上,可以使用以下命令挂载共享目录:
1 | sudo mount -t cifs //your_ubuntu_ip/nas /path/to/mount -o guest |
nas-tools安装
nas-tools安装参考:https://github.com/hsuyelin/nas-tools
安装
方式一:Docker拉镜像安装
1 | docker pull hsuyelin/nas-tools:latest |
教程见 这里 。
如无法连接Github,注意不要开启自动更新开关(NASTOOL_AUTO_UPDATE=false),将NASTOOL_CN_UPDATE设置为true可使用国内源加速安装依赖。
查看所有镜像
1 | docker images |
镜像pull后再运行nas-tools
1 | sudo docker run -p 3333:3000 -d \ |
-p 3333:3000
把容器的3000端口映射到外面的3333
端口-v /docker/nastools/config/:/config
使用外部的配置文件-v /mnt/nas/wan/Videos/:/mnt/nas/wan/Videos
将视频路径映射
方式二:Docker-compose直接运行
可以新建一个nas-tools
目录,在这个目录下,创建docker-compose.yml
文件,将下面的内容修改好填写进去
1 | version: "3" |
随后运行
1 | docker compose up -d |
在本地输入服务器IP:端口3333,就可以顺利登录nas-tools,默认用户名admin,默认密码password。
设置
开始基础设置,需要先设置TMDB API Key,不然有本身功能可能无法正常运行,请从TMDB网站注册帐号,并申请API,目前申请还是比较容易,信息填写尽量用英文,用中文可能会出现错误,无法申请成功,这里就不做演示。
设置好后,请重启服务
设置媒体库
依次新增目录,目录是docker容器内目录,而不是实际路径
下载器设置
这里就按照qbittorrent为例
设置地址,登录帐号密码,目前应该有bug,无论怎么设置地址都能测试成功。建议设置IP地址为实际qbittorrent服务器(不是127.0.0.1)。
jellyfin设置
服务器地址请选择实际媒体服务器地址,而不一定127.0.0.1
如果在docker中运行nastools,这里请填写宿主机的局域网ip地址
如果做了Frp的映射,这里Jellyfin的ip地址和端口,就是映射后的公网ip:端口,后面的qBittrorent同理
在jellyfin中控制台–高级–API密钥,进行添加
复制到nas-tools媒体服务器页面即可,测试成功后,回到开始页面,既可以看到相关数据了
后续的设置参考:
https://post.smzdm.com/p/aev09ngz/
下载器安装
qBittorrent和transmission安装一个即可,从功能上来说,qBittorrent更全
(推荐)qBittorrent安装与配置
安装qBittorrent
使用Ubuntu的官方仓库安装qBittorrent
Ubuntu的官方仓库通常包含qBittorrent的稳定版本,只需打开终端并执行以下命令即可:
1 | sudo apt update |
开机自启qBittorrent
在/etc/systemd/system/qbittorrent-nox.service
添加下面的内容,作为开机自动启动的服务
1 | [Unit] |
随后执行下面两条命令
1 | # |
建议先运行一遍qbittorrent-nox
,将端口设置为9090(可以为其它的端口号)【因为它需要你输入一个’y’,哎……新版本的要求】
1 | sudo qbittorrent-nox --webui-port=9090 |
进入网页后,建议将用户名、密码修改完成后,再将进行关掉,使用systemctl方式重启进程
1 | # 如果直接运行,因为无法输入'y',从而无法进入网页 |
其它相关命令
1 | # 查看状态 |
修改qBittorrent端口
-
停止qBittorrent-nox服务(如果正在运行):
1
sudo systemctl stop qbittorrent-nox
如果你没有将qBittorrent-nox作为服务运行,而是直接在终端中运行,你可以直接关闭它。
-
编辑qBittorrent配置文件: qBittorrent-nox的配置文件通常位于
~/.config/qBittorrent/qBittorrent.conf
1
vim ~/.config/qBittorrent/qBittorrent.conf
如果qBittorrent-nox是以不同的用户运行,你可能需要切换到相应用户的家目录,或者根据实际情况调整路径。
-
在配置文件中找到
WebUI\Port=8080
这一行(如果没有这一行,你需要添加它),将8080
更改为你想要的端口号。例如,如果你想将端口改为9090
,则修改为:1
WebUI\Port=9090
保存并关闭文件。
-
重新启动qBittorrent-nox
1
sudo systemctl start qbittorrent-nox
qBittorrent常用命令
启动Qbittorrent:
1 | qbittorrent-nox |
在后台启动Qbittorrent:
1 | qbittorrent-nox -d |
查看Qbittorrent版本:
1 | qbittorrent-nox -v |
启动 Qbittorrent 并指定 Web 面板的端口:
1 | qbittorrent-nox --webui-port=xxxx |
查看帮助:
1 | qbittorrent-nox -h |
添加tracker
https://jsd.cdn.zzko.cn/gh/XIU2/TrackersListCollection/best.txt
transmission安装
使用官方PPA
-
打开终端。
-
添加Transmission的官方PPA(请在执行前确认PPA地址是最新的):
1
2bashCopy code
sudo add-apt-repository ppa:transmissionbt/ppa -
更新软件包列表:
1
2sqlCopy code
sudo apt update -
安装Transmission:
1
2Copy code
sudo apt install transmission
但安装完成后,可能为3.0版本,如果需要安装4.0版本,参考:https://launchpad.net/ubuntu/+source/transmission
添加tracker
https://jsd.cdn.zzko.cn/gh/XIU2/TrackersListCollection/best.txt
Emby安装
安装参考
https://emby.media/linux-server.html
安装完成后
使用下面命令控制emby-server的进程活动
1 | # 启动 |
Emby设置访问权限
确定Emby用户
Emby可能会使用emby
或emby-server
作为默认用户
1 | ps aux | grep emby |
这条命令应该会显示Emby进程,以及它们是由哪个用户启动的。
如果Emby服务是以
emby
用户身份运行的。这意味着为了让Emby能够正确访问和读取你的媒体文件存储位置,你需要确保emby
用户至少拥有读取权限。
假设你的媒体文件存储在某个目录中,比如/media/emby
,你可以按照以下步骤来授予emby
用户对该目录的访问权限。
(推荐)方法一:使用访问控制列表(ACL)
如果不想改变文件和目录的所有者,你可以使用ACL来为emby
用户添加额外的权限,而不会影响其他用户的权限。首先,安装ACL工具(如果你的系统还没有安装):
1 | sudo apt-get install acl |
然后,设置ACL:
1 | sudo setfacl -R -m u:emby:rXw /media/emby |
这会递归地为emby
用户授予对/media/emby
目录及其内容的读写和执行权限。
方法二:授予读写权限
你可以使用chmod
和chown
命令来更改目录的权限和所有权,以确保emby
用户能够访问该目录。考虑到安全和实用性,推荐的做法是让emby
用户成为目录的所有者或确保emby
用户是访问该目录的组的一部分。
如果改变目录的所有者对你来说是可行的,你可以执行:
1 | sudo chown -RW emby:emby /media/emby |
这会将/media/emby
目录及其子目录和文件的所有权更改为emby
用户和组。
接下来,确保目录具有正确的权限:
1 | sudo chmod -RW 755 /media/emby |
这会设置目录的权限,使得所有者有读、写和执行权限,而组用户和其他用户有读和执行权限。
验证权限
完成上述步骤后,你可以使用getfacl
命令来检查目录的访问控制列表,确保emby
用户已被正确授权:
1 | getfacl /media/emby |
这应该会显示emby
用户的权限,从而验证设置是否正确。
确保Emby服务已经重新启动,以应用任何权限变更:
1 | sudo systemctl restart emby-server |
通过以上步骤,Emby应该能够访问指定目录下的媒体文件了。如果仍然遇到权限问题,确保检查所有上级目录也对emby
用户开放了至少读取的权限。
将上述三者安装好后,如果需要将影片存放在本地nas中,仅需将对应的目录修改成nas中的目录即可