ubantu配置ipv6完整指南

为什么要在 Ubuntu 上配置 IPv6

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

ubantu配置ipv6完整指南
ubantu配置ipv6完整指南

配置前的准备工作

在动手之前,请确认你的网络环境支持 IPv6。可以访问 test-ipv6.com 或使用 ping6 命令测试连通性。同时,记录下你的 IPv6 地址、前缀长度、网关和 DNS 信息。这些信息通常由网络管理员或运营商提供,也可能来自你的路由器或云服务商的控制面板。

一、临时配置 IPv6 地址

临时配置适用于测试或短期使用,重启网络服务或重启系统后配置会丢失。使用 ip 命令即可完成。

1. 查看当前网络接口状态

ip -6 addr show

该命令会列出所有网络接口的 IPv6 地址信息。如果你的接口(如 eth0ens33)没有 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 服务器。也可以使用 resolvconfsystemd-resolved 管理 DNS。

4. 防火墙阻止 IPv6

Ubuntu 默认使用 ufw,它同时管理 IPv4 和 IPv6。查看规则:

sudo ufw status

如果启用了防火墙,请添加相应规则,例如允许 ICMPv6:

sudo ufw allow proto ipv6-icmp

五、总结

配置 IPv6 并不复杂,关键在于理解网络结构并正确使用系统工具。本文介绍了临时与永久两种配置方式,并提供了常见问题的排查思路。建议在实际操作前先备份配置,并在非生产环境中测试。随着 IPv6 的普及,掌握这些技能将让你的 Ubuntu 系统在网络世界中更具适应性和前瞻性。

发表评论