NetworkManager是现代Linux发行版(如RHEL、CentOS、Fedora、Ubuntu等)默认的网络管理工具,它提供了灵活且动态的网络配置方式。当您需要在系统运行时快速启用或重新配置IPv6时,通过 NetworkManager操作是最直接的方法。
本方法适用于桌面环境和大多数使用NetworkManager管理网络的服务器环境。
先决条件
-
系统已安装并运行NetworkManager服务。
-
拥有root或
sudo权限。 -
网络环境(如路由器或ISP)已提供IPv6地址分配支持。
配置步骤详解
1. 检查当前连接状态
首先,确定要修改的网络连接名称。
nmcli connection show # 或 nmcli con
输出将显示所有可用的连接(如 “Wired connection 1”, “eth0”, “ens192”)。
2. 修改指定连接的 IPv6 配置
使用nmcli命令修改连接的ipv6.method。这是最关键的参数,决定了IPv6的获取方式:
-
auto:无状态地址自动配置 (SLAAC)。系统根据路由器通告的前缀自动生成IPv6地址。这是最常见的模式。
-
dhcp:使用有状态的DHCPv6获取IPv6地址和DNS等信息。
-
manual:手动配置静态IPv6地址。选择此模式后,您还需要额外设置ipv6.addresses、ipv6.gateway等参数。
-
link-local:仅配置链路本地地址(fe80::/10),适用于无路由器的本地网络通信。
-
disabled:完全禁用此连接的IPv6。
提示:IPv6 auto与dhcp模式的区别是什么?详细对比解析
示例命令:
# 假设连接名为 “eth0”,我们将其设置为自动获取 (SLAAC)
sudo nmcli connection modify eth0 ipv6.method auto
# 如果需要手动配置静态地址(例如 2001:db8::cafe/64,网关为 2001:db8::1)
sudo nmcli connection modify eth0 ipv6.method manual ipv6.addresses “2001:db8::cafe/64” ipv6.gateway “2001:db8::1” ipv6.dns “2001:4860:4860::8888”
3. 应用并激活新配置
修改后,需要重新激活连接以使更改生效。
sudo nmcli connection up eth0
验证配置
执行以下命令检查 IPv6 是否已成功启用并获取地址:
# 查看所有网络接口的 IPv6 地址
ip -6 addr show eth0
# 或使用 nmcli 查看此连接详情
nmcli connection show eth0 | grep -i ipv6
# 测试 IPv6 网络连通性(需要外部网络支持)
ping6 -c 4 ipv6.google.com
故障排查与技巧
-
连接不生效:尝试完全重启NetworkManager服务:sudo systemctl restart NetworkManager。
-
仅有fe80开头的地址:这属于链路本地地址。请检查您的网络路由器是否发送了IPv6路由器通告,或确认ipv6.method设置正确。
-
查看日志:使用 journalctl -u NetworkManager -f 实时查看NetworkManager日志,有助于诊断问题。
总结
通过NetworkManager启用IPv6是最推荐的常规方法,因为它:
-
动态灵活:无需重启系统或服务,修改即时生效。
-
配置清晰:nmcli 命令行工具功能强大,易于脚本化。
-
集成度高:与系统托盘、网络管理 GUI 工具完美集成。
适用场景:大多数桌面系统、由 NetworkManager 管理的云服务器或虚拟机。
扩展阅读
-
nmcli完整手册:man nmcli 或 nmcli –help
-
NetworkManager 官方文档中关于 IPv6 配置的详细介绍
- IPv6无状态地址自动配置(SLAAC)使设备能自动获得IPv6地址,无需DHCP服务器。其过程是:设备先创建链路本地地址,再接收路由器发出的通告(RA)以获取网络前缀,随后将此前缀与自身接口标识符组合,生成全局IPv6地址。该方法无需维护状态,但需额外机制(如无状态DHCPv6)来配置DNS。
原创文章,作者:实战侠,如若转载,请注明出处:https://www.shizhanxia.com/knowledgebase/linux-networkmanager-ipv6.html
微信扫一扫
支付宝扫一扫
