当前位置: 首页 > Linux >如何在Linux 中查看可用的网络接口

如何在Linux 中查看可用的网络接口

客服
余老师华为答疑老师
华为官方授权认证讲师
客服
客服
客服
更新时间:2019年03月22日   作者:spoto |  linux   网络接口  

 

在我们安装完一个Linux 系统后最为常见的任务便是网络配置了。当然,你可以在安装系统时进行网络接口的配置。但是,对于某些人来说,他们更偏爱在安装完系统后再进行网络的配置或者更改现存的设置。众所周知,为了在命令行中进行网络设定的配置,我们首先必须知道系统中有多少个可用的网络接口。本次这个简单的指南将列出所有可能的方式来在Linux 和Unix 操作系统中找到可用的网络接口。

在Linux 中找到可用的网络接口

我们可以使用下面的这些方法来找到可用的网络接口。

方法1 使用ifconfig 命令

使用 ifconfig 命令来查看网络接口仍然是最常使用的方法。我相信还有很多Linux 用户仍然使用这个方法。
如果命令不存在,使用sudo yum install net-tools命令安装。

$ ifconfig-a

示例输出:

enp5s0: flags=4098 mtu 1500
    ether 24:b6:fd:37:8b:29txqueuelen 1000(Ethernet)
    RX packets 0bytes 0(0.0B)
    RX errors 0dropped 0overruns 0frame 0
    TX packets 0bytes 0(0.0B)
    TX errors 0dropped 0overruns 0carrier 0collisions 0
 
lo: flags=73
mtu 65536
    inet 127.0.0.1netmask 255.0.0.0
    inet6 ::1prefixlen 128scopeid 0x10

    loop txqueuelen 1000(LocalLoopback)
    RX packets 171420bytes 303980988(289.8MiB)
    RX errors 0dropped 0overruns 0frame 0
    TX packets 171420bytes 303980988(289.8MiB)
    TX errors 0dropped 0overruns 0carrier 0collisions 0
 
wlp9s0: flags=4163
mtu 1500
    inet 192.168.225.37netmask 255.255.255.0broadcast 192.168.225.255
    inet6 2409:4072:6183:c604:c218:85ff:fe50:474fprefixlen 64scopeid 0x0

    inet6 fe80::c218:85ff:fe50:474fprefixlen 64scopeid 0x20
    ether c0:18:85:50:47:4ftxqueuelen 1000(Ethernet)
    RX packets 564574bytes 628671925(599.5MiB)
    RX errors 0dropped 0overruns 0frame 0
    TX packets 299706bytes 60535732(57.7MiB)
    TX errors 0dropped 0overruns 0carrier 0collisions 0


如上面的输出所示,在我的Linux 机器上有两个网络接口,它们分别叫做 enp5s0(主板上的有线网卡)和 wlp9s0(无线网卡)。其中的 lo 是环回网卡,被用来访问本地的网络的服务,通常它的IP 地址为 127.0.0.1
我们也可以在许多UNIX 变种例如FreeBSD 中使用相同的 ifconfig 来列出可用的网卡。

方法2 使用ip 命令

在最新的Linux 版本中, ifconfig 命令已经被弃用了。你可以使用 ip 命令来罗列出网络接口,正如下面这样:
$ iplinkshow
示例输出:
1: lo: mtu 65536qdisc noqueue state UNKNOWN mode DEFAULT group defaultqlen 1000
   link/loopback 00:00:00:00:00:00brd 00:00:00:00:00:00
2: enp5s0: mtu 1500qdisc noop state DOWN mode DEFAULT group defaultqlen 1000
    link/ether 24:b6:fd:37:8b:29brd ff:ff:ff:ff:ff:ff
3: wlp9s0: mtu 1500qdisc noqueue state UP mode DORMANT group defaultqlen 1000
    link/ether c0:18:85:50:47:4fbrd ff:ff:ff:ff:ff:ff


你也可以使用下面的命令来查看。

$ ipaddr
$ ip-s link

你注意到了吗?这些命令同时还显示出了已经连接的网络接口的状态。假如你仔细查看上面的输出,你将注意到我的有线网卡并没有跟网络线缆连接(从上面输出中的 DOWN 可以看出)。另外,我的无线网卡已经连接了(从上面输出中的 UP 可以看出)。想知晓更多的细节,可以查看我们先前的指南 在 Linux 中查看网络接口的已连接状态
这两个命令(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: 62918963156607800000060822472300922000000
enp5s0: 0000000000000000
o: 303980988171420000000303980988171420000000

方法5 使用netstat 命令

netstat 命令可以列出各种不同的信息,例如网络连接、路由表、接口统计信息、伪装连接和多播成员等。
$ netstat-i
示例输出:
KernelInterfacetable
IfaceMTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
lo 6553171420000171420000LRU
wlp9s0 1500565625000300543000BMRU
请注意 netstat 被弃用了, netstat -i 的替代命令是 ip -s link。另外需要注意的是这个方法将只列出激活的接口,而不是所有可用的接口。

方法6 使用nmcli 命令

nmcli 是一个用来控制NetworkManager 和报告网络状态的命令行工具。它可以被用来创建、展示、编辑、删除、激活、停用网络连接和展示网络状态。
假如你的Linux 系统中安装了NetworkManager,你便可以使用下面的命令来使用 nmcli 列出可以的网络接口:

$ nmcli device status
或者
$ nmcli connection show

 
免费预约试听课程
热门推荐
最新推荐
bg
客服扫码咨询考证课程

即刻预约

免费试听-咨询课程-获取免费资料