温馨提示×

centos jellyfin怎么外网

小樊
35
2026-08-03 20:38:42
栏目: 智能运维

CentOS 上让 Jellyfin 支持外网访问,核心思路是:
Jellyfin 本身只负责服务,外网访问靠端口映射 / 反向代理 / 内网穿透。下面按最常见、最稳妥的方式一步步来。


一、确认 Jellyfin 已在运行

systemctl status jellyfin

默认端口是:

http://服务器IP:8096

二、CentOS 防火墙放行端口(必须)

CentOS 7/8/Stream 默认用 firewalld

sudo firewall-cmd --permanent --add-port=8096/tcp
sudo firewall-cmd --reload

确认:

firewall-cmd --list-ports

三、方案一:路由器端口映射(最推荐 ✅)

适合:家里 / 公司服务器有公网 IP

1️⃣ 确认你有公网 IP

curl ifconfig.me

在路由器 WAN 口看到的 IP 是否一致
❌ 不一致 → 你是 NAT 内网(运营商 CGNAT),看方案三


2️⃣ 路由器设置端口映射

登录路由器 → 端口转发 / 虚拟服务器:

项目
外部端口 8096(或自定义)
内部 IP Jellyfin 服务器内网 IP
内部端口 8096
协议 TCP

3️⃣ 外网访问

http://你的公网IP:8096

✅ 成功即可


四、方案二:Nginx 反向代理(推荐 + 更安全)

适合:80/443 端口可用,想用域名

1️⃣ 安装 Nginx

yum install -y nginx
systemctl enable --now nginx

2️⃣ 配置反向代理

vim /etc/nginx/conf.d/jellyfin.conf
server {
    listen 80;
    server_name jellyfin.example.com;

    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 -t
systemctl reload nginx

3️⃣ 路由器映射 80 或 443

外网访问:

http://jellyfin.example.com

五、方案三:没有公网 IP(内网穿透)

适合:运营商 NAT / 云服务器无法用

推荐工具

工具 特点
frp 免费、稳定、专业
ZeroTier 组虚拟局域网
Tailscale 最简单

frp 示例(简)

  • 云服务器(frps)
  • 家里 CentOS(frpc)
[jellyfin]
type = tcp
local_ip = 127.0.0.1
local_port = 8096
remote_port = 8096

外网访问:

http://云服务器IP:8096

六、强烈建议:HTTPS(安全)

否则会被劫持、账号泄露

✅ 用:

  • Nginx + Let’s Encrypt(certbot)
  • 或 Cloudflare 代理

七、Jellyfin 安全设置(必做)

进入:

控制台 → 网络
  • ✅ 绑定 0.0.0.0
  • ✅ 启用 HTTPS(证书)
  • ✅ 禁用 UPnP(除非你懂)

八、常见问题

❌ 外网打不开

  • 防火墙没放行
  • 路由器没映射
  • 运营商封 80/8080
  • 公网 IP 是假的(CGNAT)

❌ 很慢

  • 没开硬件转码
  • 没用 H.264
  • 带宽太小

九、我可以继续帮你

你可以直接告诉我: 1️⃣ CentOS 版本
2️⃣ 有没有公网 IP
3️⃣ 用不用域名
4️⃣ 是家庭宽带还是云服务器

我可以 直接给你一条龙配置命令

0