|
|
发表于 2025-9-14 02:00:04
|
查看: 126 |
回复: 0
VPN-加速器-翻墙论坛免责声明
资料来源均来着网友自发行为,如出现问题请自行联系负责人,自行判别真伪
用“全球单播前缀(GUA)”给容器(推荐,纯路由,无 NAT) ,理想做法是给 docker 网桥分一个 /64 公网前缀,上游把这个 /64 路由到你的宿主机。在常见云上这通常需要“申请一个额外 /64 并设置路由到实例”,如果你的供应商支持:
假设你拿到了 2403:18f0:3:30a::/64 并路由到宿主 eth0。改 daemon.json:
{ "ipv6": true, "fixed-cidr-v6": "2403:18f0:3:30a::/64", "ip6tables": true, "experimental": true}重启 Docker:
systemctl restart docker相关说明
其实做完第二步开启 IPv6 转发,大部分情况下应该也就够用了,这里解释下,为什么开启转发就能通公网?
你的主机本身已经有公网 IPv6(/64 前缀)
- 你的 eth0 地址是 公网ipv6,在运营商的全球单播前缀里。
- 这意味着宿主机具备完整的 IPv6 出口能力。
Docker 给容器分配了一个 ULA 子网 fd00::/80
- 一旦开启 net.ipv6.conf.all.forwarding=1,宿主机就会把来自 docker0 的 IPv6 包直接路由出去。
- 如果运营商的网关不做过滤,那么即使源地址是 fd00::/80(ULA),包也会被转发到公网。
- 一些云环境会“宽松处理”源地址检查 → 导致 容器用 ULA 也能访问公网。
没有 NAT66,但依然能出去
- 正常来说,ULA(fd00::/8)是“只在本地有效”,外网不应该接受。
- 你能通,说明:
- 要么是出口网关自动给这些包做了 SNAT(NAT66),把源地址换成宿主的公网地址;
- 要么运营商的路由策略比较“宽松”,直接放行了。
- 开启 IPv6 转发 后,容器能用 IPv6 出公网 → 说明出口网关帮你做了隐藏的地址处理。
- 在逻辑上,你相当于“白捡了 NAT66 功能”,Docker 不需要自己配置 NAT 规则。
|
VPN-加速器-翻墙论坛免责声明
发现违规内容,私信联系发给管理员
(出处: VPN加速翻墙论坛)
|