如何在RHEL 8/CentOS 8上配置静态IP地址

时间:2020-02-23 14:30:18  来源:igfitidea点击:

问题:如何在RHEL 8/CentOS 8上配置静态IP地址?
本教程将向我们显示不同方式,可以在RHEL 8和CentOS 8上配置静态IP地址。

IP地址是用于在IP网络上唯一标识设备的地址。
对于两个计算机来彼此通信并共享数据,他们需要将IP地址设置为其网络接口。
可以手动分配IP地址(静态IP地址)或者通过DHCP分配。

DHCP IP寻址分配通常用于桌面,笔记本电脑和工作站。
如果IP更改,通过DHCP将IP地址通过DHCP分配给服务器可能会导致剧烈效果。

方法1:编辑网络配置文件

我们将考虑的第一个方法是手动更改网络接口配置文件。
我的RHEL 8服务器有两个网络接口。

# ip link show
 1: lo:  mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 2: enp1s0:  mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
     link/ether 52:54:00:8f:8c:86 brd ff:ff:ff:ff:ff:ff
 3: enp7s0:  mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
     link/ether 52:54:00:83:0b:b9 brd ff:ff:ff:ff:ff:ff

这些是 enp1s0enp7s0
我们将配置第二个接口 enp7s0静态IP地址。
该网络接口配置文件将放置在下面 /etc/sysconfig/network-scripts/ifcfg-enp7s0

如果不存在,则创建此文件,替换 enp7s0使用网络接口名称。

sudo vi /etc/sysconfig/network-scripts/ifcfg-enp7s0

编辑以下内容以适合网络寻址方案并粘贴到文件中。

DEVICE=enp7s0
TYPE=Ethernet
NM_CONTROLLED=yes
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.121.188
NETMASK=255.255.255.0
GATEWAY=192.168.121.1
DNS1=8.8.8.8
DNS2=4.2.2.2
IPV6INIT=no
USERCTL=no
PEERDNS=yes

使用的参数/选项:OnBoot = YES:确保界面提出UPOM系统Startnm_Controlled = YES:允许接口由Network ManagerBootPoto = None管理:使用指定的InterniftIPV6Init = NO:禁用此网络接口的IPv6初始化

更改后重新启动NetworkManager服务

sudo systemctl restart NetworkManager

我们应该看到分配给网络接口的新IP地址。

# ip addr show enp7s0
 3: enp7s0:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
     link/ether 52:54:00:83:0b:b9 brd ff:ff:ff:ff:ff:ff
     inet 192.168.121.188/24 brd 192.168.121.255 scope global noprefixroute enp7s0
        valid_lft forever preferred_lft forever
     inet6 fe80::5054:ff:fe83:bb9/64 scope link 
        valid_lft forever preferred_lft forever

方法2:使用NMCLI设置RHEL 8上的静态IP地址

NMCLI是用于控制NetworkManager和报告网络状态的命令行工具。
使用此命令行工具,我们可以使用少量命令设置RHEL 8静态IP地址。

检查可用连接。

# nmcli connection show
 NAME           UUID                                  TYPE      DEVICE 
 enp1s0         498869bb-0d88-4a4c-a83a-c491d1040b0b  ethernet  enp1s0 
 System enp7s0  75faabc3-f62c-9770-bfe5-9996ddb77891  ethernet  enp7s0

我们可以删除和重新创建连接。

# nmcli connection  down  75faabc3-f62c-9770-bfe5-9996ddb77891
# nmcli connection  delete 75faabc3-f62c-9770-bfe5-9996ddb77891
Connection 'System enp7s0' (75faabc3-f62c-9770-bfe5-9996ddb77891) successfully deleted.

代替 enp7s0使用以下代码段中的实际值以及接口名称和IP地址信息。

INT="enp7s0"
IP_SUBNET="192.168.121.188/24"
GW="192.168.121.1"
DNS1="8.8.8.8"
DNS2="4.2.2.2"

为接口添加新连接。

nmcli connection add type ethernet autoconnect yes con-name ${INT} ifname ${INT}

autoconnect yes相当于 ONBOOT=yes添加IP地址和网络子网

nmcli connection modify ${INT} ipv4.addresses ${IP_SUBNET} ipv4.method manual

为接口设置默认网关

nmcli connection modify ${INT} ipv4.gateway ${GW}

设置两个DNS服务器之前提供。

nmcli connection modify ${INT} ipv4.dns ${DNS1}
nmcli connection modify ${INT} +ipv4.dns ${DNS2}

检查连接

# nmcli connection show
NAME    UUID                                  TYPE      DEVICE 
enp1s0  498869bb-0d88-4a4c-a83a-c491d1040b0b  ethernet  enp1s0 
enp7s0  9f9dba41-b532-414c-b531-0c7978e0eb6b  ethernet  enp7s0

NetworkManager将为我们填充配置文件 /etc/sysconfig/network-scripts/目录。
我的例子如下所示。

# cat  /etc/sysconfig/network-scripts/ifcfg-enp7s0
 TYPE=Ethernet
 PROXY_METHOD=none
 BROWSER_ONLY=no
 BOOTPROTO=none
 DEFROUTE=yes
 IPV4_FAILURE_FATAL=no
 IPV6INIT=yes
 IPV6_AUTOCONF=yes
 IPV6_DEFROUTE=yes
 IPV6_FAILURE_FATAL=no
 IPV6_ADDR_GEN_MODE=stable-privacy
 NAME=enp7s0
 UUID=9f9dba41-b532-414c-b531-0c7978e0eb6b
 DEVICE=enp7s0
 ONBOOT=yes
 IPADDR=192.168.121.188
 PREFIX=24
 GATEWAY=192.168.121.1
 DNS1=8.8.8.8
 DNS2=4.2.2.2

有一个叫做的工具 Nmtui其中有ncurses GUI,但它不是在RHEL/CONTOS的系统上设置静态IP地址的推荐方式。