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。
查看日志:使用 journalctl -u NetworkManager -f 实时查看NetworkManager日志,有助于诊断问题。
总结
通过NetworkManager启用IPv6是最推荐的常规方法,因为它:
- 动态灵活:无需重启系统或服务,修改即时生效。
- 配置清晰:nmcli命令行工具功能强大,易于脚本化。
- 集成度高:与系统托盘、网络管理GUI 工具完美集成。
- 适用场景:大多数桌面系统、由NetworkManager管理的云服务器或虚拟机。
扩展阅读
- nmcli完整手册:man nmcli 或 nmcli –help
- NetworkManager官方文档中关于 IPv6 配置的详细介绍
- SLAAC:IPv6无状态地址自动配置(SLAAC)使设备能自动获得IPv6地址,无需DHCP服务器。其过程是:设备先创建链路本地地址,再接收路由器发出的通告(RA)以获取网络前缀,随后将此前缀与自身接口标识符组合,生成全局IPv6地址。该方法无需维护状态,但需额外机制(如无状态DHCPv6)来配置DNS。
原创文章,作者:实战侠,如若转载,请注明出处:https://www.shizhanxia.com/knowledgebase/linux-networkmanager-ipv6.html
微信扫一扫
支付宝扫一扫
