Red Hat Training

A Red Hat training course is available for RHEL 8

第 9 章 配置以太网连接

这部分论述了如何使用静态和动态 IP 地址配置以太网连接的不同方法。

9.1. 使用 nmcli 配置静态以太网连接

这个步骤描述了使用 nmcli 实用程序在以下设置中添加以太网连接:

  • 静态 IPv4 地址 - 192.0.2.1,子网掩码为 /24
  • 静态 IPv6 地址 - 2001:db8:1::1,子网掩码为 /64
  • IPv4 默认网关 - 192.0.2.254
  • IPv6 默认网关 - 2001:db8:1::fffe
  • IPv4 DNS 服务器 - 192.0.2.200
  • IPv6 DNS 服务器 - 2001:db8:1::ffbb
  • DNS 搜索域 - example.com

流程

  1. 为以太网连接添加新的 NetworkManager 连接配置集:

    # nmcli connection add con-name Example-Connection ifname enp7s0 type ethernet

    额外步骤修改您创建的 Example-Connection 连接配置集。

  2. 设置 IPv4 地址:

    # nmcli connection modify Example-Connection ipv4.addresses 192.0.2.1/24
  3. 设置 IPv6 地址:

    # nmcli connection modify Example-Connection ipv6.addresses 2001:db8:1::1/64
  4. 将 IPv4 和 IPv6 连接方法设置为 manual:

    # nmcli connection modify Example-Connection ipv4.method manual
    # nmcli connection modify Example-Connection ipv6.method manual
  5. 设置 IPv4 和 IPv6 默认网关:

    # nmcli connection modify Example-Connection ipv4.gateway 192.0.2.254
    # nmcli connection modify Example-Connection ipv6.gateway 2001:db8:1::fffe
  6. 设置 IPv4 和 IPv6 DNS 服务器地址:

    # nmcli connection modify Example-Connection ipv4.dns "192.0.2.200"
    # nmcli connection modify Example-Connection ipv6.dns "2001:db8:1::ffbb"

    要设置多个 DNS 服务器,以空格分隔并用引号括起来。

  7. 为 IPv4 和 IPv6 连接设置 DNS 搜索域:

    # nmcli connection modify Example-Connection ipv4.dns-search example.com
    # nmcli connection modify Example-Connection ipv6.dns-search example.com
  8. 激活连接配置集:

    # nmcli connection up Example-Connection
    Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/13)

验证步骤

  1. 显示设备和连接的状态:

    # nmcli device status
    DEVICE      TYPE      STATE      CONNECTION
    enp7s0      ethernet  connected  Example-Connection
  2. 显示连接配置集的所有设置:

    # nmcli connection show Example-Connection
    connection.id:              Example-Connection
    connection.uuid:            b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76
    connection.stable-id:       --
    connection.type:            802-3-ethernet
    connection.interface-name:  enp7s0
    ...
  3. 使用 ping 实用程序验证这个主机是否可以向其他主机发送数据包。

    • 查找同一子网中的 IP 地址。

      对于 IPv4:

      # ping 192.0.2.3

      对于 IPv6:

      # ping 2001:db8:2::1

      如果命令失败,请验证 IP 和子网的设置。

    • 在远程子网中查找 IP 地址。

      对于 IPv4:

      # ping 198.162.3.1

      对于 IPv6:

      # ping 2001:db8:2::1
      • 如果命令失败,则使用 ping 默认网关来验证设置。

        对于 IPv4:

        # ping 192.0.2.254

        对于 IPv6:

        # ping 2001:db8:1::fffe
  4. 使用 host 实用程序验证名称解析是否正常工作。例如:

    # host client.example.com

    如果命令返回任何错误,如 connection timed outno servers could be reached,请验证您的 DNS 设置。

故障排除步骤

  1. 如果连接失败,或者网络接口在上线和关闭状态间切换:

    • 确保网络电缆插入到主机和交换机。
    • 检查连接失败是否只存在于这个主机上,或者其他连接到该服务器连接的同一交换机的主机中。
    • 验证网络电缆和网络接口是否如预期工作。执行硬件诊断步骤并替换有缺陷的电缆和网络接口卡。
    • 如果磁盘中的配置与设备中的配置不匹配,则启动或重启 NetworkManager 会创建一个代表该设备的配置的内存连接。详情以及如何避免此问题,请参阅 NetworkManager 服务重启后复制连接

其它资源

9.2. 使用 nmcli 互动编辑器配置静态以太网连接

这个步骤描述了使用 nmcli 互动模式在以下设置中添加以太网连接:

  • 静态 IPv4 地址 - 192.0.2.1,子网掩码为 /24
  • 静态 IPv6 地址 - 2001:db8:1::1,子网掩码为 /64
  • IPv4 默认网关 - 192.0.2.254
  • IPv6 默认网关 - 2001:db8:1::fffe
  • IPv4 DNS 服务器 - 192.0.2.200
  • IPv6 DNS 服务器 - 2001:db8:1::ffbb
  • DNS 搜索域 - example.com

流程

  1. 要为以太网连接添加新的 NetworkManager 连接配置集并启动互动模式,请输入:

    # nmcli connection edit type ethernet con-name Example-Connection
  2. 设置网络接口:

    nmcli> set connection.interface-name enp7s0
  3. 设置 IPv4 地址:

    nmcli> set ipv4.addresses 192.0.2.1/24
  4. 设置 IPv6 地址:

    nmcli> set ipv6.addresses 2001:db8:1::1/64
  5. 将 IPv4 和 IPv6 连接方法设置为 manual:

    nmcli> set ipv4.method manual
    nmcli> set ipv6.method manual
  6. 设置 IPv4 和 IPv6 默认网关:

    nmcli> set ipv4.gateway 192.0.2.254
    nmcli> set ipv6.gateway 2001:db8:1::fffe
  7. 设置 IPv4 和 IPv6 DNS 服务器地址:

    nmcli> set ipv4.dns 192.0.2.200
    nmcli> set ipv6.dns 2001:db8:1::ffbb

    要设置多个 DNS 服务器,以空格分隔并用引号括起来。

  8. 为 IPv4 和 IPv6 连接设置 DNS 搜索域:

    nmcli> set ipv4.dns-search example.com
    nmcli> set ipv6.dns-search example.com
  9. 保存并激活连接:

    nmcli> save persistent
    Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection.
    Do you still want to save? (yes/no) [yes] yes
  10. 保留为互动模式:

    nmcli> quit

验证步骤

  1. 显示设备和连接的状态:

    # nmcli device status
    DEVICE      TYPE      STATE      CONNECTION
    enp7s0      ethernet  connected  Example-Connection
  2. 显示连接配置集的所有设置:

    # nmcli connection show Example-Connection
    connection.id:              Example-Connection
    connection.uuid:            b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76
    connection.stable-id:       --
    connection.type:            802-3-ethernet
    connection.interface-name:  enp7s0
    ...
  3. 使用 ping 实用程序验证这个主机是否可以向其他主机发送数据包。

    • 查找同一子网中的 IP 地址。

      对于 IPv4:

      # ping 192.0.2.3

      对于 IPv6:

      # ping 2001:db8:2::1

      如果命令失败,请验证 IP 和子网的设置。

    • 在远程子网中查找 IP 地址。

      对于 IPv4:

      # ping 198.162.3.1

      对于 IPv6:

      # ping 2001:db8:2::1
      • 如果命令失败,则使用 ping 默认网关来验证设置。

        对于 IPv4:

        # ping 192.0.2.254

        对于 IPv6:

        # ping 2001:db8:1::fffe
  4. 使用 host 实用程序验证名称解析是否正常工作。例如:

    # host client.example.com

    如果命令返回任何错误,如 connection timed outno servers could be reached,请验证您的 DNS 设置。

故障排除步骤

  1. 如果连接失败,或者网络接口在上线和关闭状态间切换:

    • 确保网络电缆插入到主机和交换机。
    • 检查连接失败是否只存在于这个主机上,或者其他连接到该服务器连接的同一交换机的主机中。
    • 验证网络电缆和网络接口是否如预期工作。执行硬件诊断步骤并替换有缺陷的电缆和网络接口卡。

如果磁盘中的配置与设备中的配置不匹配,则启动或重启 NetworkManager 会创建一个代表该设备的配置的内存连接。详情以及如何避免此问题,请参阅 NetworkManager 服务重启后复制连接

其它资源

9.3. 使用 nmstatectl 配置静态以太网连接

这个步骤描述了如何使用 nmstatectl 实用程序使用以下设置为 enp7s0 设备配置以太网连接:

  • 静态 IPv4 地址 - 192.0.2.1,子网掩码为 /24
  • 静态 IPv6 地址 - 2001:db8:1::1,子网掩码为 /64
  • IPv4 默认网关 - 192.0.2.254
  • IPv6 默认网关 - 2001:db8:1::fffe
  • IPv4 DNS 服务器 - 192.0.2.200
  • IPv6 DNS 服务器 - 2001:db8:1::ffbb
  • DNS 搜索域 - example.com

nmstatectl 工具可确保设置配置后结果与配置文件匹配。如果有任何失败, nmstatectl 会自动回滚更改,以避免使系统处于不正确的状态。

此流程定义 YAML 格式的接口配置。另外,您还可以以 JSON 格式指定配置。

先决条件

  • 已安装 nmstate 软件包。

流程

  1. 创建包含以下内容的 YAML 文件,如 ~/create-ethernet-profile.yml:

    ---
    interfaces:
    - name: enp7s0
      type: ethernet
      state: up
      ipv4:
        enabled: true
        address:
        - ip: 192.0.2.1
          prefix-length: 24
        dhcp: false
      ipv6:
        enabled: true
        address:
        - ip: 2001:db8:1::1
          prefix-length: 64
        autoconf: false
        dhcp: false
    routes:
      config:
      - destination: 0.0.0.0/0
        next-hop-address: 192.0.2.254
        next-hop-interface: enp7s0
      - destination: ::/0
        next-hop-address: 2001:db8:1::fffe
        next-hop-interface: enp7s0
    dns-resolver:
      config:
        search:
        - example.com
        server:
        - 192.0.2.200
        - 2001:db8:1::ffbb
  2. 将设置应用到系统:

    # nmstatectl set ~/create-ethernet-profile.yml

验证步骤

  1. 显示设备和连接的状态:

    # nmcli device status
    DEVICE      TYPE      STATE      CONNECTION
    enp7s0      ethernet  connected  enp7s0
  2. 显示连接配置集的所有设置:

    # nmcli connection show enp7s0
    connection.id:              enp7s0
    connection.uuid:            b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76
    connection.stable-id:       --
    connection.type:            802-3-ethernet
    connection.interface-name:  enp7s0
    ...

其它资源

  • 有关详情请参考 nmstatectl nmstatectl(8) man page。
  • 如需更多配置示例,请参阅 /usr/share/doc/nmstate/examples/ 目录。

9.4. 使用 RHEL 系统角色配置静态以太网连接

此流程描述了如何使用 RHEL 系统角色通过运行 Ansible playbook 为 enp7s0 接口远程添加带有以下设置的以太网连接:

  • 静态 IPv4 地址 - 192.0.2.1,子网掩码为 /24
  • 静态 IPv6 地址 - 2001:db8:1::1,子网掩码为 /64
  • IPv4 默认网关 - 192.0.2.254
  • IPv6 默认网关 - 2001:db8:1::fffe
  • IPv4 DNS 服务器 - 192.0.2.200
  • IPv6 DNS 服务器 - 2001:db8:1::ffbb
  • DNS 搜索域 - example.com

在 Ansible 控制节点上运行此步骤。

先决条件

  • 在控制节点上安装 ansiblerhel-system-roles 软件包。
  • 如果您运行 playbook 时使用了与 root 不同的远程用户, 则此用户在受管节点上需要具有适当的 sudo 权限。
  • 主机使用 NetworkManager 配置网络。

流程

  1. 如果 playbook 要针对其执行的主机还没有在清单中,请将此主机的 IP 或名称添加到 /etc/ansible/hosts Ansible 清单文件中:

    node.example.com
  2. 使用以下内容创建 ~/ethernet-static-IP.yml playbook:

    ---
    - name: Configure an Ethernet connection with static IP
      hosts: node.example.com
      become: true
      tasks:
      - include_role:
          name: linux-system-roles.network
    
        vars:
          network_connections:
            - name: enp7s0
              type: ethernet
              autoconnect: yes
              ip:
                address:
                  - 192.0.2.1/24
                  - 2001:db8:1::1/64
                gateway4: 192.0.2.254
                gateway6: 2001:db8:1::fffe
                dns:
                  - 192.0.2.200
                  - 2001:db8:1::ffbb
                dns_search:
                  - example.com
              state: up
  3. 运行 playbook:

    • root 用户身份连接到受管主机,输入:

      # ansible-playbook -u root ~/ethernet-static-IP.yml
    • 以用户身份连接到受管主机,请输入:

      # ansible-playbook -u user_name --ask-become-pass ~/ethernet-static-IP.yml

      --ask-become-pass 选项确定 ansible-playbook 命令提示输入 -u user_name 选项中定义的用户 sudo 密码。

    如果没有指定 -u user_name 选项,请以当前登录到控制节点的用户 ansible-playbook 连接到受管主机。

其它资源

  • /usr/share/ansible/roles/rhel-system-roles.network/README.md file
  • ansible-playbook 命令,请查看 ansible-playbook(1) man page

9.5. 使用 nmcli 配置动态以太网连接

这个步骤描述了使用 nmcli 工具添加动态以太网连接。使用这个设置,NetworkManager 从 DHCP 服务器请求这个连接的 IP 设置。

先决条件

  • 网络中有 DHCP 服务器。

流程

  1. 为以太网连接添加新的 NetworkManager 连接配置集:

    # nmcli connection add con-name Example-Connection ifname enp7s0 type ethernet
  2. (可选)在使用 Example-Connection 配置集时更改主机名 NetworkManager 发送到 DHCP 服务器:

    # nmcli connection modify Example-Connection ipv4.dhcp-hostname Example ipv6.dhcp-hostname Example
  3. (可选)在使用 Example-Connection 配置集时更改客户端 ID NetworkManager 发送到 IPv4 DHCP 服务器:

    # nmcli connection modify Example-Connection ipv4.dhcp-client-id client-ID

    请注意,没有 IPv6 的 dhcp-client-id 参数。要为 IPv6 创建标识符,请配置 dhclient 服务。

验证步骤

  1. 显示设备和连接的状态:

    # nmcli device status
    DEVICE      TYPE      STATE      CONNECTION
    enp7s0      ethernet  connected  Example-Connection
  2. 显示连接配置集的所有设置:

    # nmcli connection show Example-Connection
    connection.id:              Example-Connection
    connection.uuid:            b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76
    connection.stable-id:       --
    connection.type:            802-3-ethernet
    connection.interface-name:  enp7s0
    ...
  3. 使用 ping 实用程序验证这个主机是否可以向其他主机发送数据包。

    • 查找同一子网中的 IP 地址。

      对于 IPv4:

      # ping 192.0.2.3

      对于 IPv6:

      # ping 2001:db8:2::1

      如果命令失败,请验证 IP 和子网的设置。

    • 在远程子网中查找 IP 地址。

      对于 IPv4:

      # ping 198.162.3.1

      对于 IPv6:

      # ping 2001:db8:2::1
      • 如果命令失败,则使用 ping 默认网关来验证设置。

        对于 IPv4:

        # ping 192.0.2.254

        对于 IPv6:

        # ping 2001:db8:1::fffe
  4. 使用 host 实用程序验证名称解析是否正常工作。例如:

    # host client.example.com

    如果命令返回任何错误,如 connection timed outno servers could be reached,请验证您的 DNS 设置。

其它资源

  • 有关为 IPv6 设置客户端标识符的详情,请查看 dhclient(8) man page。
  • 有关连接配置集属性及其设置的详情,请查看 nm-settings(5) 手册页。
  • 有关 nmcli 工具程序的详情,请查看 nmcli(1) man page。
  • 如果磁盘中的配置与设备中的配置不匹配,则启动或重启 NetworkManager 会创建一个代表该设备的配置的内存连接。有关详情以及如何避免此问题,请参阅 NetworkManager 服务重启后复制连接

9.6. 使用 nmcli 互动编辑器配置动态以太网连接

这个步骤描述了使用 nmcli 工具的互动编辑器添加动态以太网连接。使用这个设置,NetworkManager 从 DHCP 服务器请求这个连接的 IP 设置。

先决条件

  • 网络中有 DHCP 服务器。

流程

  1. 要为以太网连接添加新的 NetworkManager 连接配置集并启动互动模式,请输入:

    # nmcli connection edit type ethernet con-name Example-Connection
  2. 设置网络接口:

    nmcli> set connection.interface-name enp7s0
  3. (可选)在使用 Example-Connection 配置集时更改主机名 NetworkManager 发送到 DHCP 服务器:

    nmcli> set ipv4.dhcp-hostname Example
    nmcli> set ipv6.dhcp-hostname Example
  4. (可选)在使用 Example-Connection 配置集时更改客户端 ID NetworkManager 发送到 IPv4 DHCP 服务器:

    nmcli> set ipv4.dhcp-client-id client-ID

    请注意,没有 IPv6 的 dhcp-client-id 参数。要为 IPv6 创建标识符,请配置 dhclient 服务。

  5. 保存并激活连接:

    nmcli> save persistent
    Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection.
    Do you still want to save? (yes/no) [yes] yes
  6. 保留为互动模式:

    nmcli> quit

验证步骤

  1. 显示设备和连接的状态:

    # nmcli device status
    DEVICE      TYPE      STATE      CONNECTION
    enp7s0      ethernet  connected  Example-Connection
  2. 显示连接配置集的所有设置:

    # nmcli connection show Example-Connection
    connection.id:              Example-Connection
    connection.uuid:            b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76
    connection.stable-id:       --
    connection.type:            802-3-ethernet
    connection.interface-name:  enp7s0
    ...
  3. 使用 ping 实用程序验证这个主机是否可以向其他主机发送数据包。

    • 查找同一子网中的 IP 地址。

      对于 IPv4:

      # ping 192.0.2.3

      对于 IPv6:

      # ping 2001:db8:2::1

      如果命令失败,请验证 IP 和子网的设置。

    • 在远程子网中查找 IP 地址。

      对于 IPv4:

      # ping 198.162.3.1

      对于 IPv6:

      # ping 2001:db8:2::1
      • 如果命令失败,则使用 ping 默认网关来验证设置。

        对于 IPv4:

        # ping 192.0.2.254

        对于 IPv6:

        # ping 2001:db8:1::fffe
  4. 使用 host 实用程序验证名称解析是否正常工作。例如:

    # host client.example.com

    如果命令返回任何错误,如 connection timed outno servers could be reached,请验证您的 DNS 设置。

其它资源

  • 有关为 IPv6 设置客户端标识符的详情,请查看 dhclient(8) man page。
  • 有关连接配置集属性及其设置的详情,请查看 nm-settings(5) 手册页。
  • 有关 nmcli 工具程序的详情,请查看 nmcli(1) man page。
  • 如果磁盘中的配置与设备中的配置不匹配,则启动或重启 NetworkManager 会创建一个代表该设备的配置的内存连接。有关详情以及如何避免此问题,请参阅 NetworkManager 服务重启后复制连接

9.7. 使用 nmstatectl 配置动态以太网连接

这个步骤描述了如何使用 nmstatectl 工具为 enp7s0 设备添加动态以太网。在这个过程中的设置中,NetworkManager 从 DHCP 服务器请求这个连接的 IP 设置。

nmstatectl 工具可确保设置配置后结果与配置文件匹配。如果有任何失败, nmstatectl 会自动回滚更改,以避免使系统处于不正确的状态。

此流程定义 YAML 格式的接口配置。另外,您还可以以 JSON 格式指定配置。

先决条件

  • 已安装 nmstate 软件包。

流程

  1. 创建包含以下内容的 YAML 文件,如 ~/create-ethernet-profile.yml:

    ---
    interfaces:
    - name: enp7s0
      type: ethernet
      state: up
      ipv4:
        enabled: true
        address: []
        auto-dns: true
        auto-gateway: true
        auto-routes: true
        dhcp: true
      ipv6:
        enabled: true
        address: []
        auto-dns: true
        auto-gateway: true
        auto-routes: true
        autoconf: true
        dhcp: true
  2. 将设置应用到系统:

    # nmstatectl set ~/create-ethernet-profile.yml

验证步骤

  1. 显示设备和连接的状态:

    # nmcli device status
    DEVICE      TYPE      STATE      CONNECTION
    enp7s0      ethernet  connected  enp7s0
  2. 显示连接配置集的所有设置:

    # nmcli connection show enp7s0
    connection.id:              enp7s0_
    connection.uuid:            b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76
    connection.stable-id:       --
    connection.type:            802-3-ethernet
    connection.interface-name:  enp7s0
    ...

其它资源

  • 有关详情请参考 nmstatectl nmstatectl(8) man page。
  • 如需更多配置示例,请参阅 /usr/share/doc/nmstate/examples/ 目录。

9.8. 使用 RHEL 系统角色配置动态以太网连接

此流程描述了如何使用 RHEL 系统角色通过运行 Ansible playbook 为 enp7s0 接口远程添加动态以太网连接。在这个设置中,网络连接从 DHCP 服务器请求这个连接的 IP 设置。在 Ansible 控制节点上运行此步骤。

先决条件

  • 网络中有 DHCP 服务器。
  • 在控制节点上安装 ansiblerhel-system-roles 软件包。
  • 如果您运行 playbook 时使用了与 root 不同的远程用户, 则此用户在受管节点上需要具有适当的 sudo 权限。
  • 主机使用 NetworkManager 配置网络。

流程

  1. 如果 playbook 要针对其执行的主机还没有在清单中,请将此主机的 IP 或名称添加到 /etc/ansible/hosts Ansible 清单文件中:

    node.example.com
  2. 使用以下内容创建 ~/ethernet-dynamic-IP.yml playbook:

    ---
    - name: Configure an Ethernet connection with dynamic IP
      hosts: node.example.com
      become: true
      tasks:
      - include_role:
          name: linux-system-roles.network
    
        vars:
          network_connections:
            - name: enp7s0
              type: ethernet
              autoconnect: yes
              ip:
                dhcp4: yes
                auto6: yes
              state: up
  3. 运行 playbook:

    • root 用户身份连接到受管主机,输入:

      # ansible-playbook -u root ~/ethernet-dynamic-IP.yml
    • 以用户身份连接到受管主机,请输入:

      # ansible-playbook -u user_name --ask-become-pass ~/ethernet-dynamic-IP.yml

      --ask-become-pass 选项确定 ansible-playbook 命令提示输入 -u user_name 选项中定义的用户 sudo 密码。

    如果没有指定 -u user_name 选项,请以当前登录到控制节点的用户 ansible-playbook 连接到受管主机。

其它资源

  • /usr/share/ansible/roles/rhel-system-roles.network/README.md file
  • ansible-playbook(1) man page

9.9. 使用 control-center 配置以太网连接

以太网连接是在物理机或虚拟机中最常用的连接类型。本节论述了如何在 GNOME control-center 中配置此连接类型:

请注意,control-center 不支持 nm-connection-editor 应用程序或 nmcli 实用程序。

先决条件

  • 服务器配置中有一个物理或者虚拟以太网设备。
  • 已安装了 GNOME。

流程

  1. Super 键,输入 Settings,然后按 Enter 键。
  2. 在左侧导航中选择 Network
  3. Wired 条目旁边的 + 按钮创建新配置集。
  4. 可选:在 Identity 标签页上为连接设置名称。
  5. IPv4 标签中配置 IPv4 设置。例如,选择方法 Manual,设置静态 IPv4 地址、网络掩码、默认网关和 DNS 服务器:

    IPv4 设置控制中心
  6. IPv6 标签中配置 IPv6 设置。例如,选择方法 Manual,设置静态 IPv6 地址、网络掩码、默认网关和 DNS 服务器:

    IPv6 设置控制中心
  7. 点击 添加 按钮保存连接。GNOME control-center 会自动激活连接。

验证步骤

  1. 显示设备和连接的状态:

    # nmcli device status
    DEVICE      TYPE      STATE      CONNECTION
    enp7s0      ethernet  connected  Example-Connection
  2. 显示连接配置集的所有设置:

    # nmcli connection show Example-Connection
    connection.id:              Example-Connection
    connection.uuid:            b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76
    connection.stable-id:       --
    connection.type:            802-3-ethernet
    connection.interface-name:  enp7s0
    ...
  3. 使用 ping 实用程序验证这个主机是否可以向其他主机发送数据包。

    • 查找同一子网中的 IP 地址。

      对于 IPv4:

      # ping 192.0.2.3

      对于 IPv6:

      # ping 2001:db8:2::1

      如果命令失败,请验证 IP 和子网的设置。

    • 在远程子网中查找 IP 地址。

      对于 IPv4:

      # ping 198.162.3.1

      对于 IPv6:

      # ping 2001:db8:2::1
      • 如果命令失败,则使用 ping 默认网关来验证设置。

        对于 IPv4:

        # ping 192.0.2.254

        对于 IPv6:

        # ping 2001:db8:1::fffe
  4. 使用 host 实用程序验证名称解析是否正常工作。例如:

    # host client.example.com

    如果命令返回任何错误,如 connection timed outno servers could be reached,请验证您的 DNS 设置。

故障排除步骤

  1. 如果连接失败,或者网络接口在上线和关闭状态间切换:

    • 确保网络电缆插入到主机和交换机。
    • 检查连接失败是否只存在于这个主机上,或者其他连接到该服务器连接的同一交换机的主机中。
    • 验证网络电缆和网络接口是否如预期工作。执行硬件诊断步骤并替换有缺陷的电缆和网络接口卡。

9.10. 使用 nm-connection-editor 配置以太网连接

以太网连接是在物理或者虚拟服务器中最常用的连接类型。本节论述了如何使用 nm-connection-editor 应用程序配置此连接类型。

先决条件

  • 服务器配置中有一个物理或者虚拟以太网设备。
  • 已安装了 GNOME。

流程

  1. 打开终端窗口,输入:

    $ nm-connection-editor
  2. + 按钮添加新连接。
  3. 选择 Ethernet 连接类型,并点击 Create
  4. General 标签页中:

    1. 要在系统引导时或者重启 NetworkManager 服务时自动启用此连接:

      1. 选择 Connect automatically with priority
      2. 可选:修改 Connect automatically with priority 旁边的优先级值。

        如果同一设备有多个连接配置集,NetworkManager 只启用一个配置集。默认情况下,NetworkManager 激活启用了自动连接的最后使用的配置集。但是,如果您在配置集中设置了优先级值,NetworkManager 会以最高优先级激活配置集。

    2. 如果配置集应该只对创建连接配置集的用户可用,请清除 All users may connect to this network 复选框。

    ethernet connection general tab

  5. Ethernet 标签中选择一个设备,还可以选择其它与以太网相关的设置。 ethernet connection settings
  6. IPv4 Settings 标签中配置 IPv4 设置。例如,设置静态 IPv4 地址、网络掩码、默认网关和 DNS 服务器: IPv4 settings nm connection editor
  7. IPv6 Settings 标签中配置 IPv6 设置。例如,设置静态 IPv6 地址、网络掩码、默认网关和 DNS 服务器: IPv6 settings nm connection editor
  8. 保存连接。
  9. 关闭 nm-connection-editor

验证步骤

  1. 使用 ping 实用程序验证这个主机是否可以向其他主机发送数据包。

    • 查找同一子网中的 IP 地址。

      对于 IPv4:

      # ping 192.0.2.3

      对于 IPv6:

      # ping 2001:db8:2::1

      如果命令失败,请验证 IP 和子网的设置。

    • 在远程子网中查找 IP 地址。

      对于 IPv4:

      # ping 198.162.3.1

      对于 IPv6:

      # ping 2001:db8:2::1
      • 如果命令失败,则使用 ping 默认网关来验证设置。

        对于 IPv4:

        # ping 192.0.2.254

        对于 IPv6:

        # ping 2001:db8:1::fff3
    • 使用 host 实用程序验证名称解析是否正常工作。例如:

      # host client.example.com

      如果命令返回任何错误,如 connection timed outno servers could be reached,请验证您的 DNS 设置。

9.11. 配置 NetworkManager 连接的 DHCP 行为

DHCP 客户端在每次连接到网络时都从 DHCP 服务器请求动态 IP 地址和对应配置信息。

当您将连接配置为从 DHCP 服务器检索 IP 地址时,网络管理器(NetworkManager)从 DHCP 服务器请求 IP 地址。默认情况下,客户端会等待 45 秒时间完成此请求。当 DHCP 连接启动时,dhcp 客户端会从 DHCP 服务器请求 IP 地址。

先决条件

  • 在主机上配置了使用 DHCP 的连接。

流程

  1. 设置 ipv4.dhcp-timeoutipv6.dhcp-timeout 属性。例如:要将这两个选项都设为 30 秒,请输入:

    # nmcli connection modify connection_name ipv4.dhcp-timeout 30 ipv6.dhcp-timeout 30

    另外,将参数设置为 infinity 以配置网络管理器(NetworkManager)不会停止尝试请求并续订 IP 地址,直到成功为止。

  2. 可选:配置如果网络管理器(NetworkManager)在超时前没有接收 IPv4 地址时的行为:

    # nmcli connection modify connection_name ipv4.may-fail value

    如果您将 ipv4.may-fail 选项设置为:

    • yes,连接的状态取决于 IPv6 配置:

      • 如果启用了 IPv6 配置并成功,NetworkManager 会激活 IPv6 连接,不再尝试激活 IPv4 连接。
      • 如果禁用或未配置 IPv6 配置,连接会失败。
    • no,连接将被停用。在这种情况下:

      • 如果连接的 autoconnect 属性被启用,NetworkManager 会重复尝试激活连接,做多的次数为 autoconnect-retries 属性中设置的值。默认为 4
      • 如果连接仍然无法获得 DHCP 地址,则自动激活会失败。请注意,5 分钟后,自动连接过程会再次启动,从 DHCP 服务器获取 IP 地址。
  3. 可选:配置如果网络管理器(NetworkManager)在超时前没有接收 IPv6 地址时的行为:

    # nmcli connection modify connection_name ipv6.may-fail value

其它资源

  • 有关这部分所述属性的详情,请查看 nm-settings(5) man page。