跳至内容

介绍

如今,没有网络连接,计算机就无法完成很多任务。无论是更新服务器上的软件包,还是从笔记本电脑浏览外部网站,都需要网络访问!本指南旨在为 Rocky Linux 用户提供有关设置网络连接的基本知识。

先决条件

  • 对命令行操作有一定了解
  • 系统上的提升或管理员权限(例如 root、sudo 等)
  • 可选:熟悉网络概念

网络配置 - Rocky Linux 9

从 Rocky Linux 9 开始,网络配置发生了很大变化。其中一项重大变化是,从 Network-Scripts(仍然可以安装,但实际上已弃用)转向使用 Network Manager 和关键文件,而不是 ifcfg 文件。从版本 9 开始,NetworkManagerkeyfiles 优先于以前的 ifcfg 文件。由于这现在是默认设置,因此,考虑到多年来的其他变化意味着旧实用程序最终会被弃用和删除,配置网络的行为现在应该将默认设置视为正确的方式。本指南将尝试引导您了解 Network Manager 的使用方法以及 Rocky Linux 9 中的最新变化。

先决条件

  • 对命令行操作有一定了解
  • 系统上的提升或管理员权限(例如 root、sudo 等)
  • 可选:熟悉网络概念

使用 NetworkManager 服务

在用户级别,网络堆栈由 NetworkManager 管理。此工具作为服务运行,您可以使用以下命令检查其状态

systemctl status NetworkManager

配置文件

如开头所述,默认情况下,配置文件现在是关键文件。您可以通过运行以下命令查看 NetworkManager 如何优先考虑这些文件

NetworkManager --print-config

这将为您提供类似于以下内容的输出

[main]
# plugins=keyfile,ifcfg-rh
# rc-manager=auto
# auth-polkit=true
# iwd-config-path=
dhcp=dhclient
configure-and-quit=no

[logging]
# backend=journal
# audit=false

[device]
# wifi.backend=wpa_supplicant

# no-auto-default file "/var/lib/NetworkManager/no-auto-default.state"

请注意配置文件顶部的 keyfileifcfg-rh 的引用。这意味着默认情况下是 keyfile。任何时候您运行任何 NetworkManager 工具来配置接口(例如:nmclinmtui),它都会自动构建或更新关键文件。

配置存储位置

在 Rocky Linux 8 中,网络配置的存储位置位于 /etc/sysconfig/Network-Scripts/。在 Rocky Linux 9 中,关键文件的新默认存储位置位于 /etc/NetworkManager/system-connections

用于配置网络接口的主要(但并非唯一)实用程序是 nmtui 命令。这也可以通过 nmcli 命令完成,但它不那么直观。我们可以使用 nmcli 显示当前配置的接口,方法是

nmcli device show enp0s3
GENERAL.DEVICE:                         enp0s3
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:BA:CE:88
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     enp0s3
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.1.151/24
IP4.GATEWAY:                            192.168.1.1
IP4.ROUTE[1]:                           dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 100
IP4.DNS[1]:                             8.8.8.8
IP4.DNS[2]:                             8.8.4.4
IP4.DNS[3]:                             192.168.1.1
IP6.ADDRESS[1]:                         fe80::a00:27ff:feba:ce88/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 1024

提示

系统可以通过几种方式或机制分配其 IP 配置信息。两种最常用的方法是 **静态 IP 配置** 方案和 **动态 IP 配置** 方案。

静态 IP 配置方案在服务器级系统或网络中非常流行。

动态 IP 方法在家庭和办公室网络或企业环境中的工作站和台式机级系统中很流行。动态方案通常需要额外的**东西**在本地可用,并且能够向请求工作站和台式机提供正确的 IP 配置信息。这个**东西**被称为动态主机配置协议 (DHCP)。在家庭网络中,甚至在大多数企业网络中,此服务由为该目的配置的 DHCP 服务器提供。这可以是独立的服务器,也可以是路由器配置的一部分。

IP 地址

在上一节中,显示的接口 enp0s3 配置是由 .ini 文件 /etc/NetworkManager/system-connections/enp0s3.nmconnection 生成的。这表明 IP4.ADDRESS[1] 是静态配置的,而不是通过 DHCP 动态配置的。如果我们想要将此接口切换回动态分配的地址,最简单的方法是使用 nmtui 命令。

  1. 首先,在命令行中运行 nmtui 命令,这将显示以下内容

    nmtui

  2. 它已经选择了我们需要的选项“编辑连接”,因此按 Tab 键使“确定”突出显示,然后按 Enter

  3. 这将弹出一个屏幕,显示机器上的以太网连接,并允许您选择一个。在本例中,只有一个连接,因此它已经突出显示,我们只需要按 Tab 键,直到“编辑”突出显示,然后按 Enter

    nmtui_edit

  4. 完成此操作后,我们会看到当前配置的屏幕。我们需要将“手动”切换到“自动”,因此请多次按下Tab键,直到“手动”被选中,然后按下Enter键。

    nmtui_manual

  5. 向上箭头直到“自动”被选中,然后按下Enter键。

    nmtui_automatic

  6. 将界面切换到“自动”后,我们需要删除静态分配的 IP 地址,因此请按下Tab键,直到 IP 地址旁边的“删除”被选中,然后按下Enter键。

    nmtui_remove

  7. 最后,多次按下Tab键,直到到达nmtui屏幕底部,并且“确定”被选中,然后按下Enter键。

您也可以使用nmtui来停用和重新激活您的界面,但让我们使用nmcli来完成此操作。通过这种方式,我们可以将界面停用和重新激活串联起来,这样界面就不会长时间处于停用状态。

nmcli con down enp0s3 && nmcli con up enp0s3

可以将其视为旧操作系统中使用ifdown enp0s3 && ifup enp0s3的等效操作。

要验证是否成功,请使用ip addr命令或之前使用的nmcli device show enp0s3命令进行检查。

ip addr

如果成功,您现在应该看到静态 IP 地址已删除,并且已添加一个动态分配的地址,类似于以下内容。

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:ba:ce:88 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.137/24 brd 192.168.1.255 scope global dynamic noprefixroute enp0s3
   valid_lft 6342sec preferred_lft 6342sec
inet6 fe80::a00:27ff:feba:ce88/64 scope link noprefixroute 
   valid_lft forever preferred_lft forever

使用nmcli更改 IP 地址

使用nmtui很方便,但如果您只想快速重新配置网络接口,而无需在屏幕之间切换,您可能希望只使用nmcli。让我们看一下上面静态分配 IP 地址的示例,以及使用nmcli将接口重新配置为 DHCP 的步骤。

在开始之前,请注意,要将接口重新配置为 DHCP,我们需要

  • 删除 IPv4 网关
  • 删除我们静态分配的 IPv4 地址
  • 将 IPv4 方法更改为自动
  • 停用和启动接口

还要注意,我们没有使用告诉您使用 -ipv4.address 等等的示例。这些不会完全更改接口。要做到这一点,我们必须将 ipv4.address 和 ipv4.gateway 设置为空字符串。同样,为了尽可能节省时间,我们将把它们全部串联在一行中

nmcli con mod enp0s3 ipv4.gateway '' && nmcli con mod enp0s3 ipv4.address '' && nmcli con mod enp0s3 ipv4.method auto && nmcli con down enp0s3 && nmcli con up enp0s3

再次运行ip addr命令,您应该看到与使用nmtui运行更改时完全相同的结果。我们当然也可以反向执行所有操作(将 DHCP 地址更改为静态地址)。为此,我们将反向运行命令,从将ipv4.method更改为手动开始,然后设置ipv4.gateway,最后设置ipv4.address。由于在所有这些示例中,我们都是完全重新配置接口,而不是向其添加或删除值,因此我们不会使用那些谈论使用+ipv4.method+ipv4.gateway+ipv4.address的示例。如果您使用这些命令而不是我们上面使用的命令,您最终将获得一个具有 DHCP 分配地址和静态分配地址两者的接口。也就是说,这有时非常方便。例如,如果您有一个在某个 IP 上监听的 Web 服务,以及另一个 IP 上监听的 SFTP 服务器。在接口上分配多个 IP 地址的方法非常有用。

DNS 解析

可以使用nmtuinmcli来设置 DNS 服务器。虽然nmtui界面易于导航,更直观,但该过程要慢得多。使用nmcli执行此操作要快得多。在 DHCP 分配地址的情况下,通常不需要设置 DNS 服务器,因为它们通常从 DHCP 服务器转发。也就是说,您可以将 DNS 服务器静态添加到 DHCP 接口。在静态分配接口的情况下,您必须执行此操作,因为它需要知道如何获得 DNS 解析,并且不会有自动分配的方法。

由于所有这些的最佳示例是静态分配的 IP 地址,让我们回到示例接口 (enp0s3) 中最初的静态分配地址。在更改 DNS 值之前,我们需要查看它们当前的值。为了获得正确的名称解析,请删除已设置的 DNS 服务器并添加不同的服务器。目前,ipv4.dns设置为8.8.8.8,8.8.4.4,192.168.1.1。在这种情况下,我们不需要将 ipv4.dns 设置为空字符串。我们可以简单地使用以下命令来替换我们的值

nmcli con mod enp0s3 ipv4.dns '208.67.222.222,208.67.220.220,192.168.1.1'

运行nmcli con show enp0s3 | grep ipv4.dns应该会显示我们已成功更改 DNS 服务器。为了激活所有内容,让我们再次停用和启动我们的接口,以便我们的更改生效。

nmcli con down enp0s3 && nmcli con up enp0s3

为了测试我们确实具有名称解析,请尝试 ping 一台已知主机。我们将以 google.com 为例

ping google.com
PING google.com (172.217.4.46) 56(84) bytes of data.
64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=1 ttl=119 time=14.5 ms
64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=2 ttl=119 time=14.6 ms
64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=3 ttl=119 time=14.4 ms
^C

使用ip实用程序

ip命令(由iproute2软件包提供)是一个强大的工具,用于获取信息和配置现代 Linux 系统(如 Rocky Linux)的网络。

在此示例中,我们将假设以下参数

  • 接口名称:enp0s3
  • IP 地址:192.168.1.151
  • 子网掩码:24
  • 网关:192.168.1.1

获取一般信息

要查看所有接口的详细状态,请使用

ip a

专业提示

  • 使用-c标志获得更易读的彩色输出:ip -c a
  • ip接受缩写,因此ip aip addrip address是等效的

启动或停止接口

注意

虽然仍然可以使用这种方法在 Rocky Linux 9 中启动和停止接口,但该命令的反应速度远远低于简单地使用nmcli命令。

要停用并重新启动enp0s3,我们可以简单地使用

ip link set enp0s3 down && ip link set enp0s3 up

为接口分配静态地址

目前,我们的 enp0s3 接口的 IP 地址为 192.168.1.151。要将其切换到 192.168.1.152,我们将使用以下命令删除旧的 IP 地址

ip addr delete 192.168.1.151/24 dev enp0s3 && ip addr add 192.168.1.152/24 dev enp0s3

如果我们希望为接口分配第二个 IP 地址,而不是删除 192.168.1.151 地址,我们可以简单地使用以下命令添加第二个地址

ip addr add 192.168.1.152/24 dev enp0s3

我们可以使用以下命令检查 IP 地址是否已添加

ip a show dev enp0s3

将输出

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:ba:ce:88 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.151/24 brd 192.168.1.255 scope global noprefixroute enp0s3
   valid_lft forever preferred_lft forever
inet 192.168.1.152/24 scope global secondary enp0s3
   valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:feba:ce88/64 scope link noprefixroute 
   valid_lft forever preferred_lft forever

虽然使用ip实用程序启动和停止接口的速度远远低于nmcli,但ip在设置新的或额外的 IP 地址时具有明显的优势,因为它是实时发生的,无需启动和停止接口。

网关配置

现在接口有了地址,我们必须设置其默认路由。这可以使用以下命令完成

ip route add default via 192.168.1.1 dev enp0s3

可以使用以下命令显示内核路由表

ip route

ip r(简写)。

这应该输出类似以下内容

default via 192.168.1.1 dev enp0s3 
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.151 metric 100

检查网络连接

在上面的示例中,我们做了一些测试。您最好的测试方法是从 ping 默认网关开始。这应该始终有效

ping -c3 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.437 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.879 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.633 ms

接下来,测试您的局域网路由是否完全正常,方法是 ping 局域网上的主机

ping -c3 192.168.1.10
PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
64 bytes from 192.168.1.10: icmp_seq=2 ttl=255 time=0.684 ms
64 bytes from 192.168.1.10: icmp_seq=3 ttl=255 time=0.676 ms

测试以确保我们可以看到您网络外部的可用主机。在下面的测试中,我们使用 Google 的公共 DNS 服务器

ping -c3 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=19.8 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=20.2 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=119 time=20.1 ms

最后的测试是确保 DNS 解析有效。在此示例中,我们使用 google.com

ping -c3 google.com
PING google.com (172.217.4.46) 56(84) bytes of data.
64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=1 ttl=119 time=14.5 ms
64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=2 ttl=119 time=15.1 ms
64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=3 ttl=119 time=14.6 ms

如果您的机器有多个接口,并且您想从特定接口进行测试,只需使用 ping 的-I选项

ping -I enp0s3 -c3 192.168.1.10

结论

Rocky Linux 9 中的网络堆栈有很多更改。其中包括将keyfile优先于以前在 Network-Scripts 中使用的ifcfg文件。由于 Rocky Linux 未来版本的移动方向将弃用并删除 Network-Scripts,因此最好将注意力集中在nmclinmtui以及在某些情况下ip等方法上,以进行网络配置。

网络配置 - Rocky Linux 8

使用 NetworkManager 服务

在用户级别,网络堆栈由NetworkManager管理。此工具以服务的形式运行,您可以使用以下命令检查其状态

systemctl status NetworkManager

配置文件

NetworkManager 只是应用从/etc/sysconfig/network-scripts/ifcfg-<IFACE_NAME>中找到的文件读取的配置。每个网络接口都有其配置文件。以下显示了服务器默认配置的示例

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=enp1s0
UUID=74c5ccee-c1f4-4f45-883f-fc4f765a8477
DEVICE=enp1s0
ONBOOT=yes
IPADDR=10.0.0.10
PREFIX=24
GATEWAY=10.0.0.1
DNS1=10.0.0.1
DNS2=1.1.1.1
IPV6_DISABLED=yes

接口名称为enp1s0,因此该文件的名称将为/etc/sysconfig/network-scripts/ifcfg-enp1s0

提示

系统可以通过几种方式或机制分配其 IP 配置信息。两种最常用的方法是 **静态 IP 配置** 方案和 **动态 IP 配置** 方案。

静态 IP 配置方案在服务器级系统或网络中非常流行。

动态 IP 方法在家庭和办公室网络(或工作站和台式机类系统)中很受欢迎。动态方案通常需要一些额外的本地可用内容,这些内容可以向请求工作站和台式机提供正确的 IP 配置信息。这个东西被称为动态主机配置协议 (DHCP)。

家庭或办公室用户通常不必担心 DHCP。这是因为其他内容会在后台自动处理。最终用户需要物理或无线连接到正确的网络(当然也要确保他们的系统已开启)!

IP 地址

在之前的/etc/sysconfig/network-scripts/ifcfg-enp1s0列表中,我们看到BOOTPROTO参数或键的值设置为none。已配置的系统设置为静态 IP 地址方案。

如果您希望将系统配置为使用动态 IP 地址方案,则必须将BOOTPROTO参数的值从none更改为dhcp,并删除IPADDRPREFIXGATEWAY行。这是必要的,因为所有这些信息都将从任何可用的 DHCP 服务器自动获取。

要配置静态 IP 地址分配,请设置以下内容

  • IPADDR:要分配给接口的 IP 地址
  • 前缀:子网掩码,使用 CIDR 表示法
  • 网关:默认网关

ONBOOT 参数设置为 yes 表示此连接将在启动时激活。

DNS 解析

要获得正确的名称解析,必须设置以下参数

  • DNS1:主名称服务器的 IP 地址
  • DNS2:辅助名称服务器的 IP 地址

检查配置

可以使用以下 nmcli 命令检查配置是否已正确应用

[user@server ~]$ sudo nmcli device show enp1s0

它应该给出以下输出

GENERAL.DEVICE:                         enp1s0
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         6E:86:C0:4E:15:DB
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connecté)
GENERAL.CONNECTION:                     enp1s0
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER:               marche
IP4.ADDRESS[1]:                         10.0.0.10/24
IP4.GATEWAY:                            10.0.0.1
IP4.ROUTE[1]:                           dst = 10.0.0.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 10.0.0.1, mt = 100
IP4.DNS[1]:                             10.0.0.1
IP4.DNS[2]:                             1.1.1.1
IP6.GATEWAY:                            --

CLI

NetworkManager 的主要功能是管理“连接”,这些连接将物理设备映射到更逻辑的网络组件,如 IP 地址和 DNS 设置。要查看 NetworkManager维护的现有连接,可以运行 nmcli connection show

[user@server ~]$ sudo nmcli connection show
NAME    UUID                                  TYPE      DEVICE
enp1s0  625a8aef-175d-4692-934c-2c4a85f11b8c  ethernet  enp1s0

从上面的输出中,我们可以确定 NetworkManager 管理一个名为 enp1s0 的连接(NAME),它映射到物理设备(DEVICEenp1s0

连接名称

在本例中,连接和设备共享相同的名称,但这并不总是正确的。例如,常见的是看到一个名为 System eth0 的连接,它映射到一个名为 eth0 的设备。

现在我们知道了连接的名称,我们可以查看它的设置。要做到这一点,请使用 nmcli connection show [connection] 命令,它将打印出 NetworkManager 为给定连接注册的所有设置。

[user@server ~]$ sudo nmcli connection show enp1s0
...
ipv4.method:                            auto
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.addresses:                         --
ipv4.gateway:                           --
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.routing-rules:                     --
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-iaid:                         --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                yes
...

在左侧栏中,我们看到设置的名称,在右侧我们看到值。

例如,我们可以看到这里的 ipv4.method 当前设置为 autoipv4.method 设置允许许多值,但您最有可能看到的两个主要值是

  • auto:为接口使用适当的自动方法(DHCP、PPP 等),大多数其他属性可以留空。
  • manual:使用静态 IP 地址,并且必须在“地址”属性中给出至少一个 IP 地址。

如果您想将系统配置为使用静态 IP 地址方案,您需要将 ipv4.method 的值更改为 manual,并且还必须指定 ipv4.gatewayipv4.addresses

要修改设置,可以使用 nmcli 命令 nmcli connection modify [connection] [setting] [value]

# set 10.0.0.10 as the static ipv4 address
[user@server ~]$ sudo nmcli connection modify enp1s0 ipv4.addresses 10.0.0.10

# set 10.0.0.1 as the ipv4 gateway
[user@server ~]$ sudo nmcli connection modify enp1s0 ipv4.gateway 10.0.0.1

# change ipv4 method to use static assignments (set in the previous two commands)
[user@server ~]$ sudo nmcli connection modify enp1s0 ipv4.method manual

连接何时更新?

nmcli connection modify 不会修改运行时配置,而是根据您告诉 nmcli 配置的内容,使用适当的值更新 /etc/sysconfig/network-scripts 配置文件。

要通过 CLI 使用 NetworkManager 配置 DNS 服务器,可以修改 ipv4.dns 设置。

# set 10.0.0.1 and 1.1.1.1 as the primary and secondary DNS servers
[user@server ~]$ sudo nmcli connection modify enp1s0 ipv4.dns '10.0.0.1 1.1.1.1'

应用配置

要应用网络配置,可以使用 nmcli connection up [connection] 命令。

[user@server ~]$ sudo nmcli connection up enp1s0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)

要获取连接状态,只需使用

[user@server ~]$ sudo nmcli connection show
NAME    UUID                                  TYPE      DEVICE
enp1s0  625a8aef-175d-4692-934c-2c4a85f11b8c  ethernet  enp1s0

您还可以使用 ifupifdown 命令来启动和停止接口(它们是 nmcli 的简单包装器)

[user@server ~]$ sudo ifup enp1s0
[user@server ~]$ sudo ifdown enp1s0

使用 ip 实用程序

ip命令(由iproute2软件包提供)是一个强大的工具,用于获取信息和配置现代 Linux 系统(如 Rocky Linux)的网络。

在此示例中,我们将假设以下参数

  • 接口名称:ens19
  • IP 地址:192.168.20.10
  • 子网掩码:24
  • 网关:192.168.20.254

获取一般信息

要查看所有接口的详细状态,请使用

ip a

专业提示

  • 使用-c标志获得更易读的彩色输出:ip -c a
  • ip接受缩写,因此ip aip addrip address是等效的

启动或停止接口

要启动 ens19 接口,只需使用 ip link set ens19 up,要停止它,请使用 ip link set ens19 down

为接口分配静态地址

要使用的命令形式为

ip addr add <IP ADDRESS/CIDR> dev <IFACE NAME>

要分配上面的示例参数,我们将使用

ip a add 192.168.20.10/24 dev ens19

然后,使用以下命令检查结果

ip a show dev ens19

将输出

3: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 4a:f2:f5:b6:aa:9f brd ff:ff:ff:ff:ff:ff
    inet 192.168.20.10/24 scope global ens19
    valid_lft forever preferred_lft forever

我们的接口已启动并配置,但它仍然缺少一些东西!

使用 ifcfg 实用程序

要为 ens19 接口添加新的示例 IP 地址,请使用以下命令

ifcfg ens19 add 192.168.20.10/24

要删除地址,请使用

ifcfg ens19 del 192.168.20.10/24

要完全关闭此接口上的 IP 地址,请使用

ifcfg ens19 stop

请注意,这不会停止接口,它只是从接口取消分配所有 IP 地址。

网关配置

现在接口有了地址,我们必须设置它的默认路由,这可以使用以下命令完成

ip route add default via 192.168.20.254 dev ens19

可以使用以下命令显示内核路由表

ip route

ip r(简写)。

检查网络连接性

此时,您应该已经启动并正确配置了网络接口。有几种方法可以验证您的连接性。

通过ping 同一个网络中的另一个 IP 地址(我们将使用 192.168.20.42 作为示例)

ping -c3 192.168.20.42

此命令将发出 3 个ping(称为 ICMP 请求)并等待回复。如果一切正常,您应该会得到以下输出

PING 192.168.20.42 (192.168.20.42) 56(84) bytes of data.
64 bytes from 192.168.20.42: icmp_seq=1 ttl=64 time=1.07 ms
64 bytes from 192.168.20.42: icmp_seq=2 ttl=64 time=0.915 ms
64 bytes from 192.168.20.42: icmp_seq=3 ttl=64 time=0.850 ms

--- 192.168.20.42 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 0.850/0.946/1.074/0.097 ms

然后,为了确保您的路由配置正常,尝试ping 外部主机,例如这个众所周知的公共 DNS 解析器

ping -c3 8.8.8.8

如果您的机器有多个网络接口,并且您想通过特定接口发出 ICMP 请求,可以使用 -I 标志

ping -I ens19 -c3 192.168.20.42

现在是时候确保 DNS 解析正常工作了。提醒一下,DNS 解析是一种机制,用于将用户友好的机器名称转换为它们的 IP 地址,反之亦然(反向 DNS)。

如果 /etc/resolv.conf 文件指示一个可到达的 DNS 服务器,那么以下操作应该有效

host rockylinux.org

结果应该是

rockylinux.org has address 76.76.21.21

结论

Rocky Linux 8 拥有从命令行配置网络的工具。本文档应该能让您快速上手使用这些工具。

贡献者:Steven Spencer、Hayden Young、Ganna Zhyrnova