为什么要在 Ubuntu 上配置 IPv6
随着全球 IPv4 地址池的枯竭,IPv6 已经成为现代网络环境中不可回避的话题。对于 Ubuntu 用户来说,无论是搭建服务器、配置开发环境,还是连接纯 IPv6 网络,掌握 IPv6 的配置方法都是一项基本技能。本文将从实际运维角度出发,介绍在 Ubuntu 系统中配置 IPv6 的多种途径,涵盖临时配置、永久配置以及常见问题的排查思路。

配置前的准备工作
在动手之前,请确认你的网络环境支持 IPv6。可以访问 test-ipv6.com 或使用 ping6 命令测试连通性。同时,记录下你的 IPv6 地址、前缀长度、网关和 DNS 信息。这些信息通常由网络管理员或运营商提供,也可能来自你的路由器或云服务商的控制面板。
一、临时配置 IPv6 地址
临时配置适用于测试或短期使用,重启网络服务或重启系统后配置会丢失。使用 ip 命令即可完成。
1. 查看当前网络接口状态
ip -6 addr show
该命令会列出所有网络接口的 IPv6 地址信息。如果你的接口(如 eth0 或 ens33)没有 IPv6 地址,说明尚未配置。
2. 添加 IPv6 地址
sudo ip -6 addr add 2001:db8:0:1::100/64 dev eth0
将 2001:db8:0:1::100/64 替换为你的实际地址,eth0 替换为你的网卡名称。注意前缀长度(如 /64)必须与网络规划一致。
3. 添加默认路由
sudo ip -6 route add default via 2001:db8:0:1::1
将网关地址替换为你的实际网关。
4. 验证配置
ping6 -c 4 2001:db8:0:1::1
如果能收到回复,说明 IPv6 基本连通。
二、永久配置 IPv6 地址
永久配置需要修改系统配置文件。根据你使用的网络管理工具不同,方法有所差异。Ubuntu 目前主要使用 netplan(默认)或 ifupdown(传统方式)。
1. 使用 netplan 配置(Ubuntu 18.04 及以后)
netplan 的配置文件位于 /etc/netplan/ 目录下,通常以 .yaml 结尾。编辑前建议先备份。
sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak
然后编辑文件:
sudo nano /etc/netplan/01-netcfg.yaml
一个典型的静态 IPv6 配置示例如下:
network:
version: 2
ethernets:
eth0:
dhcp4: true
dhcp6: false
addresses:
- 2001:db8:0:1::100/64
routes:
- to: default
via: 2001:db8:0:1::1
nameservers:
addresses:
- 2001:4860:4860::8888
- 2001:4860:4860::8844
如果希望使用 DHCPv6 自动获取地址,可以将 dhcp6: true 并移除静态地址部分。保存文件后,应用配置:
sudo netplan apply
如果配置有误,可以使用 sudo netplan try 进行测试,超时后会自动回滚,避免因配置错误导致断网。
2. 使用 ifupdown 配置(传统方式)
对于习惯使用 /etc/network/interfaces 的老用户,可以这样配置:
auto eth0
iface eth0 inet6 static
address 2001:db8:0:1::100/64
gateway 2001:db8:0:1::1
dns-nameservers 2001:4860:4860::8888
编辑后重启网络服务:
sudo systemctl restart networking
注意:在 Ubuntu 18.04 之后,默认不再安装 ifupdown,需要先安装:
sudo apt update && sudo apt install ifupdown
三、启用 IPv6 转发(可选)
如果你的 Ubuntu 主机作为路由器或网关,需要开启 IPv6 转发。编辑 /etc/sysctl.conf,添加或修改以下行:
net.ipv6.conf.all.forwarding = 1
然后应用:
sudo sysctl -p
四、常见问题与排查
1. IPv6 地址无法生效
- 检查网卡是否启用了 IPv6:
cat /proc/sys/net/ipv6/conf/all/disable_ipv6,如果输出为 1,则需执行sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0。 - 确认配置文件语法正确,尤其是 netplan 的缩进和冒号。
2. 路由不通
使用 ip -6 route show 查看路由表。如果默认路由缺失,手动添加或检查网关地址是否正确。
3. DNS 解析失败
确保在配置中指定了 IPv6 DNS 服务器。也可以使用 resolvconf 或 systemd-resolved 管理 DNS。
4. 防火墙阻止 IPv6
Ubuntu 默认使用 ufw,它同时管理 IPv4 和 IPv6。查看规则:
sudo ufw status
如果启用了防火墙,请添加相应规则,例如允许 ICMPv6:
sudo ufw allow proto ipv6-icmp
五、总结
配置 IPv6 并不复杂,关键在于理解网络结构并正确使用系统工具。本文介绍了临时与永久两种配置方式,并提供了常见问题的排查思路。建议在实际操作前先备份配置,并在非生产环境中测试。随着 IPv6 的普及,掌握这些技能将让你的 Ubuntu 系统在网络世界中更具适应性和前瞻性。