保姆级教程:Docker 部署 qBittorrent 并通过 SSH 隧道实现高安全访问
很多朋友在 VPS 上部署 qBittorrent 时,习惯直接暴露 WebUI(管理界面)的端口。但这样非常容易被公网扫描器盯上,存在极大的安全隐患。
如果你想兼顾下载能力和极致的安全性,最好的方案是:让 qBittorrent 的 WebUI 只绑定本地回环地址(127.0.0.1),然后通过 SSH 隧道加密访问。这样公网绝对无法直接访问你的管理面板,而你本地却能像访问本地软件一样轻松管理。
这篇教程将手把手带你完成整个配置过程!
🛠️ 第一步:前期准备工作
在开始配置 Docker 之前,为了避免下载后出现文件权限问题(比如无法删除、无法读取),我们需要获取当前 VPS 用户的 UID 和 GID。
在你的 VPS 终端中输入以下命令:
Bash
id你会看到类似 uid=1000(user) gid=1000(user) 的输出。请记住这两个数字(通常普通用户是 1000,root 用户是 0),后面配置需要用到。
📁 第二步:创建目录与配置文件
我们需要为 qBittorrent 创建专门的文件夹来存放配置文件和下载的数据。
- 创建并进入目录:
Bash
mkdir -p qbittorrent/config qbittorrent/downloadscd qbittorrent这样我们就建立了一个清晰的目录结构:
Plaintext
qbittorrent/├── docker-compose.yml├── config/ # 存放配置文件└── downloads/ # 存放下载的资源-
创建
docker-compose.yml文件:输入命令创建并编辑文件:
Bash
nano docker-compose.yml- 填入配置代码(记得将
PUID和PGID改成你刚才获取的数字):
YAML
services: qbittorrent: image: lscr.io/linuxserver/qbittorrent:latest container_name: qbittorrent restart: unless-stopped
environment: - PUID=1000 # 改成你的 uid - PGID=1000 # 改成你的 gid - TZ=Asia/Shanghai - WEBUI_PORT=8080
volumes: - ./config:/config - ./downloads:/downloads
ports: # 核心安全配置:WebUI 仅绑定在本地 127.0.0.1,公网无法直接访问 - "127.0.0.1:8080:8080" # BT 对外通信端口,保持公网映射以保证下载速度 - "6881:6881/tcp" - "6881:6881/udp"(保存退出方法:按 Ctrl + O,然后回车确认,最后按 Ctrl + X 退出)
💡 进阶提示:
6881是 BT 的对外通信端口,和 WebUI 的8080是两回事。为了保证下载速度和正常的连接数,建议保留6881的 TCP/UDP 映射。 如果你有极端的安全需求,希望 VPS “除了 SSH 之外完全不开放任何端口”,可以把6881的两行映射删掉。但这会变成纯“出站下载/做种”模式,入站连接能力会变差(不太推荐)。
🚀 第三步:启动容器并获取初始密码
-
一键启动:
在
docker-compose.yml所在的目录下执行:
Bash
docker compose up -d- 获取 WebUI 初始密码: 最新版的 qBittorrent 出于安全考虑,会在首次启动时随机生成一个密码。我们可以通过查看日志来获取它。输入以下命令:
Bash
docker logs qbittorrent 2>&1 | grep -i password如果你是首次启动,日志中会清晰地显示临时密码:
Plaintext
The WebUI administrator username is: adminThe WebUI administrator password was not changed from the default: (这里是一串随机字符)默认账号:
admin默认密码:复制日志中生成的那串字符。
如果容器已经运行了很久,或者你想看完整的近期日志,可以用 docker logs qbittorrent 2>&1 | tail -50 来查看最后 50 行信息。
🔒 第四步:建立 SSH 加密隧道(核心魔法)
现在服务端已经跑起来了,但由于我们限制了只允许本地访问(127.0.0.1),你在电脑的浏览器里直接输入 VPS 的 IP 是打不开网页的。
这时候就需要 SSH 隧道 上场了!
打开你本地电脑(比如你的 Windows、Mac 或 Linux 系统终端),执行以下命令:
Bash
ssh -L 8080:127.0.0.1:8080 root@你的VPS_IPssh -p vps端口 -i ~/.ssh/密钥路径 -L 8080:127.0.0.1:8080 用户名@VPSIP(注意:将 root 替换为你的 VPS 用户名,你的VPS_IP 替换为实际 IP。执行后可能需要输入 VPS 的密码)
这个命令的意思是:把本地电脑的 8080 端口,通过 SSH 加密通道,安全地映射到 VPS 的 127.0.0.1:8080 上。
它的网络访问路径非常安全,如下所示:
Plaintext
你的电脑 (浏览器访问) │ │ SSH 军工级加密隧道 ▼VPS 的 127.0.0.1:8080 │ ▼Docker 里的 qBittorrent🌐 第五步:登录并修改密码
- 在隧道保持开启(刚刚那个终端不要关)的状态下,打开你电脑的浏览器,访问: 👉
[http://127.0.0.1:8080](http://127.0.0.1:8080) - 输入刚才获取的账号(
admin)和临时密码登录。 - 【极其重要】 登录成功后,请立刻修改为你自己的密码! 进入:Tools(工具) → Options(选项) → WebUI → Authentication(验证) 里面进行修改。
🎉 总结
通过这种方式,你的 qBittorrent 管理面板在公网上是绝对隐身的。黑客或扫描器即便扫描你的 VPS,也根本找不到 WebUI 的入口。每次你需要管理下载任务时,只需要在本地电脑敲一行 SSH 命令打通隧道即可,非常适合注重隐私和安全的玩家!