想起来还挺蠢的——改了一个安全设置,把自己锁外面了。
UNRAID 上的 qBittorrent,想着安全加固一下,顺手把 Host header 验证从默认的通配符 * 改成了域名。保存之后刷新页面——401 Unauthorized,白屏。试了 IP 直连、换端口、清缓存,全不行。
qBittorrent 的 Host 验证逻辑:检查 HTTP 请求头里的 Host 字段跟你设置的值是否一致。不一致就直接拒绝。这个机制本来是防 DNS 重绑定攻击的,结果防成了自己。
好在我还能 SSH 进 UNRAID。
怎么修
找到 qBittorrent 的配置文件。路径取决于你的 Docker 挂载方式,我的是:
# 看容器名
docker ps | grep qbit
# 查挂载路径
docker inspect qbittorrent | grep -A5 Mounts
我的配置文件在 /mnt/user/appdata/qbittorrent/config/qBittorrent.conf。
打开,找到这两行:
WebUI\HostHeaderValidation=true
WebUI\ServerDomains=你填错的域名
改成:
WebUI\HostHeaderValidation=false
WebUI\ServerDomains=*
或者直接删掉这两行,qBittorrent 会恢复默认。
保存,重启容器:
docker restart qbittorrent
等十秒,浏览器打开,回来了。全程不到两分钟,但因为不知道问题在哪,之前瞎折腾了半小时。
NAS 上的安全设置,留个后门
这种配置锁死的坑在自托管场景里挺常见的。改安全设置之前做好两件事:备份配置文件 + 确认 SSH 能通。只要 SSH 还能进,大部分「UI 锁死」的问题就是改几行配置的事。