Ubuntu系统下Jellyfin的网络共享
导读:Ubuntu 下 Jellyfin 使用网络共享的两种常见方式 方式一:将 NAS/SMB/CIFS 或 NFS 网络共享挂载到 Ubuntu 本地目录,再由 Jellyfin 直接扫描该目录。优点是权限可控、稳定;注意 SMB 挂载时...
Ubuntu 下 Jellyfin 使用网络共享的两种常见方式
- 方式一:将 NAS/SMB/CIFS 或 NFS 网络共享挂载到 Ubuntu 本地目录,再由 Jellyfin 直接扫描该目录。优点是权限可控、稳定;注意 SMB 挂载时 Jellyfin 通常需要目录的读/执行权限以列出内容。
- 方式二:将 Jellyfin 与共享目录放在同一台 Docker 主机,通过 Docker 的 volume/bind mount 直接挂载网络共享(本质仍是将共享挂载到宿主机后映射进容器)。
下文以方式一为主,并给出 Docker 的简要指引与网络访问配置。
方案一 SMB/CIFS 挂载到 Ubuntu 并供 Jellyfin 使用
- 安装工具并创建挂载点
- 安装 CIFS 工具:sudo apt update & & sudo apt install -y cifs-utils
- 创建目录:sudo mkdir -p /mnt/nas
- 手动挂载测试(将示例替换为你的 NAS 地址、共享名、账号与密码)
- 命令:sudo mount -t cifs //192.168.2.226/media /mnt/nas -o username=hyl,password=Hao12345600,file_mode=0777,dir_mode=0777
- 说明:file_mode/dir_mode 放宽权限便于 Jellyfin 扫描;生产环境建议用凭据文件替代明文密码。
- 开机自动挂载(写入 /etc/fstab)
- 示例://192.168.2.226/media /mnt/nas cifs auto,username=hyl,password=Hao12345600,file_mode=0777,dir_mode=0777 0 0
- 提示:如挂载失败导致系统无法启动,可在 fstab 该行行首加 # 注释后启动,再修正参数。
- 在 Jellyfin 添加媒体库
- 控制台 → 媒体库 → 添加文件夹,路径选择:/mnt/nas(或子目录如 /mnt/nas/Movies)。
方案二 NFS 挂载到 Ubuntu 并供 Jellyfin 使用
- 安装客户端(如未安装):sudo apt install -y nfs-common
- 手动挂载测试(示例为 NFSv4):sudo mount -t nfs4 192.168.3.80:/volume1/music /mnt/nas_music
- 开机自动挂载(/etc/fstab 推荐写法)
- 示例:192.168.3.80:/volume1/music /mnt/nas_music nfs vers=4,port=2049,_netdev,noauto,x-systemd.automount 0 0
- 要点:vers=4 指定协议;_netdev 表示网络设备依赖;x-systemd.automount 提升开机挂载可靠性。
- 权限与可见性
- 某些 NAS(如群晖)在 NFS 权限中仅“只读”时,Jellyfin 可能无法列出目录,建议测试阶段给予读写权限,或确保导出目录的 UID/GID 与 Jellyfin 运行用户匹配。
- 在 Jellyfin 添加媒体库
- 控制台 → 媒体库 → 添加文件夹,路径选择:/mnt/nas_music(或 /mnt/nas_video 等)。
Docker 场景的简要指引
- 思路:先在宿主机完成 SMB/NFS 挂载(如 /mnt/nas),再用 Docker 的 bind mount 映射进容器。
- 示例(docker run):
- docker run --name jellyfin --restart unless-stopped \ -p 8096:8096 \ -v /mnt/nas:/media:ro \ -v jellyfin-config:/config \ -v jellyfin-cache:/cache \ jellyfin/jellyfin:latest
- 说明:将 /mnt/nas 映射为容器内的 /media,Jellyfin 在容器内扫描 /media 即可;如需写入(如字幕下载),将 :ro 改为 :rw 并确保权限一致。
网络访问与安全配置
- 本地访问与防火墙
- 浏览器访问:http://服务器IP:8096
- 放行端口:sudo ufw allow 8096/tcp(如启用 UFW)。
- 远程访问与端口转发
- 路由器将外部端口(如 8096/TCP)转发到 Jellyfin 服务器的内网 IP:8096。
- 云服务器需同时配置安全组/防火墙放行 8096/TCP。
- 反向代理与 HTTPS(可选)
- 使用 Nginx/Apache 反向代理到 http://127.0.0.1:8096,并配置 Let’s Encrypt 证书启用 HTTPS,提升安全性与可访问性。
- 静态 IP(可选)
- 如需固定地址便于端口转发,可在 Ubuntu 使用 Netplan(/etc/netplan/*.yaml)配置静态 IP。
常见问题与排查
- 目录列表为空或无法扫描
- SMB:确保挂载选项包含 file_mode=0777,dir_mode=0777(或更安全的权限),并以具备读/执行权限的用户挂载。
- NFS:部分 NAS 在只读权限下 Jellyfin 可能无法列出目录,测试阶段可临时放开读写或校准 UID/GID。
- 服务启动失败或 FFmpeg 报错
- 使用 journalctl 查看日志:journalctl -u jellyfin -f;若提示 ffmpeg 不存在,可在 /etc/jellyfin/jellyfin.service.conf 中调整 JellyfinFFmpeg 路径指向系统 ffmpeg(如 /usr/bin/ffmpeg),修改后重启服务。
- 开机未挂载导致媒体库离线
- 检查 /etc/fstab 条目与网络依赖(NFS 建议使用 _netdev 与 x-systemd.automount),确认网络存储已就绪后再启动 Jellyfin。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu系统下Jellyfin的网络共享
本文地址: https://pptw.com/jishu/762253.html
