为CentOS 7配置静态IP地址及遇到的问题解决策略

为CentOS 7配置静态IP地址及遇到的问题解决策略

1. 为CentOS 7配置静态IP地址的两种方法

(原文地址:http://www.linuxidc.com/Linux/2014-10/107789.htm)

使用下面的命令来验证网络管理器服务的状态:

  1. $ systemctl status NetworkManager.service

运行以下命令来检查受网络管理器管理的网络接口:

  1. $ nmcli dev status
  2. 为CentOS 7配置静态IP地址及遇到的问题解决策略

如果某个接口的nmcli的输出结果是“已连接”(如本例中的enp0s3),这就是说该接口受网络管理器管理。你可以轻易地为某个特定接口禁用网络管理器,以便你可以自己为它配置一个静态IP地址。

下面将介绍CentOS 7上为网络接口配置静态IP地址的两种方式,在例子中我们将对名为enp0s3的网络接口进行配置。

1.1 不使用网络管理配置静态IP地址

进入/etc/sysconfig/network-scripts目录,找到该接口的配置文件(ifcfg-enp0s3)。如果没有,请创建一个。

为CentOS 7配置静态IP地址及遇到的问题解决策略

打开配置文件并编辑以下变量:

为CentOS 7配置静态IP地址及遇到的问题解决策略

在上图中,“NM_CONTROLLED=no”表示该接口将通过该配置文件进行设置,而不是通过网络管理器进行管理。“ONBOOT=yes”告诉我们,系统将在启动时开启该接口。

保存修改并使用以下命令来重启网络服务:

  1. # systemctl restart network.service

现在验证接口是否配置正确:

  1. # ip add
  2. 为CentOS 7配置静态IP地址及遇到的问题解决策略

1.2 使用网络管理器配置静态IP地址

如果你想要使用网络管理器来管理该接口,你可以使用nmtui(网络管理器文本用户界面),它提供了在终端环境中配置配置网络管理器的方式。

在使用nmtui之前,首先要在/etc/sysconfig/network-scripts/ifcfg-enp0s3中设置“NM_CONTROLLED=yes”。

现在,请按以下方式安装nmtui。

  1. # yum install NetworkManager-tui

然后继续去编辑enp0s3接口的网络管理器配置:

  1. # nmtui edit enp0s3

在下面的屏幕中,我们可以手动输入与/etc/sysconfig/network-scripts/ifcfg-enp0s3中所包含的内容相同的信息。

使用箭头键在屏幕中导航,按回车选择值列表中的内容(或填入想要的内容),最后点击屏幕底部右侧的确定按钮。

为CentOS 7配置静态IP地址及遇到的问题解决策略

最后,重启网络服务。

  1. # systemctl restart network.service

2. 遇到的问题及解决策略

当我按照上述方法去配置静态IP时发现了几个问题,总的来说上述方法正确,但有几点可能会出现问题,在此我写了出来,希望遇到相关问题的朋友可以注意一下。

2.1 当我按照上述1.1配置时发现ifcfg-enp0s3文件当中没有IPADDR,NETMASK等大部分选项时怎么办?

策略:这是由于你的IP配置可能设置成了自动获取。你可以用1.2中的方法来配置。

2.2 按照上述方法配置后发现重启网络服务总是失败出现错 误“Job for network.service failed. See 'systemctl status network.service' and 'journalctl -xn' for deta”怎么办?

策略:使用systemctl status network查看服务状态,得到如下错误信息:

# systemctl status network
network.service - LSB: Bring up/downnetworking
  Loaded: loaded (/etc/rc.d/init.d/network)
  Active: failed (Result: exit-code) since Sun 2014-11-23 22:09:08 EST;15min ago
 Process: 597 ExecStart=/etc/rc.d/init.d/network start (code=exited,status=1/FAILURE)
 
Nov 23 22:09:07 hdcoe02 network[597]:Bringing up loopback interface:  Couldnot load file '/etc/sysconfig/network-scripts/ifcfg-lo'
Nov 23 22:09:07 hdcoe02 network[597]:Could not load file '/etc/sysconfig/network-scripts/ifcfg-lo'
Nov 23 22:09:08 hdcoe02 network[597]:Could not load file '/etc/sysconfig/network-scripts/ifcfg-lo'
Nov 23 22:09:08 hdcoe02 network[597]:Could not load file '/etc/sysconfig/network-scripts/ifcfg-lo'
Nov 23 22:09:08 hdcoe02 network[597]:[  OK ]
Nov 23 22:09:08 hdcoe02 network[597]:Bringing up interface enp0s25:  Error:Connection activation failed: Connection 'enp0s25' is not available on thedevice enp0s25 at this time.
Nov 23 22:09:08 hdcoe02 network[597]:[FAILED]
Nov 23 22:09:08 hdcoe02 systemd[1]:network.service: control process exited, code=exited status=1
Nov 23 22:09:08 hdcoe02 systemd[1]: Failedto start LSB: Bring up/down networking.
Nov 23 22:09:08 hdcoe02 systemd[1]: Unitnetwork.service entered failed state.

从错误提示“Error: no device found for connection 'eth0'”可以确定是配置文件eth0的问题,打开查看/etc/sysconfig/network-scripts/ifcfg-eth0文件发现其中的MAC地址和ifconfig命令输出的MAC地址不一样,具体如下所示:

[root@openstack ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
HWADDR=1A:E9:47:A5:75:C8
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPADDR=192.168.1.79
PREFIX=24
GATEWAY=192.168.1.1
DNS1=192.168.1.1
DNS2=8.8.8.8
NAME=eth0
UUID=ba670f0c-201a-483b-8379-c8c72c03ab27
ONBOOT=yes
[root@openstack ~]# ifconfig 
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.79  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::8081:a6ff:fe9d:5887  prefixlen 64  scopeid 0x20<link>
        ether 82:81:a6:9d:58:87  txqueuelen 1000  (Ethernet)
        RX packets 3426  bytes 394042 (384.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 57  bytes 9578 (9.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

所以只需将ifcfg-enp0s3中的HWADDR变量值改为ifconfig命令里显示的MAC地址即可。

2.3 windows PING不通VM下的CENTOS虚拟机?

策略:原因:window的IP是192.168.1.106,而虚拟机的CENTOS的IP是192.168.0.11。不在同一个网段,把虚拟机的CENTOS的IP设置成192.168.1.X (X代表0-255的数字。)就可以了。

3. IP配置中的几个单词的含义

1.       DEVICE=eth0//指出设备名称

2.       ONBOOT=yes//是否启动应用

3.       BOOTPROTO=static//启动类型 静态 (默认dhcp)

4.       IPADDR=192.168.0.77//IP地址

5.       NETMASK=255.255.255.0//子网掩码

6.       GATEWAY=192.168.0.1//网关

 以上是我配置IP时所遇到的问题以及通过搜索大量资料所找到的解决方案,并不能保证这种问题都可以这样解决。

上一篇:【阿里云产品公测】简单日志服务SLS使用评测 + 教程


下一篇:.NET-记一次架构优化实战与方案-底层服务优化