企业项目管理、ORK、研发管理与敏捷开发工具平台

网站首页 > 精选文章 正文

再次硬杠Docker 开启 IPv6 ,如何让默认的bridge网络启用IPv6 支持

wudianyun 2025-05-15 21:32:30 精选文章 2 ℃

【终极篇】再次硬杠Docker 开启 IPv6 ,如何让默认的bridge网络启用IPv6 支持

终极篇的意思就是最后一篇,个人能力有限,只能折腾到这里了~~

哈喽小伙伴们好,我是Stark-C,在前几篇讲到在使用NAS的Docker功能中,为了使容器支持IPv6网络,我分享了两种方案。

其中最简单的可能就是直接在搭建容器的时候使用host网络,前提是宿主机(也就是NAS)上已经成功启用了IPv6网络。

弊端就是随着NAS上的应用越来越多,端口可能会产生冲突。特别是我这样的折腾玩家,说实话很多时候完全就是为了折腾而折腾,需要的不需要的都一股脑都想安装,到最后端口冲突出现问题自己都不知道怎么回事(说到底自己就是又菜又爱玩的那种~)

但是额外增加macvlan网络虽说也行得通,但是问题是上手对于新手有些困难不说,登录容器的WEB界面还要在记另外的一个IP+端口,也不是很方便。

所以我一直在寻求更便捷的方案,最后实在没辙,想到直接寻求NAS的人工客服看看能不能得到答案,没想到还真找到了又一种可行方案。

此次我找的人工客服是华硕那边的,直接问的就是关于Docker开启IPv6的问题,然后我是隔天才收到答复。虽说没有得到具体的操作步骤,但是他直接扔出了一个教程链接。不过这个教程链接其实并不是特定NAS的使用场景,所以我们操作起来也不是上手即用,好在他的思路是没有问题的。所以,我就出了这篇偏向于新手的教程文章。

PS:今天的教程都需要通过SSH连接的方式在远程终端的操作下进行,至于SSH工具请自行解决,Putty,XShell,FinalShell等都可以,我个人使用的是FinalShell。

前提条件

今天的教程目的很简单:就是在Docker默认的bridge网络启用IPv6 支持。

所以需要的条件就一个:NAS本身已经启用正确的IPV6地址

请注意一定是公网IPV6地址,而不只是“fe80”开头的地址。“fe80”是本地链接 IPv6 地址,也即是局域网内路由器给你分配的,这个没有用。

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

sysctl net.ipv6.conf.all.disable_ipv6

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

配置IPv6支持

确定NAS已启用IPv6支持,我们就可以直接配置了!

首先我们需要启用管理员模式,因为之后的操作没有管理员权限可能会无法打开。启用命令为【sudo -i】,回车之后输入NAS的登录密码即可,输入密码界面没有显示,完成之后直接回车就可以了。

接着输入命令【docker network inspect bridge】确认下我们Docker 中的bridge网络,可以看出IPv6是未启用状态。

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

接着输入命令【vi /etc/docker/daemon.json】进入编辑模式(NAS上其实是没有这个文件的,这个命令同时也可以自动创建)

在打开的配置界面先输入字母【i】进入编辑模式,然后输入以下命令:

{ "ipv6": true, "fixed-cidr-v6": "你的IPv6地址段", "experimental": true, "ip6tables": true }

请注意:上面命令中的中括号以及每段后面的逗号一定要带上,最后一段命令后面没有符号!

这里对以上命令稍作解释:

ipv6-->设置为true,启用对ipv6的支持。 fixed-cidr-v6-->配置ipv6子网。 ip6tables-->启用ip6tables,docker会在ip6tables中配置docker网络相关的规则链。 experimental-->启用实验特性,ip6tables是docker的一个实验功能,所以需要设为true。

完成之后按下键盘上的ESC退出按键,然后输入【:wq】命令保存即可!

然后我们需要重启NAS的Docker容器。华硕NAS直接在App Central里面拨动一次Docker Engine开关即可!

重启Docker容器之后再次输入命令【docker network inspect bridge】,可以看到bridge网络下的IPv6已经变成了“true”,并且下面还多出一行我们的IPv6地址段。

并且我们查看Portainer的网络列表中的bridge网络,后面已经分配到IPv6地址了。

我重新搭建了qbittorrent容器(搭建过程就不说了,之前分享太多次了),直接使用的默认的bridge网络,搭建完成之后可以看到它已经分配到一个IPv6地址。

下载的时候在用户列表中已经可以正常看到IPv6地址用户了,并且还是IPv4&IPv6双栈的。理论上这个对qbittorrent下载提速是有效的!

更爽的是,用它来下载PT站上的资源,连上的IPv6用户还会更多,资源也就更稳了!

PT站内个人信息已经成功的显示了自己的IPv6 IP地址,Nice!

但是今天的这个方案还有一个问题我没有得到解决,就是如果NAS重启之后前面的“/etc/docker/daemon.json”配置文件会丢失,需要重新配置。希望有知道解决方案的大佬在评论区不吝赐教,谢谢~

好了,以上就是今天给大家分享的内容,我是爱分享的Stark-C,如果今天的内容对你有帮助请记得收藏,顺便点点关注,我会经常给大家分享各类有意思的软件和免费干货,咱们下期再见!谢谢大家~

Tags:

最近发表
标签列表