温馨提示×

centos与jellyfin的远程访问设置

小樊
42
2025-12-25 08:32:27
栏目: 智能运维

CentOS 与 Jellyfin 远程访问设置

一、前置准备与基础连通

  • 确认服务器具备公网可达的 IP 或域名,并在云厂商安全组/本机防火墙放行相应端口。
  • 建议先通过 SSH 远程管理服务器,确保能稳定登录与排障:
    • 安装与启动:sudo yum install -y openssh-server && sudo systemctl start sshd && sudo systemctl enable sshd
    • 放行端口:sudo firewall-cmd --permanent --add-service=ssh && sudo firewall-cmd --reload
    • 连接测试:ssh 用户名@服务器IP -p 22
  • 如需图形桌面远程,可另行配置 VNC/RDP,但媒体访问建议使用 Web 与反向代理方式。

二、方式一 直接端口映射访问 Jellyfin

  • 安装 Jellyfin(RPM 方式,适用于 CentOS 7/8 Stream):
    • 导入仓库并安装:sudo yum install -y epel-release 后按官方仓库指引安装 Jellyfin(或下载对应 RPM 包本地安装)。
  • 放行防火墙端口(Jellyfin 默认 8096/TCP;若启用内置 HTTPS 则放行 8920/TCP):
    • sudo firewall-cmd --permanent --add-port=8096/tcp
    • sudo firewall-cmd --permanent --add-port=8920/tcp
    • sudo firewall-cmd --reload
  • 启动服务:sudo systemctl start jellyfin && sudo systemctl enable jellyfin
  • 路由器端口转发(家庭宽带场景):将公网端口(如 8888)转发到内网服务器 IP:8096
  • 远程访问:在浏览器打开 http://公网IP:8888http://域名:8096
  • 可选:如需仅监听所有地址,可在 /etc/jellyfin/config/config.yaml 中设置 server.host: "0.0.0.0" 并重启服务。

三、方式二 反向代理与 HTTPS(推荐)

  • 安装 Nginx:sudo dnf install nginx && sudo systemctl start nginx && sudo systemctl enable nginx
  • 配置反向代理(示例:/etc/nginx/conf.d/jellyfin.conf):
    server {
        listen 80;
        server_name your_domain_or_ip;
        location / {
            proxy_pass http://127.0.0.1:8096;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    
    重载 Nginx:sudo systemctl restart nginx
  • 申请免费 SSL(Certbot + Nginx):
    • 安装:sudo yum install -y certbot python3-certbot-nginx
    • 签发并自动配置:sudo certbot --nginx -d your_domain
  • 访问:使用 https://your_domain 直达 Jellyfin(端口 443)。
  • 说明:反向代理可统一证书管理、隐藏端口、便于后续添加访问限制与日志审计。

四、方式三 Docker 部署与端口规划

  • 准备目录:sudo mkdir -p /srv/jellyfin/{config,cache}(媒体目录按需挂载,如 /media)。
  • 运行容器(示例映射常用端口与目录):
    sudo docker run -d --name=jellyfin \
      -p 8096:8096 -p 8920:8920 \
      -p 7359:7359/udp -p 1900:1900/udp \
      -v /srv/jellyfin/config:/config \
      -v /srv/jellyfin/cache:/cache \
      -v /media:/media \
      -e TZ=Asia/Shanghai \
      --restart unless-stopped \
      nyanmisaka/jellyfin:latest
    
    • 端口说明:8096/8920(HTTP/HTTPS)7359/UDP(自动发现)1900/UDP(DLNA)
  • 防火墙放行:sudo firewall-cmd --permanent --add-port={8096,8920}/tcp --add-port={1900,7359}/udp && sudo firewall-cmd --reload
  • 硬件转码(可选,Intel Quick Sync):添加 --device=/dev/dri:/dev/dri 并确保宿主机已安装相应驱动。

五、无公网 IP 与常见排障

  • 无公网 IP 的两种便捷方案:
    • 内网穿透:使用如 花生壳 等工具创建外网域名映射,将本地 8096 暴露到公网;可设置访问口令、IP 白名单与防护策略。
    • SD-WAN/组网:如 蒲公英 等,将多地点设备组成虚拟局域网,实现内网直连访问。
  • 常见排障要点:
    • 云安全组/本机防火墙是否放行对应端口(如 8096/8920/TCP、1900/7359/UDP)。
    • SELinux 拦截:可临时 sudo setenforce 0 验证,若恢复则按需配置 SELinux 布尔值或策略。
    • 日志定位:/var/log/jellyfin/jellyfin.log 查看启动、访问与插件报错。
    • 路由器端口转发是否正确,外网端口与内网 IP:端口 是否一致。
    • 反向代理需正确设置 X-Forwarded-For/Proto,WebSocket 路径(如 /socket)按需代理。

0