在CentOS上限制Jellyfin的访问权限,可以通过多种方式实现,包括使用防火墙规则、配置HTTP基本认证、使用反向代理服务器(如Nginx或Apache)等。以下是一些常见的方法:
安装并启用防火墙(如果尚未安装):
sudo yum install firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
允许Jellyfin使用的端口(默认是8096):
sudo firewall-cmd --permanent --add-port=8096/tcp
sudo firewall-cmd --reload
限制访问IP: 如果你只想允许特定的IP地址访问Jellyfin,可以使用以下命令:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="8096" accept'
sudo firewall-cmd --reload
安装Apache HTTP服务器(如果尚未安装):
sudo yum install httpd
sudo systemctl start httpd
sudo systemctl enable httpd
启用必要的模块:
sudo systemctl enable httpd.service
sudo systemctl start httpd.service
sudo systemctl status httpd.service
sudo systemctl restart httpd.service
创建一个密码文件:
使用htpasswd工具创建一个密码文件:
sudo htpasswd -c /etc/httpd/conf.d/jellyfin.passwd your_username
系统会提示你输入并确认密码。
配置Apache虚拟主机:
编辑Apache配置文件(例如/etc/httpd/conf.d/jellyfin.conf),添加以下内容:
<VirtualHost *:80>
ServerName your_jellyfin_domain_or_ip
ProxyPass / http://localhost:8096/
ProxyPassReverse / http://localhost:8096/
<Location />
AuthType Basic
AuthName "Restricted Access"
AuthUserFile /etc/httpd/conf.d/jellyfin.passwd
Require valid-user
</Location>
</VirtualHost>
重启Apache服务器:
sudo systemctl restart httpd
安装Nginx(如果尚未安装):
sudo yum install nginx
sudo systemctl start nginx
sudo systemctl enable nginx
配置Nginx:
编辑Nginx配置文件(例如/etc/nginx/conf.d/jellyfin.conf),添加以下内容:
server {
listen 80;
server_name your_jellyfin_domain_or_ip;
location / {
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://localhost: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;
}
}
创建密码文件:
使用htpasswd工具创建一个密码文件:
sudo htpasswd -c /etc/nginx/.htpasswd your_username
重启Nginx服务器:
sudo systemctl restart nginx
通过以上方法,你可以有效地限制Jellyfin的访问权限,确保只有授权用户才能访问你的媒体服务器。