如何在 Windows、macOS、Linux 和路由器上启用 IPv6

admin 8671 2026-02-04 05:30:12

先决条件#

在启用 IPv6 之前,你需要三样东西:

ISP 支持 - 致电你的 ISP 或查看他们的文档。如果他们不提供 IPv6,其他都无关紧要。

路由器支持 - 过去 5-7 年的任何路由器都应该可以工作。如果不确定,请查看规格表。

现代操作系统 - Windows 7+、macOS 10.7+ 或过去十年的任何 Linux 都包括 IPv6。

大多数 ISP 已经启用了 IPv6 而没有告诉任何人。你可能已经拥有它。

TL;DR - 快速摘要

要点:

通过访问 ping6.net 或运行 ping6 ipv6.google.com 检查你是否已有 IPv6

Windows/macOS/Linux:IPv6 默认启用——只需配置路由器

路由器:启用 IPv6,将连接类型设置为「原生/自动」,启用路由器通告

安全性:配置 IPv6 防火墙规则以匹配 IPv4 策略

隐私:在客户端设备上启用隐私扩展以防止 MAC 地址跟踪

跳转至: Windows 配置 | macOS 设置 | Linux 指南 | 路由器配置

检查你是否已经有 IPv6#

在配置任何东西之前,检查你的当前状态。访问 ping6.net 查看你的 IPv6 地址是否自动检测到。

从命令行,尝试 ping 仅 IPv6 主机:

# Windows

ping -6 ipv6.google.com

# macOS/Linux

ping6 ipv6.google.com

如果你收到回复,你就完成了。如果没有,请继续阅读。

Windows 10/11#

Windows 上默认启用 IPv6,但以下是如何验证或重新启用它。

GUI 方法#

按 Win + R,键入 ncpa.cpl,按 Enter

右键单击你的网络适配器 → 属性

在列表中找到 Internet Protocol Version 6 (TCP/IPv6)

确保复选框已选中

选择它,单击 属性

选择 自动获取 IPv6 地址

选择 自动获取 DNS 服务器地址

单击 确定

PowerShell 方法#

以管理员身份打开 PowerShell:

# 检查 IPv6 状态

Get-NetAdapterBinding -ComponentID ms_tcpip6

# 在特定适配器上启用 IPv6

Enable-NetAdapterBinding -Name "Ethernet" -ComponentID ms_tcpip6

# 在所有适配器上启用

Get-NetAdapter | Enable-NetAdapterBinding -ComponentID ms_tcpip6

# 验证它工作了

Get-NetIPAddress -AddressFamily IPv6

# 测试连接

Test-NetConnection -ComputerName ipv6.google.com

如果事情不工作,重置 IPv6 栈:

netsh int ipv6 reset

ipconfig /flushdns

然后重启你的网络适配器或重启。

不要在 Windows 上禁用 IPv6

Microsoft 明确建议即使你不使用 IPv6 也保持启用。禁用它会破坏 DirectAccess、HomeGroup,并可能导致 DNS 解析延迟。

macOS#

默认启用 IPv6。以下是如何验证或配置它。

系统设置#

打开 系统设置 → 网络

选择你的连接(Wi-Fi 或以太网)

单击 详细信息

转到 TCP/IP 选项卡

在 配置 IPv6 下,选择:

自动 - 用于 SLAAC/DHCPv6(推荐)

仅链路本地 - 仅用于本地网络

手动 - 用于静态地址

终端#

# 检查当前 IPv6 配置

networksetup -getinfo "Wi-Fi"

# 启用自动 IPv6

networksetup -setv6automatic "Wi-Fi"

# 显示所有 IPv6 地址

ifconfig | grep inet6

# 测试连接

ping6 ipv6.google.com

对于静态配置:

# 设置静态地址

sudo networksetup -setv6manual "Wi-Fi" 2001:db8::10 64 2001:db8::1

Linux#

配置方法取决于你的发行版和网络管理器。

NetworkManager(Ubuntu、Fedora、RHEL)#

GUI:

设置 → 网络

单击连接旁边的齿轮图标

转到 IPv6 选项卡

将方法设置为:

自动 - 带路由器通告的 SLAAC(默认)

仅自动,DHCP - 仅 DHCPv6

手动 - 静态配置

单击 应用

使用 nmcli 的命令行:

# 检查当前设置

nmcli connection show "Wired connection 1" | grep ipv6

# 启用 SLAAC

nmcli connection modify "Wired connection 1" ipv6.method auto

# 启用 DHCPv6

nmcli connection modify "Wired connection 1" ipv6.method dhcp

# 静态配置

nmcli connection modify "Wired connection 1" \

ipv6.method manual \

ipv6.addresses "2001:db8::10/64" \

ipv6.gateway "2001:db8::1"

# 应用更改

nmcli connection up "Wired connection 1"

systemd-networkd(Arch、Debian 服务器安装)#

编辑 /etc/systemd/network/20-wired.network:

[Match]

Name=eth0

[Network]

DHCP=yes

IPv6AcceptRA=yes

# 或用于静态:

# Address=2001:db8::10/64

# Gateway=2001:db8::1

重启服务:

sudo systemctl restart systemd-networkd

使用 ip 命令的手动配置#

对于临时配置或故障排除:

# 显示当前 IPv6 地址

ip -6 addr show

# 添加 IPv6 地址

sudo ip -6 addr add 2001:db8::10/64 dev eth0

# 添加默认路由

sudo ip -6 route add default via 2001:db8::1 dev eth0

# 检查路由表

ip -6 route show

此配置不会在重启后保留。对于永久更改,使用 NetworkManager 或 systemd-networkd。

在 Linux 上测试#

# Ping IPv6 地址

ping6 2001:4860:4860::8888

# 通过 IPv6 ping 主机名

ping -6 google.com

# Traceroute

traceroute6 google.com

# 检查路由表

ip -6 route show

# 显示邻居发现缓存

ip -6 neigh show

路由器配置#

你的路由器需要从你的 ISP 请求 IPv6 并向你的 LAN 通告前缀。配置因品牌而异。

消费者路由器的通用步骤#

登录你的路由器(通常是 192.168.1.1 或 192.168.0.1)

找到 IPv6 设置(在 高级、互联网 或 WAN 下)

启用 IPv6

根据你的 ISP 选择连接类型:

原生/自动 - 最常见,首先使用这个

DHCPv6 - ISP 使用 DHCPv6 前缀委派

PPPoE - 如果你为 IPv4 使用 PPPoE

6rd 或 6to4 - 传统隧道(罕见)

为你的 LAN 启用路由器通告

为你的 LAN 客户端启用 SLAAC 或 DHCPv6(或两者)

保存并在需要时重启

重启后等待 30-60 秒,然后检查你的设备是否有 IPv6 地址。

ASUS 路由器#

高级设置 → IPv6

连接类型:原生或自动

接口:匹配你的 WAN 类型(PPPoE 的 PPP,DHCP 的以太网)

DHCP-PD:启用

路由器通告:启用

应用

ASUS 路由器通常自动检测正确的设置。如果「自动」不工作,尝试「原生」。

TP-Link 路由器#

高级 → IPv6

启用 IPv6:开

互联网连接类型:动态 IP(SLAAC/DHCPv6)

保存

TP-Link 固件因型号而异很大。一些较旧的型号需要「自动配置」或「自动检测」。

Netgear 路由器#

高级 → 高级设置 → IPv6

互联网连接类型:自动检测(或自动配置)

应用

Netgear 的自动检测在大多数 ISP 上效果很好。如果失败,手动尝试「DHCPv6」。

UniFi(Ubiquiti)#

设置 → 互联网

选择你的 WAN 网络

IPv6 连接:DHCPv6

前缀委派大小:/60(或如果你的 ISP 提供,/56)

IPv6 RA:启用

DHCPv6/RDNSS DNS 控制:自动

应用更改

UniFi 对配置更挑剔。检查你的 ISP 文档以了解正确的前缀委派大小。

pfSense / OPNsense#

WAN 接口:

接口 → WAN

IPv6 配置类型:DHCPv6

DHCPv6 前缀委派大小:60 或 56(与 ISP 核实)

仅请求 IPv6 前缀:未选中(你想要 WAN 地址和前缀)

发送 IPv6 前缀提示:如果你的 ISP 需要,请选中

保存 → 应用

LAN 接口:

接口 → LAN

IPv6 配置类型:跟踪接口

IPv6 接口:WAN

IPv6 前缀 ID:0(为其他 VLAN 递增)

保存 → 应用

路由器通告:

服务 → DHCPv6 服务器和 RA

选择 LAN 接口

路由器模式:辅助(启用 SLAAC + DHCPv6)

路由器优先级:正常

保存

pfSense 和 OPNsense 给你最多的控制,但需要理解你的 ISP 的 IPv6 部署方法。大多数有线电视 ISP 使用带 /60 前缀的 DHCPv6-PD。

DNS 配置#

你的设备将通过路由器通告或 DHCPv6 接收 DNS 服务器,但你可以使用公共 IPv6 DNS 服务器覆盖它们。

公共 IPv6 DNS 服务器#

提供商主要次要功能Google Public DNS2001:4860:4860::88882001:4860:4860::8844快速,无过滤Cloudflare2606:4700:4700::11112606:4700:4700::1001注重隐私,快速Quad92620:fe::fe2620:fe::9恶意软件阻止OpenDNS2620:119:35::352620:119:53::53可用内容过滤

设置 DNS 服务器#

Windows(PowerShell):

Set-DnsClientServerAddress -InterfaceAlias "Ethernet" `

-ServerAddresses "2001:4860:4860::8888","2001:4860:4860::8844"

macOS:

networksetup -setdnsservers "Wi-Fi" 2001:4860:4860::8888 2001:4860:4860::8844

Linux(systemd-resolved):

编辑 /etc/systemd/resolved.conf:

[Resolve]

DNS=2001:4860:4860::8888 2001:4860:4860::8844

然后重启:

sudo systemctl restart systemd-resolved

Linux(NetworkManager):

nmcli connection modify "Wired connection 1" \

ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844"

nmcli connection up "Wired connection 1"

隐私扩展#

没有隐私扩展,你的 IPv6 地址包含你的 MAC 地址。这可以跨网络跟踪。

隐私扩展(RFC 4941)生成定期轮换的临时地址。现代系统默认启用此功能,但请验证。

Windows:

# 检查状态

netsh interface ipv6 show privacy

# 如果需要启用

netsh interface ipv6 set privacy state=enabled

macOS:

# 检查状态(应返回 1)

sysctl net.inet6.ip6.use_tempaddr

macOS 上默认启用隐私扩展。如果它返回 0,你的系统配置有问题。

Linux:

# 检查状态(2 = 优先临时地址)

sysctl net.ipv6.conf.all.use_tempaddr

# 临时启用

sudo sysctl -w net.ipv6.conf.all.use_tempaddr=2

# 永久启用

echo "net.ipv6.conf.all.use_tempaddr = 2" | sudo tee -a /etc/sysctl.conf

sudo sysctl -p

有关更多详细信息,请参阅我们关于 IPv6 隐私扩展的文章。

验证#

配置 IPv6 后,验证一切正常:

**检查地址:**使用 ipconfig /all(Windows)、ifconfig(macOS/Linux)或 ip -6 addr(Linux)

**验证连接:**访问 ping6.net 或使用我们的连接测试

**测试 DNS:**使用我们的 IPv6 DNS 查找工具

**检查路由:**使用我们的 Traceroute 工具追踪到 2001:4860:4860::8888 的路径

你应该看到 IPv6 地址(以 2 或 3 开头,而不是 fe80)和成功连接到 IPv6 主机。

fe80 地址呢?

以 fe80:: 开头的链路本地地址是正常的,存在于每个 IPv6 接口上。它们仅用于本地网络通信,而不是互联网连接。你需要全局可路由的地址(以 2 或 3 开头)才能访问 IPv6 互联网。

故障排除#

没有 IPv6 地址#

按顺序检查:

你的 ISP 是否支持 IPv6?致电他们或查看他们的网站。

你的路由器上是否启用了 IPv6?登录并验证。

你的路由器上是否启用了路由器通告?它必须广播 RA 消息。

你的防火墙是否阻止 ICMPv6?ICMPv6 对于 IPv6 是强制性的,与 IPv4 的 ICMP 不同。

**快速测试:**将设备直接连接到你的调制解调器(绕过路由器)。如果你获得 IPv6 地址,问题在你的路由器配置中。

有地址但没有连接#

按顺序检查:

你有默认路由吗?运行 ip -6 route(Linux)或 netstat -rn -f inet6(macOS)并查找 default 条目。

你可以 ping 你的网关吗?使用 ip -6 route 找到你的网关,然后使用 ping6 ping 它。

你可以 ping 外部 IPv6 主机吗?尝试 ping6 2001:4860:4860::8888。

你的 DNS 工作吗?尝试 nslookup google.com 2001:4860:4860::8888。

大多数「无连接」问题要么是缺少默认路由,要么是防火墙规则阻止 IPv6 流量。

IPv6 缓慢或不一致#

这通常表明路径 MTU 发现(PMTUD)损坏。一些 ISP 或路由器阻止 ICMPv6「数据包太大」消息,破坏 PMTUD。

测试:

# 使用大数据包大小 ping

ping6 -s 1400 ipv6.google.com

如果这失败但小 ping 工作,你有 PMTUD 问题。联系你的 ISP 或将路由器 WAN 接口上的 MTU 减少到 1480。

有关详细的故障排除,请参阅我们关于故障排除 IPv6 连接的指南。

相关文章#

IPv6 故障排除:修复常见连接问题 - 学习如何诊断和解决 IPv6 连接问题的实用指南。

DHCPv6 vs SLAAC:设备如何获取 IPv6 地址 - 深入了解 IPv6 地址自动配置的两种方式。

亲自尝试

使用我们的 IPv6 Ping 和 DNS 查询工具测试你的 IPv6 连接。

上一篇
下一篇
相关文章