CentOS 7中ifconfig命令的详解与实践
一、ifconfig命令简介
ifconfig是一个用于配置和显示Linux内核中网络接口参数的命令,它可以用来激活和禁用网络接口,设置IP地址、子网掩码,以及配置其他与网络接口相关的参数,尽管在CentOS 7及更高版本中,ifconfig命令已被标记为过时,并推荐使用ip命令来替代,但许多老用户和系统管理员仍然习惯使用ifconfig,本文将详细介绍如何在CentOS 7中使用ifconfig命令,并提供相应的示例和注意事项。

二、安装ifconfig命令
在CentOS 7中,默认情况下并没有安装ifconfig命令,如果直接运行ifconfig命令,会提示错误:
bash: ifconfig: command not found
这是因为CentOS 7默认不包含nettools包,而ifconfig命令就在这个包中,要安装这个命令,可以使用以下命令:
sudo yum install nettools y
安装完成后,就可以正常使用ifconfig命令了。
三、查看所有网络接口的信息
使用ifconfig命令可以查看系统中所有网络接口的状态和配置信息,包括IP地址、子网掩码、广播地址等,具体命令如下:
ifconfig
输出结果类似于:
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::a00:27ff:feb1:b23f prefixlen 64 scopeid 0x20<link>
ether 08:00:27:b1:b2:3f txqueuelen 1000 (Ethernet)
RX packets 396 bytes 43132 (42.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 189 bytes 25028 (24.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在这个输出中,我们可以看到两个网络接口的信息:ens33(物理网卡)和lo(回环接口),每个接口的信息包括MAC地址、IPv4地址、子网掩码、广播地址、接收和发送的数据包数量等。

四、配置网络接口的IP地址和子网掩码
要配置一个网络接口的IP地址和子网掩码,可以使用以下命令(假设接口名为ens33):
sudo ifconfig ens33 192.168.1.100 netmask 255.255.255.0
这条命令将ens33接口的IP地址设置为192.168.1.100,子网掩码设置为255.255.255.0。
五、启用或禁用网络接口
要启用或禁用某个网络接口,可以使用以下命令:
启用ens33接口 sudo ifconfig ens33 up 禁用ens33接口 sudo ifconfig ens33 down
启用网络接口时,ifconfig命令会将接口状态设置为UP,并尝试获取一个IP地址,禁用网络接口时,ifconfig命令会将接口状态设置为DOWN。
六、使用ip命令替代ifconfig
由于ifconfig命令在CentOS 7中已被标记为过时,推荐使用ip命令进行网络配置和查看,以下是一些常用的ip命令及其功能:
查看所有网络接口的信息:

ip addr show
或者简写为:
ip a
配置网络接口的IP地址和子网掩码:
sudo ip addr add 192.168.1.100/24 dev ens33
然后启用接口:
sudo ip link set ens33 up
启用或禁用网络接口:
启用ens33接口 sudo ip link set ens33 up 禁用ens33接口 sudo ip link set ens33 down
七、注意事项
1、临时生效:使用ifconfig和ip命令进行的网络配置在系统重启后会丢失,如果需要永久配置,建议修改相应的网络配置文件,如/etc/sysconfig/networkscripts/ifcfgens33。
2、兼容性问题:尽管ifconfig命令在CentOS 7中仍可使用,但为了与未来的Linux发行版保持兼容,建议熟悉并使用ip命令。
3、备份配置:在进行网络配置之前,建议备份相关配置文件,以防出现配置错误导致网络服务中断。
尽管ifconfig命令在CentOS 7中已不是首选的网络配置工具,但它仍然可用,并通过安装nettools包可以方便地访问,为了与未来的Linux发行版保持兼容并充分利用最新的网络管理功能,建议熟悉并使用ip命令,通过掌握这两个命令,你将能够更有效地管理和配置CentOS 7中的网络接口。
九、相关问答FAQs
Q1:ifconfig命令无法找到怎么办?
A1: 如果运行ifconfig命令时提示找不到该命令,通常是因为系统中没有安装nettools包,可以通过以下命令安装:
sudo yum install nettools y
安装完成后,即可正常使用ifconfig命令。
Q2: 如何永久配置网络接口的IP地址?
A2: 使用ifconfig或ip命令进行的网络配置在系统重启后会丢失,要永久配置网络接口的IP地址,可以修改相应的网络配置文件,对于ens33接口,可以编辑文件/etc/sysconfig/networkscripts/ifcfgens33,添加或修改以下内容:
TYPE=Ethernet BOOTPROTO=none ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4
保存文件后,重启网络服务使配置生效:
sudo systemctl restart network
