在 CentOS 上调试 Jellyfin,一般从 日志、服务状态、权限、端口、FFmpeg、SELinux 这几个方向入手。下面按“由浅入深”的顺序给你一套实用排查方法。
systemctl status jellyfin
常见状态:
active (running):服务正常failed / inactive:服务未启动如果没启动:
systemctl start jellyfin
systemctl enable jellyfin
journalctl -u jellyfin -f
适合看:
默认路径:
/var/log/jellyfin/
重点文件:
/var/log/jellyfin/jellyfin.log
/var/log/jellyfin/jellyfin.err.log
查看实时日志:
tail -f /var/log/jellyfin/jellyfin.log
常见错误关键词:
Permission deniedFFmpeg exited with codeAddress already in useSQLite errorJellyfin 默认使用:
8096(HTTP)
8920(HTTPS,若启用)
ss -lntp | grep 8096
或
netstat -lntp | grep 8096
如果没有监听:
firewall-cmd --list-ports
firewall-cmd --add-port=8096/tcp --permanent
firewall-cmd --reload
假设媒体目录是 /data/media:
chown -R jellyfin:jellyfin /data/media
chmod -R 755 /data/media
确认 Jellyfin 用户:
ps aux | grep jellyfin
SELinux 经常导致 能扫描但播放失败。
getenforce
setenforce 0
如果关闭后正常,说明是 SELinux 问题。
semanage fcontext -a -t httpd_sys_content_t "/data/media(/.*)?"
restorecon -Rv /data/media
ffmpeg -version
Jellyfin 需要 FFmpeg(通常自带或单独安装)。
在 jellyfin.log 中常见:
FFmpeg exited with code 1
ffmpeg -i /data/media/test.mp4 -f null -
/dev/dri 权限ls -l /dev/dri
chown -R jellyfin:jellyfin /dev/dri
Jellyfin 使用 SQLite,数据库损坏会导致无法启动。
数据库位置:
/var/lib/jellyfin/data/
备份后尝试:
mv /var/lib/jellyfin/data/jellyfin.db /var/lib/jellyfin/data/jellyfin.db.bak
systemctl restart jellyfin
⚠️ 会丢失部分配置(用户、播放记录)
编辑服务文件:
systemctl edit jellyfin
添加:
[Service]
Environment="JELLYFIN_LOG__LOGLEVEL=Debug"
重载并重启:
systemctl daemon-reload
systemctl restart jellyfin
✅ systemctl status jellyfin
✅ journalctl -u jellyfin -f
✅ /var/log/jellyfin/jellyfin.log
✅ 端口 + 防火墙
✅ 媒体目录权限
✅ SELinux
✅ FFmpeg / 转码
你可以直接贴出:
systemctl status jellyfinjournalctl -u jellyfin --no-pager | tail -n 50jellyfin.log 报错片段我可以 直接帮你定位是哪一类问题(启动失败 / 播放卡死 / 转码失败 / 权限)。