Linux下利用ifconfig命令查看和操纵网络接口

时间:2021-10-24 18:02:48

为了说明这个问题,首先我们需要解释一下在Linux系统下“网络接口”的含义。通俗来讲,Linux中的所谓网络接口就是指本机的网卡,它相当于计算机的一台负责对网络进行收发数据的外设。

如何在Linux系统下进行查看和操纵网络接口呢?查看和操纵网络接口,使用的都是同一个命令——ifconfig。

操纵网络接口,具体包括启动,关闭和临时修改网络接口参数。

在Linux下,所有的用户都可以使用ifconfig命令来查看网络接口,但是只有根用户才可以使用ifconfig操纵网络接口。

在使用ifconfig命令之前,必须先安装Linux网络包。安装方法为在shell中键入sudo apt install net-tools.

首先,我们来查看一下所有已开启的网络接口。(再次提醒,是已开启的网络接口,而不是所有的)

只要在shell中直接键入ifconfig即可。

Linux下利用ifconfig命令查看和操纵网络接口

其中,第一个ens33就表示网络接口的名字。

一般来讲,本机的第一个以太网网络接口的接口名为eth0.如果本机中有多个接口,则它们的名字会按照数字的顺序依次排列命名下去。

而本机的网络接口是本机的VMWare虚拟机网络接口,因此名字默认为ens33.

目前本机中只有一个已开启的网络接口。其余部分则显示了该网络接口的状态。

第一行的flags=4163<UP,BROADCAST,RUNNING,MULTICAST> MTU 1500 则表明该网络接口的运行状态,为:已经启用,支持广播和组播,MTU被设置为1500默认值。

第二行表明该网络接口的IPv4地址,本网络的子网掩码及本网络的广播地址。

第三行表明该网络接口的IPv6地址,prefixlen表示该地址的掩码长度,scopeid 0x20<link>表明,该网络接口的作用域仅该接口有效。

第四行表示该网络接口的MAC地址,txqueuelen表示传输队列长度为1000B,并表明该网络接口运行的环境为以太网。

第五行和第六行分别表示该网络接口接收的报文个数453,总字节数481.5KB,错误报文数,丢弃报文数,溢出报文数,冲突帧数。

第七行和第八行表示的是该网络接口发送的报文情况,具体含义和第五行与第六行相同。

对于下方的lo网络接口。lo叫做回环接口,它并不是一个真正的网络接口,它是一个特殊的,模拟出来的网络接口,每个系统都具有这样的一个接口,其IP地址永远为127.0.0.1,子网掩码为255.0.0.0.

回环接口为系统提供一个单机的网络环境,一般用于网络程序的调试。许多程序的运行也需要这个接口。我们一般不会去配置这个接口。

可以在ifconfig命令后加上一个具体的网络接口的名字来查看一个由用户指定的网络接口的信息。

如果网络接口因为一些其他原因没有启动,那么就无法在ifconfig命令的输出中查看其状态了。此时,可以在ifconfig命令后加入-a选项,以查看本机中所有网络接口的状态,无论其是否开启,是否被配置好。

使用ifconfig -a命令后可能出现的情况有三种:

一,仍然没有看到接口,那么说明网卡硬件连接或者驱动出现了问题,导致系统无法识别此网卡了,此时应该检查硬件或者重新安装驱动,如果仍然无法识别,则应该考虑更换网卡。

二,看到接口了,但是输出中没有Inet address,broadcast,mask等参数出现,那就说明网卡硬件没有问题,是接口没有配置好,此时应该查看并编辑相关配置文件,对接口进行配置。

三,看到接口了,并且接口一切正常,那么就是接口未开启。可以使用ifconfig 接口名 up命令来开启接口。(up对应down,表示关闭接口)

如果要临时改变网络接口的配置参数,也可以使用ifconfig命令:

如设置eth0接口的地址为172.168.19.54的命令为:

ifconfig eth0 172.168.19.54 255.255.255.0

因为这个IP地址对应的子网掩码为24位1+8位0.

再比如,设置该网络接口的MTU值的命令为:

ifconfig eth0 mtu 你想设置的值

注意:

1.ifconfig命令修改网络接口参数,只能由root用户完成;

2.ifconfig命令修改网络接口参数是临时的,一旦系统重启,或者网络重启,这些修改将会失效;

3.在远程连接主机时,不要轻易改动网络参数,否则很有可能导致掉线。