在 RHEL/CentOS 上使用 NetworkManager 配置静态 IP 地址
网络是任何服务器管理任务的基础。在 Red Hat Enterprise Linux (RHEL) 和 CentOS 等企业级 Linux 发行版上,NetworkManager 是一种动态且全面的网络配置和管理服务。虽然 DHCP(动态主机配置协议)对于动态 IP 分配很方便,但许多服务器环境需要静态 IP 地址,以确保可预测性、可靠性,以及依赖于一致地址的服务(如 DNS、Web 服务器和数据库)。
本文将指导您一步步完成在 RHEL 和 CentOS 系统上使用 nmcli (NetworkManager 命令行界面) 实用程序配置持久静态 IP 地址的过程。掌握 nmcli 是任何 Linux 系统管理员的一项必备技能,它可以在无需直接编辑配置文件的情况下,对系统网络设置提供强大而灵活的控制。
了解 NetworkManager 和 nmcli
在深入配置步骤之前,我们先来明确将要使用的核心组件:
什么是 NetworkManager?
NetworkManager 是一个处理网络设置的守护进程,它使得网络连接的管理更加容易。它可以管理各种连接类型,包括以太网、Wi-Fi、移动宽带和 VPN。它会自动检测并配置网络设备,并尝试维护活动的网络连接,根据需要切换可用的连接。对于服务器来说,它确保您的网络接口配置正确并在重启后保持不变。
什么是 nmcli?
nmcli 是 NetworkManager 的命令行客户端。它允许您从终端控制 NetworkManager 并配置网络连接。这在没有图形界面的无头服务器环境中特别有用。nmcli 命令是直观的,提供了与 NetworkManager 的全部功能交互的强大方式,包括显示网络设备状态,以及创建和修改复杂的连接配置文件。
先决条件
要遵循本指南,请确保您具备以下条件:
- Root 权限:您需要
sudo访问权限或以 root 用户身份登录才能进行网络配置更改。 - 系统信息:您打算使用的静态 IP 地址、子网掩码(或 CIDR 表示法)、默认网关和 DNS 服务器 IP 地址。
- 已识别的网络接口:知道您希望配置的网络接口名称(例如
enp0s3、eth0)。我们将介绍如何查找它。
静态 IP 地址的分步配置
以下是使用 nmcli 配置静态 IP 地址的方法。
步骤 1:识别您的网络接口
首先,您需要知道要配置的网络接口的名称。您可以使用 nmcli device 或 nmcli device status 来列出所有活动网络设备及其状态:
nmcli device status
示例输出:
DEVICE TYPE STATE CONNECTION
enp0s3 ethernet connected System enp0s3
lo loopback unmanaged --
在此示例中,enp0s3 是我们的以太网接口。请记下您的接口名称。
步骤 2:创建新的网络连接配置文件
通常,最好为您的静态 IP 配置创建一个新的连接配置文件,而不是直接修改现有的 DHCP 管理的配置文件,特别是如果您希望能够轻松恢复设置。连接配置文件存储了特定网络连接的所有设置。
要创建新的以太网连接配置文件,请使用 nmcli connection add 命令。您需要指定连接类型、描述性的连接名称 (con-name) 和接口名称 (ifname)。
sudo nmcli connection add type ethernet con-name my-static-eth ifname enp0s3
type ethernet:指定这是一个以太网连接。con-name my-static-eth:为这个新的连接配置文件分配一个名称。请选择一个描述性的名称。ifname enp0s3:将此连接配置文件链接到物理网络接口enp0s3。
替代方案:修改现有配置文件
如果您更愿意修改现有连接(例如,来自 nmcli device status 输出的 System enp0s3),您将使用 nmcli connection modify 及其现有的 con-name。
sudo nmcli connection modify "System enp0s3" # 替换为您的连接名称
注意:为简单和清晰起见,本指南将假设您已创建了一个名为 my-static-eth 的新连接配置文件。
步骤 3:配置 IPv4 设置(IP、网关、DNS)
现在,我们来为 my-static-eth 连接配置文件配置静态 IP 地址、网关和 DNS 服务器。至关重要的是将 IPv4 方法设置为 manual 以禁用 DHCP。
设置 IP 地址和网关
使用 ipv4.addresses 和 ipv4.gateway 属性。IP 地址应采用 CIDR 表示法(例如 192.168.1.100/24)。
sudo nmcli connection modify my-static-eth ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1
ipv4.addresses 192.168.1.100/24:将静态 IP 地址设置为192.168.1.100,使用 24 位子网掩码 (255.255.255.0)。ipv4.gateway 192.168.1.1:设置网络的默认网关。
设置 DNS 服务器
指定一个或多个 DNS 服务器 IP 地址。多个地址之间用逗号分隔。
sudo nmcli connection modify my-static-eth ipv4.dns "