在我们安装完一个Linux 系统后最为常见的任务便是网络配置了。当然,你可以在安装系统时进行网络接口的配置。但是,对于某些人来说,他们更偏爱在安装完系统后再进行网络的配置或者更改现存的设置。众所周知,为了在命令行中进行网络设定的配置,我们首先必须知道系统中有多少个可用的网络接口。本次这个简单的指南将列出所有可能的方式来在Linux 和Unix 操作系统中找到可用的网络接口。
在Linux 中找到可用的网络接口
方法1 使用ifconfig 命令
ifconfig
命令来查看网络接口仍然是最常使用的方法。我相信还有很多Linux 用户仍然使用这个方法。如果命令不存在,使用sudo yum install net-tools命令安装。
$ ifconfig-a
示例输出:
enp5s0: flags=4098
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
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
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 命令
ifconfig
命令已经被弃用了。你可以使用 ip
命令来罗列出网络接口,正如下面这样:$ iplinkshow
示例输出:
1: lo:
link/loopback 00:00:00:00:00:00brd 00:00:00:00:00:00
2: enp5s0:
link/ether 24:b6:fd:37:8b:29brd ff:ff:ff:ff:ff:ff
3: wlp9s0:
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 目录
/sys/class/net
目录中,你可以通过查看这个目录的内容来检验可用接口的列表是否和前面的结果相符。$ ls/sys/class/net
示例输出:
enp5s0 lo wlp9s0
方法4 使用/proc/net/dev 目录
/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