云上使用 Openwrt 安装 Jellyfin,低成本的私人媒体库

本文适合小白用户,大部分只需要点点鼠标即可。大佬请略
Jellyfin是一套多媒体应用程序软体套装,旨在组织、管理和共享数字媒体文件,是Emby的一个自由开源分叉。Jellyfin分为服务端和客户端应用程序,服务端应用程序安装在运行Microsoft Windows、MacOS、Linux等系统的服务器上或Docker上,客户端应用程序安装在智能手机、平板电脑、智能电视、网络机顶盒、电子游戏机或网页浏览器上。支持DLNA以及插有Chromecast的设备也能接收Jellyfin服务端发来的文件。
因为各种原因,发现在VPS上开jellyfin刮削阿里云盘的资源还是非常方便的,如图所示


1.购买VPS(小鸡)
选购VPS,或者其他任何方式的操作系统设备,为了便利,我就选了国内雨云的NAT小鸡(VPS)
https://www.rainyun.com/?ref=MjgyNTM= (AFF链接,嫖点续费钱)优惠码:MjgyNTM=(5元)
VPS选择宿迁(境外的体验不好),网络选择NAT就好了(便宜实用),
系统选择Debian10,方便后面DD安装Openwrt
按年付费在100块左右的低配,优惠码 :MjgyNTM=

2.连接VPS(小鸡)
创建好VPS后,通过SSH客户端连接到小鸡
如果是NAT小鸡需要先通过服务商提供的端口映射管理界面添加端口映射,再通过公用IP经过映射的端口访问小鸡
SSH端口默认为 22 ,假设我们把10086端口映射到22端口
8096为jellyfin默认端口
80端口为Openwrt管理页面的默认端口

以Finalshell为例,新建一个SSH连接

也可以使用服务商提供过的VNC,使用root用户名登陆,粘贴密码直接回车即可
linux输入密码是不显示的

3.DD安装Openwrt
使用 https://git.beta.gs 提提供的一键DD脚本
wget --no-check-certificate -O NewReinstall.sh https://cdn.jsdelivr.net/gh/fcurrk/reinstall@master/NewReinstall.sh && chmod a+x NewReinstall.sh && bash NewReinstall.sh
复制命令到小鸡回车执行,会出现设备的网关信息,如果服务商路由未提供DHCP服务(雨云未提供)则需要备份好IP网关子网掩码信息后面需要用到,然后输入Y,回车即可

稍等一会,会出现下面的选择界面,输入99回车进行自定义安装
输入iStoreOS(基于openwrt的第三方固件)的直链回车,输入Y确认回车即可
https://fw.koolcenter.com/iStoreOS/x86_64_efi/istoreos-21.02.3-2023020316-x86-64-squashfs-combined-efi.img.gz

然后出现以下如图所示,小鸡会自动执行,等待半个小时左右即可完成。

大概10分钟左右SSH客户端会断开小鸡的连接,如下图所示

4.为OpenWRT配置网络
因为Openwrt默认的网口配置不适用VPS,所以SSH客户端已经无法连接到小鸡
需要使用服务商提供的VNC连接,以雨云为例,选择noVNC模式。
直到出现以下界面

Openwrt默认是一登陆状态,直接回车开始操作
输入 ifconfig
查看网口状态,可以看到已有四个网络配置

输入 vi /etc/config/network
修改网络接口配置
从配置文件能看出网口 br-lan
是桥接到 eth0
的虚拟网卡
loopback
是本地循环,docker
是docker容器的虚拟网卡
所以我们来修改config interface 'lan'
的配置
按一下键盘上的 i
来进行修改操作
没有网关配置可以添加一行option gateway '172.16.0.1'
#根据自己的实际情况填写
根据之前所得到的网络配置修改为下图所示
按下键盘的Esc按钮退出编辑,输入:wq!回车(英文的冒号,w,q,感叹号,在左下角显示)

执行命令 /etc/init.d/network restart
来重启网络
然后Ping一个IP地址测试以下,已经有网络连接了
Ping不通域名是因为没有配置DNS,等会到WEB界面设置即可

因为我们把eth0配置成了LAN口,openwrt的防火墙并没有进行拦截LAN的网络连接
根据上面端口映射的设置,在浏览器打开 1.2.3.4:10080 即可访问Openwrt的管理页面
1.2.3.4是服务商提供的公共IP,10080是你映射到小鸡80端口的公共IP端口
PS:因为安全原因,10080端口会被大部分浏览器拦截,所以建议设置成其他端口号

进入 网络->接口->LAN口的编辑->高级设置,修改DNS为223.5.5.5,119.29.29.29等公共DNS

再次点击保存并应用等待Openwrt返回状态即可


5.安装jellyfin
jellyfin的docker镜像大概需要1GB的空间,iStore默认只有1GB的分区
在openwrt首页直接快速分区即可

首页的Docker栏快速配置根目录,转移到刚才的新分区

打开iStore 商城,全部软件,搜索jellyfin,安装jellyfin和 阿里云盘Fuse

打开刚才安装的jellyfin跳转到jellyfin的安装页面,默认配置直接右下角安装即可

等待安装完成,在浏览器打开 1.2.3.4:18096 即可访问 jellyfin 的web页面
1.2.3.4是服务商提供的公共IP,18096是你映射到小鸡8096端口的公共IP端口
6.挂载阿里云盘
打开 阿里云盘 网页端登陆后按 F12 进入开发者模式控制台键入命令获取token
JSON.parse(localStorage.token).refresh_token

打开刚才安装的 阿里云盘 FUSE,填入token,保存应用即可

7.设置刮削器
推荐使用jellyfin-plugin-metashark,Github地址
https://github.com/cxfksword/jellyfin-plugin-metashark
进入控制台》插件》存储库》添加一个第三方库
https://ghproxy.com/https://github.com/cxfksword/jellyfin-plugin-metashark/releases/download/manifest/manifest_cn.json
插件目录里安装MetaShark,安装完后重启jellyfin的Docker容器

设置适用于jellyfin刮削的专用hosts,GitHub地址
https://github.com/CodeFishK/emby-jellyfin-hosts
在
/etc/
目录下新建myhosts
文件,粘贴最新的规则并保存;
#TheMovieDB--------Start #Update:2022.08.15 10:30 52.84.18.58 api.themoviedb.org 52.84.18.78 api.themoviedb.org 52.84.18.75 api.themoviedb.org 52.84.18.87 api.themoviedb.org 84.17.46.53 image.tmdb.org #TheMovieDB--------End
2.在OpenWRT的网络→DHCP/DNS→HOSTS和解析文件→额外的HOSTS文件
添加hosts文件路径/etc/myhosts
即可
8.jellyfin挂载阿里云盘
根据向导设置完jellyfin的用户名密码语言,允许远程访问一定要打开

进入控制台》插件》添加媒体库,/mnt/aliyundrive 就是阿里网盘的挂载目录,根据实际情况填入即可
电视剧电影音乐照片书籍需要分类到不同目录才能达到最好的效果

刮削器只选择MetaShark

因为阿里云盘 FUSE挂载的阿里云盘只有可读权限,所以不要将媒体图像保存到媒体所在文件夹

9.禁止小鸡解码
因为VPS性能一般很弱,转码能力非常差,所以需要关闭解码功能
控制台》用户 反选用户解码功能即可
