本文最后更新于 2024-05-17,

若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益, 请联系我 删除。

本站只有Telegram群组为唯一交流群组, 点击加入

文章内容有误?申请成为本站文章修订者或作者? 向站长提出申请

启用IPv6条件

安装Docker和docker-compose(安装Docker🐳)
请确保宿主机已经有IPv6地址

你可以采用终端命令的方法来检测。输入以下命令:

sysctl net.ipv6.conf.all.disable

如果返回值为0,说明IPv6已启用。如果返回值为1,则说明你那边的IPv6没启用,这个时候你就得使用排除法,检查你那面的网络情况了,比如路由器配置,防火墙什么的~

配置Docker网络

编辑 /etc/docker/daemon.json ,添加以下内容:(如果没有这个文件直接创建)

vim /etc/docker/daemon.json

我们需要确定自己机器所在的IPv6地址段,想要知道很简单,直接输入查询IPv6路由表信息的命令:ip -6 route show 即可。可以看出它列出了NAS中所有IPv6网络路由信息,包括目标地址、掩码位、网关地址、优先级等。而我们需要的就是上图箭头所示的IPv6地址段(请记住是公网IPv6的,而不是下面的fe80开头的)。

1715888473816.webp

{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:abc1::/64",  # IPv6前缀可以自定义,请确保符合规则
"experimental": true,
"ip6tables": true
}

这样就给docker默认的bridge网络启用了ipv6,注意此时只有使用bridge这个网络的容器才有ipv6

重启docker

systemctl restart docker

查看docker网络IPv6状态

docker network inspect bridge

1715888621653.webp

测试Docker的IPv6网络

docker run --rm -it busybox ping -6 -c4 www.google.com

能ping通谷歌且能正常看到返回的IPv6地址,即docker的IPv6网络表示正常。

通过docker安装qBittorrent

以下是我的qBittorrent的docker-compose的配置:

version: "2"
services:
  qbittorrent: 
    image: linuxserver/qbittorrent:4.4.1     # 之前很多小伙伴反馈默认latest版本会出现rss功能无法使用的情况,这边还是建议大家选择一个特定的版本(一般PT站点貌似也会推荐特定版本)
    container_name: qbittorrent
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai # 你的时区
      - UMASK_SET=022
      - WEBUI_PORT=8081 # 将此处修改成你欲使用的 WEB 管理平台端口 
    volumes:
      - /root/qBittorrent/config:/config # 绝对路径请修改为自己的config文件夹
      - /root/qBittorrent/downloads:/downloads # 绝对路径请修改为自己的downloads文件夹
    ports:
      # 要使用的映射下载端口与内部下载端口,可保持默认,安装完成后在管理页面仍然可以改成其他端口。
      - 6881:6881 
      - 6881:6881/udp
      # 此处WEB UI 目标端口与内部端口务必保证相同
      - 8081:8081
    restart: unless-stopped
    network_mode: bridge       # 网络模式选择刚才配置的桥接 bridge

测试qBittorrent的IPv6网络是否正常:

docker exec qbittorrent ping6 -c4 youtube.com

1715888713078.webp

若是已经安装qBittorrent的话,重新部署下,注意网络模式为: network_mode: bridge

通过这边就可以看到现在已经是支持双栈的了:

1715888732367.webp

如果要使用纯IPv6,则:

1715888747329.webp

下个种子测试,看到peer这里连接的就全部是ipv6地址了。

注意事项

IPv6端口不通,请确保正确配置防火墙,放行相应端口。
请确保docker 的版本大于等于20.10
此方法也可用于其他容器,请注意需要其他容器本身是支持IPv6的。