当前位置: 首页 > news >正文

如何在群晖中,正确配置 docker 的 ipv6 地址

参考

2023年9月12日

  • https://synocommunity.com/
  • https://github.com/wangliangliang2/fix_synology_docker_ipv6
  • https://post.smzdm.com/p/an3np8m7/

正文

关于这个话题,国内搜索引擎得到的结果出奇的一致,且过时。
(看的我脑壳痛)
(何为万众一心,齐心协力,见识到了)

这里记录我认为的,正确的,便捷的,配置方法 for 有缘人

方法一: 通过 docker web ui 配置 ipv6 网络

国内教程千篇一律说要 ssh 连接后台改 docker 配置,诸如:
/var/packages/Docker/etc/dockerd.json
/volume1/@appconf/Docker/dockerd.json
/usr/syno/etc/packages/Docker/dockerd.json
(用 /var/packages/Docker/scripts/start-stop-status 启停)

{"ipv6": true,"fixed-cidr-v6": "2001:db8:1::/64","experimental": true,"ip6tables": true
}

大概是受到,这篇 docker 官方文档的影响:(假设cver们懂看官方文档)
https://docs.docker.com/config/daemon/ipv6/

其实完全不用,群晖早在 17年 就支持 ipv6 的 web ui 配置了
https://www.synology.com/en-br/releaseNote/Docker
在这里插入图片描述

在这里插入图片描述

相比 global 全局 的配置 network,单独添加好处:

  1. web ui 支持,无需 ssh 进入后台设置
  2. 影响可控/影响范围小 —— 哪个需要给哪个开 ipv6

方法二: 通过 cli 添加 docker network (包括分析IP地址如何选择)

命令行添加更方便管理 docker / docker-compose
参考:
https://gdevillele.github.io/engine/userguide/networking/default_network/ipv6/
https://dev.to/joeneville_/build-an-ipv6-network-with-docker-compose-434i
https://stackoverflow.com/questions/39649458/how-to-assign-ipv6-address-with-docker-compose

创建虚拟网卡

docker network create --ipv6 \--subnet=172.16.2.0/24 \--gateway=172.16.2.1  \--subnet=<mynetv6-prefix/subnet> \--gateway=<mynetv6-gw> \mynetv6-1

or

# 自动选择 ipv4 内网地址段
docker network create --ipv6 \--subnet=<mynetv6-prefix/subnet> \--gateway=<mynetv6-gw> \mynetv6-1

or

# 自动选择 ipv4 内网地址段
# 自动决定 ipv6 网关
docker network create --ipv6 \--subnet=<mynetv6-prefix/subnet> \mynetv6-1

<mynetv6-prefix/subnet><mynetv6-gw> 如何填写?
建议写一个 nat6 地址 (ipv6的局域网网端)
fc00::/7
fc00::/8 (未启用)
fd00::/8 (推荐)
e.g.
fd00:996:996:996::/64 - subnet
fd00:996:996:996::1 - gw

更多 ipv6 网络划分等基础概念,推荐参考:

  1. 视频 - 中文 by 老湿基 - https://www.bilibili.com/video/BV1N14y1j7Ku/
  2. 视频 - 德国人说英文 by OneMarcFifty - https://www.youtube.com/watch?v=oItwDXraK1M
  3. 文字 (推荐) - IPv6 Cheat Sheet - https://github.com/onemarcfifty/cheat-sheets/blob/main/networking/ipv6.md

测试

docker run --rm --name testnetv6 --network ip6net -p 80:80 traefik/whoami 
$ curl http://[::1]:80
Hostname: d87e379f092b
IP: 127.0.0.1
IP: ::1
IP: 172.22.0.2
IP: fdff:db80:ab::2
IP: fe80::42:acff:fe16:2
RemoteAddr: [fdff:db80:ab::1]:51470
GET / HTTP/1.1
Host: [::1]:80
User-Agent: curl/7.79.1
Accept: */*

例子: 配置 docker qbittorrent ipv6 nat6 端口映射 外网访问

NAS
fd00::/80
port:18888
2400::/60
port:18888
fd00:abcd::/64
port:18888
docker
qbittorrent
ISP
router

todo

http://www.lryc.cn/news/164764.html

相关文章:

  • XSS入门 XSS Challenges
  • 李沐《动手学深度学习》torch.cat() 和 torch.stack()的区别及思考
  • 【算法与数据结构】235、LeetCode二叉搜索树的最近公共祖先
  • bboss 流批一体化框架 与 数据采集 ETL
  • JVM详细教程
  • Smartbi吴华夫:后疫情时代,BI发展趋势的观察与应对
  • 软件设计模式系列之三———工厂方法模式
  • pytorch 多卡分布式训练 调用all_gather_object 出现阻塞等待死锁的问题
  • SpringMvc增删改查
  • 【计算机网络】网络编程接口 Socket API 解读(5)
  • 手动实现一个bind函数!
  • 数据结构-时间复杂度/空间复杂度
  • 英语写作中“展示”、“表明”demonstrate、show、indicate、illustrate的用法
  • Redis的java客户端
  • Android环境配置笔记
  • element-table 行的拖拽更改顺序(无需下载sortableJs
  • Docker部署jenkins
  • 从0到1学会Git(第三部分):Git的远程仓库链接与操作
  • 虚拟机Ubuntu操作系统常用终端命令(1)(详细解释+详细演示)
  • redis实战-redis实现异步秒杀优化
  • Python爬虫-IP隐藏技术与代理爬取
  • 二刷力扣--链表
  • 返回值加const ,为了不拷贝得到成员的值,但被赋值的左值也要const
  • 本地如何使用HTTPS进行调试
  • 观察者模式:对象之间的订阅机制
  • 【1462. 课程表 IV】
  • Kerberos 身份验证
  • R语言贝叶斯METROPOLIS-HASTINGS GIBBS 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间...
  • 通付盾入选2023年度“上市苗圃工程”重点企业
  • SpringMVC之文件上传下载