启用ipv6需确保协议栈开启、网卡启用并获取全局地址(非仅fe80::链路本地地址),windows勾选tcp/ipv6并设自动获取,linux需检查模块、sysctl开关及接口配置,最后用ping -6和test-ipv6.com验证连通性。
启用并配置 ipv6 协议与地址分配,关键不是“装没装”,而是“开没开、配没配对、用不用得上”。windows 和 linux 的操作逻辑不同,但核心目标一致:让系统加载 ipv6 协议栈、在网卡上启用该协议、获取或分配有效的全局 ipv6 地址(非仅 fe80:: 链路本地地址),最后验证连通性。
Windows 系统:启用协议 + 自动获取地址
现代 Windows(XP 起支持,Vista 后强制启用)默认已集成 IPv6 协议栈,多数情况只需确认启用并设为自动获取:
- 打开“网络连接”(可通过 Win+R → ncpa.cpl 快速进入)
- 右键当前活跃连接(如“以太网”或“Wi-Fi”)→ “属性” → 勾选 Internet 协议版本 6 (TCP/IPv6)
- 双击该项 → 选择“自动获取 IPv6 地址”和“自动获得 DNS 服务器地址”
- 保存后,在命令提示符中运行 ipconfig,查找以 2001:、2408:、2409: 等开头的 IPv6 地址(排除 fe80:: 开头的链路本地地址)
- 验证:执行 ping -6 ::1(本机环回)和 ping -6 2001:4860:4860::8888(Google DNS)
Linux 系统:先启协议栈,再配地址
Linux 默认多数发行版已加载 ipv6 模块,但可能被 sysctl 关闭。必须同时满足三项才真正可用:模块加载、内核开关开启、接口启用。
在 Windows 上执行终端命令,或对比 Windows 与 Linux 的 Shell 语法时使用。建议先检测当前 Shell 是 PowerShell 还是 cmd.exe,再给出相应命令……
- 检查基础状态:lsmod | grep ipv6(有输出)、cat /proc/sys/net/ipv6/conf/all/disable_ipv6(值为 0)、ip -6 addr show dev eth0(含 scope global 地址)
- 临时启用(重启失效):sudo modprobe ipv6,再执行 sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0,并放开接口:sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6=0
- 添加临时地址:sudo ip -6 addr add 2001:db8::100/64 dev eth0,确保看到 scope global(仅 scope link 无法跨网段)
- 永久配置按发行版区分:
• Ubuntu/Debian(Netplan):编辑 /etc/netplan/*.yaml,在接口下加 addresses: [2001:db8::100/64],再运行 sudo netplan apply
• RHEL/CentOS/Rocky:编辑 /etc/sysconfig/network-scripts/ifcfg-eth0,确保含 IPV6INIT=yes、IPV6ADDR=2001:db8::100/64、IPV6_AUTOCONF=no,然后 sudo systemctl restart network
验证 IPv6 是否真正可用
不能只看有没有地址,要看能不能通信:
- 查地址有效性:Windows 运行 ipconfig;Linux 运行 ip -6 addr show dev eth0 | grep "global"
- 查默认路由:Linux 执行 ip -6 route | grep "^default";Windows 可用 netsh interface ipv6 show routes
- 测连通性:双方都可运行 ping -6 2001:4860:4860::8888(Google DNS)
- 测 DNS 解析:Linux 用 dig AAAA google.com @2001:4860:4860::8888;Windows 用 nslookup -q=AAAA google.com 2001:4860:4860::8888
- 在线验证:访问 test-ipv6.com 或 ipv6-test.com,确认 “IPv6 connectivity” 显示 Supported
常见误区与避坑提醒
很多问题不是配置错,而是踩了惯性陷阱:
- 看到 fe80:: 地址 ≠ IPv6 可用——这是内核强制 fallback,即使协议栈被禁也会出现
- 改了 /etc/sysctl.conf 没执行 sudo sysctl -p,或没配合网络服务(如 netplan/network-scripts)重启,配置不生效
- Windows 中误用注册表 DisabledComponents = 0xFF 全局禁用 IPv6,可能导致远程桌面、DirectAccess 等功能异常
- 云服务器或某些路由器环境下,DHCPv6 可能超时失败,建议在静态配置中明确设 IPV6_AUTOCONF=no(RHEL系)或 dhcp6: false(Netplan)










