惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

有赞技术团队
有赞技术团队
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
InfoQ
J
Java Code Geeks
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
D
DataBreaches.Net
Recent Announcements
Recent Announcements
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog RSS Feed
Y
Y Combinator Blog
博客园 - 【当耐特】
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
P
Proofpoint News Feed
量子位
C
Check Point Blog
F
Fortinet All Blogs
罗磊的独立博客
Last Week in AI
Last Week in AI
GbyAI
GbyAI
L
LangChain Blog
博客园 - 司徒正美

Dejavu's Blog

甲骨文 ARM 实例部署 Gemma 4 模型 Headscale + Tailscale 组建虚拟专用网 在 Linux 上使用 Yubikey OpenPGP 应用 BuyVM VPS 块存储挂载教程 Alpine Linux 服务器配置指南 Alpine Linux 安装 Cloudflared Docker 多容器共享中心数据库 安装 Komari 服务器监控工具 Scaleway VPS 安装 Debian Linux Debian 13 下部署 AsmBB 论坛 使用 Kopia 自动化备份服务器数据 Netcup 服务器安装自定义 ISO 镜像 烽火 HG5582A 光猫开启桥接模式 Docker 自托管 Shlink 短链服务 部署 Obsidian LiveSync 实时同步服务指南 我的 2025 年不完全回顾 Linux 下 Intel 核显驱动配置与硬件加速 Fedora Linux 安装配置记录 2025 年优雅地自托管 RSS 服务 Woodpecker CI 和 Gitea 实现 Hugo 自动部署 Gitea/Forgejo 集成 Woodpecker CI/CD 在 Blinko 中使用 Ollama 作为 AI 供应商 Docker 部署 Gitea/Forgejo Plausible CE 启用城市级地理位置识别 Blinko 开源 AI 知识库 Docker 部署指南 Netcup 免税账号注册及购买服务器全记录 Docker 自托管 Cloudreve Pro 私有网盘服务 GiffGaff SIM 卡使用体验和注意事项 简体中文互联网在变得糟糕吗? 如何低成本申请 S/MIME 证书用于个人邮件服务
给 Docker 启用 IPv6 支持
Dejavu Moe · 2026-01-31 · via Dejavu's Blog

概述

Docker 对 IPv6 的支持已经很久了,但默认仍未启用。本文记录在 Debian 13 下通过 NAT ULA,让容器获得 IPv6 出网能力。这种方式无需配置复杂的路由广播,使用体验与 IPv4 几乎完全一致。

修改配置

编辑 Docker 守护进程配置文件

sudo vim /etc/docker/daemon.json

写入以下配置:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "20m",
    "max-file": "3"
  },
  "ipv6": true,
  "fixed-cidr-v6": "fd00:dead:beef::/64",
  "experimental": true,
  "ip6tables": true,
  "default-address-pools": [
    {
      "base": "172.17.0.0/16",
      "size": 24
    },
    {
      "base": "fd00:dead:beef:100::/80",
      "size": 112
    }
  ]
}

重启 Docker 服务使配置生效:

sudo systemctl restart docker

使用

验证容器现在是否具有 IPv6 出网能力

sudo docker run --rm curlimages/curl curl -6 ip.zsh.moe

对于 Compose 编排的容器服务,使用也很简单,以 Warp Docker 为例:

services:
  warp:
    image: caomingjun/warp:slim-latest
    container_name: warp
    restart: unless-stopped
    networks:
      - warp-tunnel
    device_cgroup_rules:
      - 'c 10:200 rwm'
    environment:
      - WARP_SLEEP=2
      - GOST_ARGS=-L socks5://:1080?udp=true -L http://:1081
    cap_add:
      - MKNOD
      - AUDIT_WRITE
      - NET_ADMIN
    sysctls:
      - net.ipv6.conf.all.disable_ipv6=0
      - net.ipv4.conf.all.src_valid_mark=1
      # 开启 IPv6 转发
      - net.ipv6.conf.all.forwarding=1
      # 接受 Docker 网桥路由公告
      - net.ipv6.conf.all.accept_ra=2
      - net.ipv4.ip_forward=1
    volumes:
      - ./data:/var/lib/cloudflare-warp

networks:
  warp-tunnel:
    name: warp-tunnel
    driver: bridge
    # 显式指定启用 IPv6 支持
    enable_ipv6: true

启动服务

sudo docker compose up -d

检查容器内网络接口,可以看到已成功获取私有地址

sudo docker exec warp ip -6 addr show
# 输出示例
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0@if60: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP
    # IPv6 ULA 池划分的 IP
    inet6 fd00:dead:beef:100::2/112 scope global nodad
       valid_lft forever preferred_lft forever
    inet6 fe80::3cc7:aaff:fed1:1680/64 scope link
       valid_lft forever preferred_lft forever
3: CloudflareWARP: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1280 state UNKNOWN qlen 500
    inet6 2606:4700:cf1:1000::3/128 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::6594:3a07:3299:4dbe/64 scope link stable-privacy
       valid_lft forever preferred_lft forever

测试 Warp IPv6 代理的出网能力

# HTTP/2 200
sudo docker exec warp curl -x socks5h://[::1]:1080 -6 https://blog.zsh.moe -v

结论

我们预先定义了一个巨大的私有地址池,Docker 会自动给容器分配私有 IPv6,再经过宿主机 NAT 出网。无需手动划分子网,即可赋予容器无感知的双栈出网能力。

参考资料: