一、背景

公司新来一台服务器,系统已经装好了,操作系统为CentOS,具体版本不太清楚。但是插上网线后,不能联网,通过初步分析,应该是网卡配置的问题。

1.1 首先查看了下操作系统的版本

# cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core)

1.2 查看本机ip地址,然后运行​​ifconfig​​,结果报错

# ifconfig
-bash: ifconfig: command not found

我们知道,​​ifconfig​​​命令用于配置GNU/Linux系统的网络接口。它显示网络接口卡的详细信息,包括IP地址,MAC地址,以及网络接口卡状态之类。但是在CentOS 7最小化系统中,该命令已经过时了,而且在最小化版本的RHEL 7以及它的克隆版本CentOS 7,Oracle Linux 7和Scientific Linux 7中也找不到该命令。我们可以通过​​ip addr​​令来查看网卡详情。

1.3 通过​​ip addr​​ 查看ip地址

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 52:54:00:3a:5f:30 brd ff:ff:ff:ff:ff:ff
inet 172.21.0.15/20 brd 172.21.15.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe3a:5f30/64 scope link
valid_lft forever preferred_lft forever


Linux CentOS7配置ip地址攻略_Linux



结果发现:网卡eth0的ip地址是172.21.0.15,和目前公司的的网络断(公司的网段是192.168.x.x)是不一致的。接下来我们查看下网卡eth0的配置。

**注意:**有的情况下是网卡是没有配置ip地址的。

1.4 查看网卡eth0的配置

**注意:**每个服务器的网卡名称是不一样的,根据自己实际情况进行查看。比如我们通过上述命令​​ip addr​​ 可以得知,网卡名为eth0

cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Created by cloud-init on instance boot automatically, do not edit.
#
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
DEVICE=eth0
ONBOOT=yes
IPADDR=172.21.0.15
NETMASK=255.255.240.0
GATEWAY=172.21.0.1
USERCTL=no
HWADDR=52:54:00:3a:5f:30
PERSISTENT_DHCLIENT=yes
NM_CONTROLLED=no

注意:

BOOTPROTO=static 静态IP
BOOTPROTO=dhcp 动态IP
BOOTPROTO=none 无(不指定)

结果发现:配置里面设置了静态的ip地址。

我们要解决的问题:当我们的网卡没有配置ip地址或者需要修改网卡的配置,如何处理呢?

接下来我们通过下面的几种方式说明下如何配置ip地址。

二、手动配置CentOS的ip地址

2.1 方式一:动态获取ip地址

2.1.1 修改网卡配置文件

vi /etc/sysconfig/network-scripts/ifcfg-eth0

#动态获取IP地址需要修改两处地方即可
bootproto=dhcp
onboot=yes

2.1.2 修改后,重启一下网络服务即可

systemctl restart network

2.1.3 重启后,验证下

通过​​ip addr​​​命令查看下ip地址,且可以上网(​​ping www.baidu.com​​)

ip addr

ping www.baidu.com

2.2 方式二:设置静态ip地址

2.2.1 修改网卡配置文件

设置静态IP地址与动态iIP差不多,也是要修改网卡配置文件。

vi /etc/sysconfig/network-scripts/ifcfg-eth0

#设置静态ip地址
bootproto=static
onboot=yes

#然后再设置下ip地址、子网掩码、网关、dns服务器
IPADDR=192.168.3.164
NETMASK=255.255.255.0
GATEWAY=192.168.3.253
DNS1=114.114.114.114
DNS2=14.114.115.115

2.2.2 修改后,重启一下网络服务即可

systemctl restart network

2.2.3 重启后,验证下

通过​​ip addr​​​命令查看下ip地址,且可以上网(​​ping www.baidu.com​​)

ip addr

ping www.baidu.com

三、通过ifconfig设置ip地址

注意:前提是需要联网,能够安装提供ifconfig工具命令的安装包

3.1 查看那个包提供ifconfig命令

# yum provides ifconfig

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/filelists_db | 12 MB 00:00:00
extras/7/x86_64/filelists_db | 259 kB 00:00:00
updates/7/x86_64/filelists_db | 1.7 kB 00:00:00
net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools
Repo : base
Matched from:
Filename : /sbin/ifconfig

net-tools-2.0-0.22.20131004git.el7.x86_64 : Basic networking tools
Repo : @base
Matched from:
Filename : /sbin/ifconfig

可以看到​​ifconfig​​​命令依赖​​net-tools​​安装包。接下来我们安装下这个包。

3.2 安装net-tools

# yum install net-tools

3.3 ifconfig命令测试

# ifconfig

3.4 配置ip地址

#给eth0网卡配置IP地址,并加上子掩码
# ifconfig eth0 192.168.3.18 netmask 255.255.255.0

四、知识扩展

ifconfig命令用法:https://www.joshua317.com/article/226