Docker 环境下的 qBittorrent 容器迁移至 lxc 保留配置
1. 背景 我的 qBittorrent 下载器是部署在 Docker 容器中的,而这个 Docker 的宿主机是一个 pve 的容器,他有一个独立的 IP,这个 IP 的网关指向了一个透明网关以实现大陆网络优化(国内特色),关于我的网络拓扑可以查看我以前的这篇 文章 但是下载器的流量经过 clash 之后需要单独对 BT 流量命中规则,我用的是 clash-meta 的核心,支持逻辑规则,于是我是这样写的: # bt下载全直连 - AND,((SRC-IP-CIDR,192.168.5.128/32),(NOT,((DST-PORT,443)))),DIRECT 以上规则解释就是:来自 192.168.5.128IP 的目标端口非 443 的连接全直连,比较简单粗暴一刀切,但是这个规则还是会误杀一部分的流量,但至少可以避免大部分的 BT 流量了。 虽然问题是暂时解决了,但这个方案并不是最优,存在以下坑: 如果 Docker 的宿主机 IP 换了规则得更新 目标端口 80 的流量也应该继续下面的规则匹配 (当然这是因为懒没加到规则里面) 会误杀掉一部分的流量 2. 迁移 为了解决上面提到的问题,也为了把 qbittorrent 版本升级一下,我决定单独给他一个创建一个 lxd 容器,这样可以将网络直接指向上级网关,不必走透明网关。 2.1 创建容器 通过 pve 的内置 pct 命令创建容器: pct create 117 \ ugreen:vztmpl/archlinux-base_20230608-1_amd64.tar.zst \ --cores 6 \ --memory 512 \ --hostname qbit \ --net0 name=eth0,bridge=vmbr0 \ --features mount="nfs;cifs" \ --swap 512 \ --rootfs volume=local-lvm:8 2....