本贴的目的是为了使Jellyfin可以正常访问tmdb、imdb等网站并刮削元数据。
并非通过反向代理使用https访问Jellyfin,也不是为了给Jellyfin添加域名进行远程访问。
网上好像没有人写过相关的教程。我也是借助GPT成功给套件版Jellyfin设置了网络代理。所以就出一贴分享一下。
标题内容直接跳转到方法三。
环境
目前最新的群晖7.2系统,Jellyfin我选择的是矿神源的社群套件版,不是docker版。和套件中心的原版Jellyfin不知道有什么差别。
网络代理服务器是内网的OpenWRT(iStoreOS)旁路由192.168.1.102,用那个猫猫头软件进行代理……懂的都懂,就不展开赘述了。
主路由是192.168.1.1,主路由设置了ddns动态域名解析,关闭防火墙,并且设置dmz主机为群晖。(主路由的设置不是必要的,这里是为了方便公网访问。如果没有公网需求请无视。)
方法一(不推荐)
比较简单的方法自然是直接修改群晖的网关和dns,全部改到旁路由的192.168.1.102,这样全部流量都会走旁路由代理。不管你什么套件docker的,全走代理,主打一个大力出奇迹。
不过只建议纯内网,简单用途的家庭影音服务器这么设置。大多数情况下不建议修改群晖的网关和dns为旁路由。这样会导致很多问题,如果你的群晖部署了qbittorrent,可能会导致BT下载的流量也走代理……
还有通过公网访问的情形下,有的主路由会丢弃无用的数据包所以要开启动态ip伪装,然后要怎么设置主路由和旁路由的端口转发、内网的设备如何正确解析域名ip、旁路由的dns服务器设置……真的巨复杂无比,而且每个人由于家庭网络环境、路由器型号不同,大概率会遇到不同的问题,网上都不一定有案例可以查询。
所以建议不要乱改网关和DNS了,就保持默认主路由,主路由再设置一个ddns,一个dmz主机,这样最简单。如果你的路由器不支持上述功能就花钱换个好点的。(如果没有公网需求请无视这段。)
方法二
改hosts。
网上的教程很多就不赘述了。我自己的环境,改完hosts之后不能刮削演员的元数据了。这就和一开始的目的背道而行了。毕竟剧集、电影的元数据都可以用tinymediamanager进行刮削,唯独演员的元数据需要使用Jellyfin进行刮削,tmm只能提供演员列表,详细的简介、图片是没办法导入Jellyfin的。
但我还是建议先试试看改hosts,因为这样比较简单,而且你不一定会遇到和我相同的问题。
方法三
设置http/https网络代理。
我的socks5/http(s)混合代理端口是7893。你的端口、账号密码是啥,直接去翻猫猫头的覆写设置就行了。账号密码拉到最底下就能看到。
如果直接在群晖控制面板里面这样设置的话,你的docker(Container Manager)就可以加载出注册表了。但是Jellyfin依然不会走代理
修改系统的环境变量我也试过了,没有用
Jellyfin里面好像可以直接设置代理(这里),但是我不知道该用什么格式,试着输入了几种格式,日志里面都报错了,遂放弃
正确的做法是修改Jellyfin的启动脚本
#切换root用户
sudo -i
#修改启动脚本
cd /var/packages/Jellyfin/scripts/
vi ./start-stop-status
按 i 进入编辑模式
在 start_daemon () 的 date > ${LOG_FILE} 底下换行添加
# 设置代理
export HTTP_PROXY="http://账号:密码@代理地址:端口号"
export HTTPS_PROXY="http://账号:密码@代理地址:端口号"
#如果你的代理地址使用了ssl,就改成"https://账号:密码@代理地址:端口号"
完成之后长这样
按ESC退出编辑,然后输入:wq回车,保存并退出。
重启一下Jellyfin
synopkg restart Jellyfin
这样应该就可以正确设置代理,刮削元数据了。还不行的话停用套件再启用试试看。