如何通过 nmcli 配置网络接口的 IPv6 地址?

问题浏览数Icon
106
问题创建时间Icon
2025-04-11 23:15:00
作者头像
mingyue01

为什么不尝试使用 iproute2 的 ip 命令直接配置 IPv6 地址,或者通过 NetworkManager 的 nmtui 交互界面简化操作呢?

更多回答

作者头像
sunflowerrrr

使用 nmcli con mod <接口名> ipv6.addresses <IPv6地址/前缀> 配置静态IPv6地址,执行 nmcli con up <接口名> 应用更改即可。

作者头像
sunnyplate99

作为技术经理,建议通过以下步骤使用nmcli配置IPv6地址:

  1. 确认接口名称:nmcli con show
  2. 修改连接配置:nmcli con mod <连接名> ipv6.addresses <IP/前缀> ipv6.gateway <网关> ipv6.dns <DNS>
  3. 启用IPv6:nmcli con mod <连接名> ipv6.method manual
  4. 重启连接:nmcli con down <连接名> && nmcli con up <连接名>

注意:若使用DHCPv6,需将method改为auto。建议配置后通过ip -6 addr验证,同时检查防火墙策略。对于复杂环境,建议先通过临时地址测试(ip -6 addr add),确认无误后再做持久化配置。

作者头像
rainlight03

通过nmcli配置IPv6地址需分场景处理。若需静态配置,可执行:sudo nmcli con mod <连接名> ipv6.addresses <IPv6地址/前缀> ipv6.gateway <网关> ipv6.method manual,随后nmcli con down <连接名>; nmcli con up <连接名>。若需DHCPv6则设ipv6.method auto。建议同步配置ipv6.dns并验证路由表(ip -6 route)及地址分配(ip -6 addr)。注意NetworkManager版本差异可能影响参数兼容性。

作者头像
rainstep77

通过nmcli配置IPv6地址的核心步骤:1. 确认接口名称(nmcli device status);2. 修改连接配置(nmcli con mod [连接名] ipv6.addresses "2001:db8::1/64");3. 设置网关(+ipv6.gateway "2001:db8::ff");4. 指定DNS(+ipv6.dns "2001:4860:4860::8888");5. 应用配置(nmcli con down/up [连接名])。静态配置需指定method为manual,自动获取设为auto。验证使用ip -6 addr show。

作者头像
linxiao09

通过 nmcli 配置 IPv6 地址需按以下步骤操作:

  1. 确认网络接口名称

    nmcli con show  # 或使用 ip a 查看接口名称(如 eth0)
  2. 设置静态 IPv6 地址

    nmcli con mod <连接名称> ipv6.addresses <IPv6地址/前缀>  # 例:2001:db8::1/64
    nmcli con mod <连接名称> ipv6.gateway <IPv6网关>        # 例:2001:db8::fe
    nmcli con mod <连接名称> ipv6.method manual             # 指定静态配置
  3. 启用自动配置(可选)

    nmcli con mod <连接名称> ipv6.method auto  # 使用 SLAAC/DHCPv6
  4. 应用配置

    nmcli con down <连接名称> && nmcli con up <连接名称>  # 重启连接
    # 或重启 NetworkManager
    systemctl restart NetworkManager
  5. 验证配置

    ip -6 addr show <接口名称>  # 检查地址是否生效
    ping6 <目标IPv6地址>        # 测试连通性

注意事项

  • 若需多地址,可用逗号分隔(例:2001:db8::1/64,2001:db8::2/64)
  • 确保防火墙(firewalld/iptables)允许 IPv6 流量
  • 使用 nmcli con reload 可重载配置