第 17 章 使用 NetworkManager 为特定连接禁用 IPv6

在使用 NetworkManager 来管理网络接口的系统上,如果网络只使用 IPv4,您可以禁用 IPv6 协议。如果您禁用了 IPv6,NetworkManager 会自动在内核中设置相应的 sysctl 值。

注意

如果使用内核可调参数或内核引导参数禁用 IPv6,则必须额外考虑系统配置。如需更多信息,请参阅文章 如何在 RHEL 中禁用或启用 IPv6 协议?

17.1. 使用 nmcli 在连接上禁用 IPv6

您可以使用 nmcli 工具在命令行上禁用 IPv6 协议。

先决条件

  • 系统使用 NetworkManager 来管理网络接口。

步骤

  1. 另外,还可显示网络连接列表:

    # nmcli connection show
    NAME    UUID                                  TYPE      DEVICE
    Example 7a7e0151-9c18-4e6f-89ee-65bb2d64d365  ethernet  enp1s0
    ...
  2. 将连接的 ipv6.method 参数设为 disabled

    # nmcli connection modify Example ipv6.method "disabled"
  3. 重启网络连接:

    # nmcli connection up Example

验证

  1. 显示设备的 IP 设置:

    # ip address show enp1s0
    2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 52:54:00:6b:74:be brd ff:ff:ff:ff:ff:ff
        inet 192.0.2.1/24 brd 192.10.2.255 scope global noprefixroute enp1s0
           valid_lft forever preferred_lft forever

    如果没有显示 inet6 条目,则 IPv6 在该设备上被禁用。

  2. 验证 /proc/sys/net/ipv6/conf/enp1s0/disable_ipv6 文件现在是否包含值 1

    # cat /proc/sys/net/ipv6/conf/enp1s0/disable_ipv6
    1

    1 表示针对该设备禁用 IPv6