需先启用docker ipv6支持并配置fixed-cidr-v6,再改用host网络模式或macvlan网络,最后在qbittorrent中启用ipv6监听并验证连通性与tracker ipv6支持。

如果您已确认本地网络与NAS设备均支持IPv6,但qBittorrent容器仍无法建立IPv6连接或未显示IPv6 Peer,则问题很可能出在Docker底层网络配置或qBittorrent自身监听设置上。以下是多种可独立实施的IPv6连接配置方案:
一、启用Docker全局IPv6支持并配置子网
该方法通过修改Docker守护进程配置,为所有桥接网络容器提供原生IPv6地址分配能力,是基础且稳定的方案。
1、使用SSH登录群晖NAS(或其他Linux NAS),以管理员权限执行:sudo -i
2、检查Docker配置文件是否存在:ls /var/packages/Docker/target/etc/daemon.json(群晖路径)或ls /etc/docker/daemon.json(通用Linux路径)
3、若文件不存在,创建新文件;若存在,用nano或vi编辑,确保内容包含以下两项(注意JSON语法格式正确):
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:abcd:0012::/64"
}
4、fixed-cidr-v6值必须替换为您的实际IPv6前缀——可通过群晖“控制面板 > 网络 > 网络接口”中查看已获取的IPv6地址,取其/64前缀部分(例如显示240e:399:f7b:6d30::1/64,则填240e:399:f7b:6d30::/64)
5、保存文件后,在群晖“套件中心”中停用再启用Docker套件;或在Linux终端执行:systemctl restart docker
二、改用Host网络模式直通主机IPv6栈
该方案绕过Docker桥接网络层,使容器直接复用宿主机的完整网络协议栈,可确保IPv6地址、路由及邻居发现功能100%可用,适用于对连通性要求极高的PT下载场景。
1、在Container Manager中停止当前qBittorrent容器
2、编辑容器设置,将“网络类型”由bridge明确更改为host
3、删除原有端口映射全部条目(host模式下端口直接暴露,无需映射)
4、进入qBittorrent Web UI(如http://nas-ip:8080),导航至设置 > 连接
5、勾选使用IPv6进行监听,同时确保“监听端口”范围(如6881–6889)未被ISP封锁
6、点击“保存”,观察Web UI右下角状态栏是否出现IPv6: 已启用标识
三、构建macvlan网络实现IPv6双栈隔离
该方案为qBittorrent容器分配独立的IPv6地址和MAC地址,使其在网络层面等效于一台物理设备,彻底规避NAT、端口冲突与邻居发现异常问题,适合多服务共存且需稳定IPv6上传的高级用户。
1、确认宿主机物理网卡名称(如群晖常用eth0,威联通为bond0,PVE为vmbr0):ip -6 addr show | grep inet6 | grep global
2、创建macvlan网络(替换【YOUR_GATEWAY_IPV6】与【YOUR_PARENT_IF】为实际值):
docker network create -d macvlan --subnet=2001:db8:abcd:0012::/64 --gateway=2001:db8:abcd:0012::1 -o parent=eth0 macvlan6
3、重新创建qBittorrent容器时,在“网络”选项中选择macvlan6而非bridge或host
4、容器启动后,进入其内部执行:ip -6 addr show,确认输出中包含global scope的IPv6地址
5、在qBittorrent Web UI的“设置 > 连接”中,启用IPv6监听,并在“绑定地址”字段填入该容器IPv6地址(如2001:db8:abcd:0012::100)
四、验证IPv6连通性与Peer可达性
该步骤不改变配置,但用于精准定位阻断环节:若前三步均完成却仍无IPv6 Peer,说明问题在链路层或Tracker策略侧。
1、在qBittorrent容器内执行:ping6 -c 4 www.google.com,确认基础IPv6连通性
2、访问http://test-ipv6.com,在宿主机及容器内分别测试,比对结果差异
3、在qBittorrent Web UI中打开任意活跃种子,点击“Peers”标签页,筛选列中启用IP版本列,观察是否存在IPv6格式地址(如2001:db8::1:2)
4、若Peers中仅显示IPv4,但在“连接”设置中已启用IPv6监听,则需检查Tracker是否支持IPv6 announce——部分私站Tracker仅接受IPv4 announce请求
5、强制刷新Tracker:右键种子 → “Force reannounce”,观察日志中是否出现Announce (IPv6)字样











