2018 / 12 / 23
by John Yuan

CentOS 7 如何配置静态 IP 地址

我为虚拟机中的 CentOS 7 配置了两块网卡。一块为 NAT 模式,用于连接因特网下载软件。另一块为 Host-Only 模式,用于与宿主主机通信。但在系统安装完成后,发现 Host-Only 这块网卡的 IP 地址并不固定,因此需要我们手动进行相关配置。本文为相关操作记录,方便以后查阅。

本文所演示的系统为 CentOS 7,虚拟机为 VirtualBox。

由于系统没有自带 ifconfig 命令,因此我们需要安装一个软件包:

# 这个软件包包含了 ifconfig 命令
yum install net-tools

安装完成后就可以使用 ifconfig 命令查看网卡信息了:

# 查看网卡信息
ifconfig

我的机器的输出信息如下:

enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::dcdf:cf7e:4f58:4e65  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:7a:a9:16  txqueuelen 1000  (Ethernet)
        RX packets 477  bytes 52787 (51.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 505  bytes 40765 (39.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.56.101  netmask 255.255.255.0  broadcast 192.168.56.255
        inet6 fe80::a00:27ff:fee7:4553  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:e7:45:53  txqueuelen 1000  (Ethernet)
        RX packets 1367  bytes 169513 (165.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 823  bytes 143798 (140.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 32  bytes 2592 (2.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 32  bytes 2592 (2.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

其中网卡 enp0s3 (IP 地址 10.0.2.15) 即 NAT 网卡。enp0s8 (IP 地址为 192.168.56.101) 为 Host-Only 网卡。

现在进入以下目录查看上面的网卡是否拥有其对应的配置文件:

# 进入网卡配置文件目录
cd /etc/sysconfig/network-scripts/
# 查看此目录中的文件
ls

配置文件的命名规则为:ifcfg-网卡名称。比如 enp0s3 这块网卡的配置文件为 ifcfg-enp0s3。

在我的 /etc/sysconfig/network-scripts 目录中,并没有找到名为 ifcfg-enp0s8 这个配置文件。说明这块网卡没有一个固定的配置,它的 IP 是随机分配的,也就是说下次我们启动这个系统后,它的 Host-Only 这块网卡的 IP 地址可能发生变化。

为此,我们手动创建一个配置文件,其文件名为 ifcfg-enp0s8,文件内容如下:

# 使用静态 IP 地址
BOOTPROTO=static
# 设置 IP 地址
IPADDR=192.168.56.101
# 网卡名称
NAME=enp0s8
# 设备名称
DEVICE=enp0s8
# 开机启动
ONBOOT=yes

保存后,使用以下命令可重启该网卡:

# 关闭 enp0s8 这个设备
ifdown enp0s8
# 开启 enp0s8 这个设备
ifup enp0s8
# 查看网络信息
ifconfig

配置完成了,那么,如何验证我们的配置的确固定了 IP 地址呢?因为以上的输出根本就看不出差别(更改前后的 IP 地址都一样)。为此,我们可以编辑配置文件,故意将 IP 地址更换为另外一个(比如 192.168.56.102),然后再重启网卡,并查看该网卡的 IP 地址是不是和我们预先设置的一样,如果是,则说明验证通过。

本文完。