PVE 虚拟机安装 1Panel 后,Jellyfin / qBittorrent 映射与挂载
当前环境
PVE 里的 Ubuntu VM 安装了 1Panel
1、分别部署了:
- Jellyfin
- qBittorrent
2、当前端口映射规则:
- 57001 -> 192.168.100.186:8096 # Jellyfin
- 57002 -> 192.168.100.186:8181 # qBittorrent
一、映射后打不开的排查方法
1、先确认应用在 VM 内是否真的监听
在 Ubuntu VM 里执行:
ss -lntp | grep 8096
ss -lntp | grep 8181- 正常应该看到类似:
LISTEN 0 4096 0.0.0.0:8096 ...
LISTEN 0 4096 0.0.0.0:8181 ...- 如果看到的是:
127.0.0.1:8096
127.0.0.1:8181那就说明应用只监听本机回环地址,外部自然打不开。
2、1Panel 里修正监听地址
进入 1Panel 后台:
- 找到目标应用 - 点击编辑 - 把监听地址从
127.0.0.1- 改成:
0.0.0.0保存
3、qBittorrent 当前状态说明
如果你访问 57002 时,浏览器已经返回页面,但提示:
Unauthorized这说明的是 qBittorrent WebUI 配置问题
二、修复 qBittorrent WebUI 无法正常访问
1、写入 qBittorrent 配置文件
- 在 Ubuntu VM 里执行:
mkdir -p /pve/1panel/apps/qbittorrent/qbittorrent/config
cat > /pve/1panel/apps/qbittorrent/qbittorrent/config/qBittorrent.conf <<'EOF'
[Preferences]
WebUI\Address=*
WebUI\CSRFProtection=false
WebUI\HostHeaderValidation=false
WebUI\ServerDomains=*
EOF2、直接重建 qBittorrent容器
cd /pve/1panel/apps/qbittorrent/qbittorrent
docker compose down
docker compose up -d3、确认 qBittorrent 容器状态
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | grep -i qb三、让 qBittorrent 下载到挂载的硬盘 /yesok
1、编辑 qBittorrent 的 compose 文件
nano /pve/1panel/apps/qbittorrent/qbittorrent/docker-compose.yml- 找到 volumes:,改成类似下面这样:
volumes:
- /pve/1panel/apps/qbittorrent/qbittorrent/config:/config
- /pve/1panel/apps/qbittorrent/qbittorrent/data:/downloads
- /yesok:/yesok- 这里的意思是:VM 的 /yesok挂到容器里的 /yesok
2、保存并重建容器
cd /pve/1panel/apps/qbittorrent/qbittorrent
docker compose down
docker compose up -d3、查出真实容器名
- 不要写死容器名,先查:
docker ps --format "table {{.Names}}\t{{.Image}}" | grep -i qb- 假设查到容器名是:
1Panel-qbittorrent-zg7r- 再执行:
docker exec -it 1Panel-qbittorrent-zg7r ls /yesok如果能看到文件,说明挂载成功。
4、权限修正
chown -R 1000:1000 /yesok
chmod -R 775 /yesok5、qBittorrent 里下载目录怎么填
进 qBittorrent WebUI 后,把下载路径设置为:/yesok 或 /yesok/Downloads
让 Jellyfin 读取 /yesok 里的媒体文件
目标:VM 宿主目录:/yesok映射到 Jellyfin 容器里的 /media
1、编辑 Jellyfin 的 compose 文件
nano /pve/1panel/apps/jellyfin/jellyfin/docker-compose.yml- 找到 volumes:,改成类似:
volumes:
- /pve/1panel/apps/jellyfin/jellyfin/config:/config
- /pve/1panel/apps/jellyfin/jellyfin/cache:/cache
- /yesok:/media- 意思是:VM 的 /yesok 映射到容器里的 /media
2、重建 Jellyfin 容器
cd /pve/1panel/apps/jellyfin/jellyfin
docker compose down
docker compose up -d3、查 Jellyfin 容器真实名称
docker ps --format "table {{.Names}}\t{{.Image}}" | grep -i jellyfin- 假设查到容器名是:
1Panel-jellyfin-abcd- 再执行:
docker exec -it 1Panel-jellyfin-abcd ls /media如果能看到 /yesok 里的内容,说明挂载成功。
Jellyfin 后台添加媒体库路径
进入 Jellyfin 后台,添加媒体库时,路径填:/media