以下内容主要来自咕咕的TG群里的群友贡献的,起因是咕咕想看看docker安装的qBittorrent如何开启IPv6。
咕咕实测成功,对于有需求的小伙伴可以来试试。
1. 启用IPv6条件
2. 配置Docker网络
1、编辑 /etc/docker/daemon.json
,添加以下内容:(如果没有这个文件直接创建)
vim /etc/docker/daemon.json
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:abc1::/64", # IPv6前缀可以自定义,请确保符合规则
"experimental": true,
"ip6tables": true
}
这样就给docker默认的bridge网络启用了ipv6,注意此时只有使用bridge
这个网络的容器才有ipv6
2、重启docker
systemctl restart docker
3、查看docker网络IPv6状态
docker network inspect bridge
4、测试Docker的IPv6网络
docker run --rm -it busybox ping -6 -c4 www.google.com
能ping通谷歌且能正常看到返回的IPv6地址,即docker的IPv6网络表示正常。
3. 通过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/data/docker_data/qBittorrent/config:/config # 绝对路径请修改为自己的config文件夹
- /root/data/docker_data/qBittorrent/downloads:/downloads # 绝对路径请修改为自己的downloads文件夹
ports:
# 要使用的映射下载端口与内部下载端口,可保持默认,安装完成后在管理页面仍然可以改成其他端口。
- 6881:6881
- 6881:6881/udp
# 此处WEB UI 目标端口与内部端口务必保证相同,见问题1
- 8081:8081
restart: unless-stopped
network_mode: bridge # 网络模式选择刚才配置的桥接 bridge
测试qBittorrent的IPv6网络是否正常:
docker exec qbittorrent ping6 -c4 youtube.com
若是已经安装qBittorrent的话,重新部署下,注意网络模式为: network_mode: bridge
通过这边就可以看到现在已经是支持双栈的了:
如果要使用纯IPv6,则:
下个种子测试,看到peer这里连接的就全部是ipv6地址了。
4. 注意事项
- IPv6端口不通,请确保正确配置防火墙,放行相应端口。
- 请确保docker 的版本大于等于
20.10
- 此方法也可用于其他容器,请注意需要其他容器本身是支持IPv6的。
参考资料
https://stackoverflow.com/questions/66090810/docker-compose-expose-port-on-ipv6
https://github.com/docker/compose/commit/25d773c924b6337b63802c0d9649f800b542bf49
https://github.com/moby/moby/pull/41622
---------------
如何觉得文章内容不错,欢迎点击一下广告,支持一下咕咕😍😍😍
原创文章,作者:Roy,如若转载,请注明出处:https://iwanlab.com/docker-qbittorrent-ipv6/