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

2023-04-25 16:15:19 33点赞 362收藏 35评论

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

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

  

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

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

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

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

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

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

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

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

前提条件

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

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

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

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

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

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

sysctl net.ipv6.conf.all.disable_ipv6

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

配置IPv6支持

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

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

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

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

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

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

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

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

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

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

🔺在打开的配置界面先输入字母【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】命令保存即可!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

NAS推荐

文章的最后还是顺便推荐几款目前市面上性能不错,可玩性也很高的NAS成品吧!

👉群晖DS920+

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

🔺虽说目前群晖主推新品DS923+,但我个人建议还是找合适的渠道上群晖DS920+吧,主要原因配置几乎一样,但920+更便宜吗,性价比更高!都是主流的4硬盘位产品,采用了intel 赛扬J4125 4核心处理器,为4核/4线程设计,原生搭载4GB DDR4内存,但支持扩展,尾部提供了双USB3.0,千兆LAN和eSATA,以及双92mm排气风扇。用来玩Docker、搭建虚拟机等应用没有任何问题。

群晖(Synology)DS923+4盘位万兆扩展NAS网络存储服务器文件共享自动备份私有云团队云盘4900元京东去购买

👉威联通TS-464C

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

🔺威联通TS464C处理器采用Intel 赛扬N5095,有4个3.5英寸盘位和2个NVMe SSD盘位,支持Intel OpenVINO AI引擎,全方位提升AI算力,并且原生搭载usb3.2和HDMI2.0,这个对于玩虚拟机的小伙伴来说,直接搞定了直连的问题,还是非常实用的。

威联通(QNAP)TS-464C宇宙魔方四核心处理器网络存储服务器内置双M.2插槽NAS私有云(453Dmini升级)3599元京东去购买

👉华硕AS6704T

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

🔺华硕AS6704T搭载Intel Celeron新一代N5105 10纳米四核心处理器,内置DDR4-2933 4GB双通道内存,拥有2个2.5G端口,四个M.2 PCie3.0(NVMe)SSD插槽,整体做工和配置都对得起华硕“阿苏斯”应有的品质!

华硕(ASUS)AS6704T4盘位四核心处理器NAS网络存储/私有云存储服务器/网盘个人云/文件备份/双2.5G口4799元京东去购买

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


展开 收起

群晖(Synology)DS923+4盘位万兆扩展NAS网络存储服务器文件共享自动备份私有云团队云盘

群晖(Synology)DS923+4盘位万兆扩展NAS网络存储服务器文件共享自动备份私有云团队云盘

暂无报价 去购买

威联通(QNAP)TS-464C宇宙魔方四核心处理器网络存储服务器内置双M.2插槽NAS私有云(453Dmini升级)

威联通(QNAP)TS-464C宇宙魔方四核心处理器网络存储服务器内置双M.2插槽NAS私有云(453Dmini升级)

暂无报价 去购买

华硕(ASUS)AS6704T4盘位四核心处理器NAS网络存储/私有云存储服务器/网盘个人云/文件备份/双2.5G口

华硕(ASUS)AS6704T4盘位四核心处理器NAS网络存储/私有云存储服务器/网盘个人云/文件备份/双2.5G口

暂无报价 去购买

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2679元起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2829元起

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

4279元起

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

3279元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

2190.84元起

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

2079元起

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

4079元起

QNAP 威联通 TS-216 双盘位NAS (ARM Cortex A55、2GB)

QNAP 威联通 TS-216 双盘位NAS (ARM Cortex A55、2GB)

1179元起

QNAP 威联通 TS-462C 4盘位NAS(赛扬N4505、4GB)

QNAP 威联通 TS-462C 4盘位NAS(赛扬N4505、4GB)

1879元起

QNAP 威联通 TS-564 五盘位NAS (N5105、8GB)

QNAP 威联通 TS-564 五盘位NAS (N5105、8GB)

1980元起

QNAP 威联通 TS-464C2 4盘位NAS(赛扬N5095、8GB)

QNAP 威联通 TS-464C2 4盘位NAS(赛扬N5095、8GB)

2679元起

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

8899元起

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

1529元起

QNAP 威联通 TS-262C 双盘位NAS(赛扬N4505、4GB)

QNAP 威联通 TS-262C 双盘位NAS(赛扬N4505、4GB)

1699元起

QNAP 威联通 TS-264C-4G 双盘位 NAS存储(N5105、4GB)

QNAP 威联通 TS-264C-4G 双盘位 NAS存储(N5105、4GB)

2000.13元起
35评论

  • 精彩
  • 最新
  • 置顶 首先 fe80不是路由器分配的 而是设备自己生成的(对应v4网络中没网络时那个169.x.x) fdxx才是是(对应192.168.x.x) 其次鉴于桥接用的依然是nas的公网v6 ip 所以其实指定subnet时指定fdxx fe80应该都是可以的 指定公网前缀并不会让容器本身获取公网v6 指定的作用仅仅是启用v6要求必须给定一个v6 ip 一个引子而已 推荐给定fd00::/64 设置可以给个网关 fd00::1

    校验提示文案

    提交
    给老哥置顶了!说实话我特别喜欢在评论区看到你这样的回复,因为只有你这样的回复才最有价值。折腾是我的兴趣,同时我也爱钻研,我很多时候分享我折腾的经验(准确说根本就不是经验,只是过程)其实就是想在评论区得到像你这样专业的朋友指出我的错误,并且让其他还在折腾中的其他朋友少走弯路,这种网络氛围是真的很好!感谢你!

    校验提示文案

    提交
    收起所有回复
  • 置顶 并不需要这么复杂,docker官方有教程,去看看

    校验提示文案

    提交
    华硕NAS可用,威联通不行。登录管理员账号修改后,重启又恢复初始状态了。

    校验提示文案

    提交
    收起所有回复
  • 留言板好友:打开聊天框劈里啪啦一顿输出,不管对方会不会回复,单纯当作一个说话的地方。双方达成共识:我说出来就行了,你接不接收无所谓。

    校验提示文案

    提交
    这这这...

    校验提示文案

    提交
    收起所有回复
  • 大佬太厉害了,懂得真多

    校验提示文案

    提交
    大王别这么说,我只是业余玩家 [喜极而泣]

    校验提示文案

    提交
    收起所有回复
  • 感谢。。回去试试。。不过IPV6好像也限制上传速度了。。

    校验提示文案

    提交
    应该是你运营商分配的上限吧

    校验提示文案

    提交
    是呢。就是尴尬

    校验提示文案

    提交
    收起所有回复
  • 顶一个,正好需要

    校验提示文案

    提交
    感谢评论,欢迎关注,后期还有更多同类干货 [高兴]

    校验提示文案

    提交
    收起所有回复
  • 电信ipv6的前缀是每天都会变的,然后好像是两天一过期,过期的话还要去改配置重启docker吗

    校验提示文案

    提交
    应该只填写不会变的部分就好了

    校验提示文案

    提交
    收起所有回复
  • 照着内容改了,连群晖都重启了,运行"docker network inspect bridge"后显示的"EnableIPv6:false",我的群晖版本是6.2.3

    校验提示文案

    提交
    同群晖,dsm7.1.1也不行

    校验提示文案

    提交
    同dsm7.1.1 运行"docker network inspect bridge"后显示的"EnableIPv6:false" 不行

    校验提示文案

    提交
    还有5条回复
    收起所有回复
  • 写的很棒,多谢值友分享

    校验提示文案

    提交
  • 学习中 [傻笑] 有不懂的我再请教您

    校验提示文案

    提交
  • 太麻烦,有更好的DHCP获取IPv6方法

    校验提示文案

    提交
  • 收藏学习了

    校验提示文案

    提交
  • 重启路由器,如果ipv6变了,还得重新配置一遍

    校验提示文案

    提交
  • 我努力学习一下,互暖互赞

    校验提示文案

    提交
  • 问题是v6的prefix总在变。。。

    校验提示文案

    提交
  • bridge网络是docker建立的一个子网,宿主机相当于一个网关,我以为这样加了ipv6也是没用的,ipv6都是动态 不固定的,结果楼组居然成了....... 我自己的做法是一个OpenWrt(虚拟机)直连光猫获取公网IPV6 然后反向代理(端口转发)到nas的ipv4端口,这样外部可以通过ipv6访问OpenWrt来间接访问nas, 而 adguardhome 我是单独部署的 用的macvlan模式,手动添加ipv6的网关实现,另外docker对ipv6支持不是很好,我这个adguardhome 关闭后就无法再打开,会显示ip占用,必须重启docker进程,但不开启ipv6就没这问题

    校验提示文案

    提交
  • 其实对于威联通来说,启用容器的ipv6只需要在docker的创建容器指令中加入--net="host"即可,此时端口映射失效,不用再配置端口映射。如果是docker-compose创建的应用,加一句和container_name同级的配置network_mode: host

    校验提示文案

    提交
    QNAP Docker加Host的意思就是从DHCP服务器获取一个独立的IP的意思吗?

    校验提示文案

    提交
    意思是使用宿主机也就是威联通这台机器的IP及端口,所以要注意端口冲突问题

    校验提示文案

    提交
    收起所有回复
  • 威联通不成功

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
362
扫一下,分享更方便,购买更轻松