在 Linux 服务器上工作时,在网卡/以太网卡上分配静态 IP 地址是每个 Linux 工程师的常见任务之一。如果一个人在 Linux 服务器上正确配置了静态地址,那么他/她就可以通过网络远程访问它。在本文中,我们将演示在 RHEL 8 服务器网卡上配置静态 IP 地址的不同方法。
以下是在网卡上配置静态IP的方法:nmcli(命令行工具)
网络脚本文件(ifcfg-*)
方法一:使用 nmcli 命令行工具配置静态 IP 地址
每当我们安装 RHEL 8 服务器时,就会自动安装命令行工具 nmcli,它是由网络管理器使用的,可以让我们在以太网卡上配置静态 IP 地址。
运行下面的 ip addr 命令,列出 RHEL 8 服务器上的以太网卡
正如我们在上面的命令输出中看到的,我们有两个网卡 enp0s3 和 enp0s8。当前分配给网卡的 IP 地址是通过 DHCP 服务器获得的。
假设我们希望在第一个网卡 (enp0s3) 上分配静态 IP 地址,具体内容如下:IP 地址 = 192.168.1.4
网络掩码 = 255.255.255.0
网关 = 192.168.1.1
DNS = 8.8.8.8
依次运行以下 nmcli 命令来配置静态 IP,
使用 nmcli connection 命令列出当前活动的以太网卡,[~]#nmcli connection
NAME UUID TYPE DEVICE
enp0s37c1b8444-cb65-440d-9bf6-ea0ad5e60bae ethernet enp0s3
virbr03020c41f-6b21-4d80-a1a6-7c1bd5867e6cbridge virbr0
使用下面的 nmcli 给 enp0s3 分配静态 IP。
命令语法:#nmcli connection modifyipv4.address
注意: 为了简化语句,在 nmcli 命令中,我们通常用 con 关键字替换 connection,并用 mod关键字替换 modify。
将 IPv4 地址 (192.168.1.4) 分配给 enp0s3 网卡上,[~]#nmcli con mod enp0s3 ipv4.addresses192.168.1.4/24
使用下面的 nmcli 命令设置网关,[~]#nmcli con mod enp0s3 ipv4.gateway192.168.1.1
设置手动配置(从 dhcp 到 static),[~]#nmcli con mod enp0s3 ipv4.method manual
设置 DNS 值为 “8.8.8.8”,[~]#nmcli con mod enp0s3 ipv4.dns"8.8.8.8"
要保存上述更改并重新加载,请执行如下 nmcli 命令,[~]#nmcli con up enp0s3
Connectionsuccessfully activated(D-Busactive path:/org/freedesktop/NetworkManager/ActiveConnection/4)
以上命令显示网卡 enp0s3 已成功配置。我们使用 nmcli 命令做的那些更改都将永久保存在文件 etc/sysconfig/network-scripts/ifcfg-enp0s3 里。[~]#cat/etc/sysconfig/network-scripts/ifcfg-enp0s3
要确认 IP 地址是否分配给了 enp0s3 网卡了,请使用以下 IP 命令查看,[~]#ipaddr show enp0s3
方法二:使用网络脚本文件(ifcfg-*)手动配置静态 IP 地址
我们可以使用配置以太网卡的网络脚本或 ifcfg-* 文件来配置以太网卡的静态 IP 地址。假设我们想在第二个以太网卡 enp0s8 上分配静态 IP 地址:IP 地址 = 192.168.1.91
前缀 = 24
网关 =192.168.1.1
DNS1 =4.2.2.2
转到目录 /etc/sysconfig/network-scripts,查找文件 ifcfg-enp0s8,如果它不存在,则使用以下内容创建它,[~]#cd/etc/sysconfig/network-scripts/
[-scripts]#viifcfg-enp0s8
TYPE="Ethernet"
DEVICE="enp0s8"
BOOTPROTO="static"
ONBOOT="yes"
NAME="enp0s8"
IPADDR="192.168.1.91"
PREFIX="24"
GATEWAY="192.168.1.1"
DNS1="4.2.2.2"
保存并退出文件,然后重新启动网络管理器服务以使上述更改生效,[-scripts]#systemctlrestartNetworkManager
现在使用下面的 ip 命令来验证 IP 地址是否分配给网卡,[~]#ipadd show enp0s8
3:enp0s8:mtu1500qdisc fq_codel state UP groupdefaultqlen1000
link/ether08:00:27:7c:bb:cb brd ff:ff:ff:ff:ff:ff
inet192.168.1.91