云网牛站
所在位置:首页 > Linux命令 > Linux上使用ifconfig、ip、netstat、nmcli命令查找可用的网络接口

Linux上使用ifconfig、ip、netstat、nmcli命令查找可用的网络接口

2019-02-28 09:49:12作者:戴均力稿源:云网牛站

本文教你在Linux操作系统上使用命令查找可用的网络接口:ifconfig、ip、netstat、nmcli命令,及在/sys/class/net目录和在/proc/net/dev文件中查找。安装Linux系统后我们做的一项常见任务是网络配置,当然,你可以在安装期间配置网络接口。但是,有些人可能更喜欢在安装后更改或更改现有设置,你必须首先知道系统上有多少接口可用于从命令行配置网络设置,本文介绍了在Linux和Unix操作系统上查找可用网络接口的所有可能方法。

Linux上使用ifconfig、ip、netstat、nmcli命令查找可用的网络接口

 

方法1、使用ifconfig命令

查找网络接口详细信息的最常用方法是使用ifconfig命令,我相信一些Linux用户可能仍然会使用它:

$ ifconfig -a

样本输出如下:

enp5s0: flags=4098<BROADCAST,MULTICAST> mtu 1500

ether 24:b6:fd:37:8b:29 txqueuelen 1000 (Ethernet)

RX packets 0 bytes 0 (0.0 B)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 0 bytes 0 (0.0 B)

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 171420 bytes 303980988 (289.8 MiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 171420 bytes 303980988 (289.8 MiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wlp9s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 192.168.225.37 netmask 255.255.255.0 broadcast 192.168.225.255

inet6 2409:4072:6183:c604:c218:85ff:fe50:474f prefixlen 64 scopeid 0x0<global>

inet6 fe80::c218:85ff:fe50:474f prefixlen 64 scopeid 0x20<link>

ether c0:18:85:50:47:4f txqueuelen 1000 (Ethernet)

RX packets 564574 bytes 628671925 (599.5 MiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 299706 bytes 60535732 (57.7 MiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

正如你在上面的输出中看到的,我的Linux机器上有两个网络接口,即enp5s0(有线以太网适配器)和wlp9s0(无线网络适配器),这里,lo是loopback接口,用于本地访问所有网络服务,它的IP地址为127.0.0.1。

我们还可以在许多UNIX变体(例如FreeBSD)中使用相同的ifconfig命令来列出可用的网卡。

参考:在RHEL 8/CentOS 8 Minimal系统上安装Ifconfig的方法

 

方法2、使用ip命令

在最新的Linux版本中不推荐使用ifconfig命令(参考:新的网络管理工具 ip替代ifconfig零压力),因此你可以使用ip命令显示网络接口,如下所示:

$ ip link show

样本输出如下:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000

 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

2: enp5s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000

 link/ether 24:b6:fd:37:8b:29 brd ff:ff:ff:ff:ff:ff

3: wlp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000

 link/ether c0:18:85:50:47:4f brd ff:ff:ff:ff:ff:ff

Linux上使用ifconfig、ip、netstat、nmcli命令查找可用的网络接口

以上就是在Linux上使用ip命令查找可用的网络接口。

也可以使用以下命令:

$ ip addr

$ ip -s link

你是否注意到这些命令还显示了网络接口的连接状态?如果仔细查看上面的输出,你会注意到我的以太网卡未连接网络电缆(请参阅上面输出中的“DOWN”字样),并且连接了无线网卡(参见“UP”一词)。

这两个命令(ifconfig和ip)足以在Linux系统上找到可用的网卡。

但是,在Linux上列出网络接口的其他方法很少。

 

方法3、在/sys/class/net目录中查找

Linux内核将网络接口详细信息保存在/sys/class/net目录中,你可以通过查看此目录来验证可用接口列表:

$ ls /sys/class/net

输出如下:

enp5s0 lo wlp9s0

 

方法4、在/proc/net/dev文件中查找

在Linux操作系统中,/proc/net/dev文件包含有关网络接口的统计信息。

要查看可用的网卡,只需使用以下命令查看其内容:

$ cat /proc/net/dev

输出如下:

Inter-| Receive | Transmit

face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed

wlp9s0: 629189631 566078 0 0 0 0 0 0 60822472 300922 0 0 0 0 0 0

enp5s0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

lo: 303980988 171420 0 0 0 0 0 0 303980988 171420 0 0 0 0 0 0

 

方法5、使用netstat命令

netstat命令显示各种详细信息,例如网络连接、路由表、接口统计信息、伪装连接和多播成员资格:

$ netstat -i

样本输出如下:

Kernel Interface table

Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg

lo 65536 171420 0 0 0 171420 0 0 0 LRU

wlp9s0 1500 565625 0 0 0 300543 0 0 0 BMRU

请注意,netstat已经过时了,“netstat -i”的替换是“ip -s link”,另请注意,此方法仅列出活动接口,而不是所有可用接口。

 

方法6、使用nmcli命令

nmcli是nmcli是一个用于控制NetworkManager和报告网络状态的命令行工具,它用于创建、显示、编辑、删除、激活和停用网络连接以及显示网络状态。

如果安装了网络管理器的Linux系统,则可以使用以下命令使用nmcli工具列出可用的网络接口:

$ nmcli device status

或者:

$ nmcli connection show

 

结语

以上就是在Linux上找到可用的网络接口的6种方法,一般情况下,使用命令会非常的方便。

 

相关主题

使用netstat命令来检查Linux中的TCP连接状态

Linux命令子频道
精选文章
热门文章