如何在Linux上检查网卡信息

系统 Linux
在本教程中,我们将向你显示可用网络网卡(NIC)信息,例如接口名称、关联的 IP 地址、MAC 地址和接口速度。

[[324528]]

默认情况下,在设置服务器时你会配置主网络接口。这是每个人所做的构建工作的一部分。有时出于各种原因,你可能需要配置额外的网络接口。

这可以是通过网络绑定bonding/协作teaming来提供高可用性,也可以是用于应用需求或备份的单独接口。

为此,你需要知道计算机有多少接口以及它们的速度来配置它们。

有许多命令可检查可用的网络接口,但是我们仅使用 ip 命令。以后,我们会另外写一篇文章来全部介绍这些工具。

在本教程中,我们将向你显示可用网络网卡(NIC)信息,例如接口名称、关联的 IP 地址、MAC 地址和接口速度。

什么是 ip 命令

ip 命令 类似于 ifconfig, 用于分配静态 IP 地址、路由和默认网关等。

  1. # ip a
  2.  
  3. 1: lo: mtu 65536 qdisc noqueue state UNKNOWN
  4. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  5. inet 127.0.0.1/8 scope host lo
  6. inet6 ::1/128 scope host
  7. valid_lft forever preferred_lft forever
  8. 2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
  9. link/ether fa:16:3e:a0:7d:5a brd ff:ff:ff:ff:ff:ff
  10. inet 192.168.1.101/24 brd 192.168.1.101 scope global eth0
  11. inet6 fe80::f816:3eff:fea0:7d5a/64 scope link
  12. valid_lft forever preferred_lft forever

什么是 ethtool 命令

ethtool 用于查询或控制网络驱动或硬件设置。

  1. # ethtool eth0

1)如何在 Linux 上使用 ip 命令检查可用的网络接口

在不带任何参数的情况下运行 ip 命令时,它会提供大量信息,但是,如果仅需要可用的网络接口,请使用以下定制的 ip 命令。

  1. # ip a |awk '/state UP/{print $2}'
  2.  
  3. eth0:
  4. eth1:

2)如何在 Linux 上使用 ip 命令检查网络接口的 IP 地址

如果只想查看 IP 地址分配给了哪个接口,请使用以下定制的 ip 命令。

  1. # ip -o a show | cut -d ' ' -f 2,7
  2. ip a |grep -i inet | awk '{print $7, $2}'
  3.  
  4. lo 127.0.0.1/8
  5. 192.168.1.101/24
  6. 192.168.1.102/24

3)如何在 Linux 上使用 ip 命令检查网卡的 MAC 地址

如果只想查看网络接口名称和相应的 MAC 地址,请使用以下格式。

检查特定的网络接口的 MAC 地址:

  1. # ip link show dev eth0 |awk '/link/{print $2}'
  2. 00:00:00:55:43:5c

检查所有网络接口的 MAC 地址,创建该脚本:

  1. # vi /opt/scripts/mac-addresses.sh
  2.  
  3. #!/bin/sh
  4. ip a |awk '/state UP/{print $2}' | sed 's/://' | while read output;
  5. do
  6. echo $output:
  7. ethtool -P $output
  8. done

运行该脚本获取多个网络接口的 MAC 地址:

  1. # sh /opt/scripts/mac-addresses.sh
  2.  
  3. eth0:
  4. Permanent address: 00:00:00:55:43:5c
  5. eth1:
  6. Permanent address: 00:00:00:55:43:5d

4)如何在 Linux 上使用 ethtool 命令检查网络接口速度

如果要在 Linux 上检查网络接口速度,请使用 ethtool 命令。

检查特定网络接口的速度:

  1. # ethtool eth0 |grep "Speed:"
  2.  
  3. Speed: 10000Mb/s

检查所有网络接口速度,创建该脚本:

  1. # vi /opt/scripts/port-speed.sh
  2.  
  3. #!/bin/sh
  4. ip a |awk '/state UP/{print $2}' | sed 's/://' | while read output;
  5. do
  6. echo $output:
  7. ethtool $output |grep "Speed:"
  8. done

运行该脚本获取多个网络接口速度:

  1. # sh /opt/scripts/port-speed.sh
  2.  
  3. eth0:
  4. Speed: 10000Mb/s
  5. eth1:
  6. Speed: 10000Mb/s

5)验证网卡信息的 Shell 脚本

通过此 shell 脚本你可以收集上述所有信息,例如网络接口名称、网络接口的 IP 地址,网络接口的 MAC 地址以及网络接口的速度。创建该脚本:

  1. # vi /opt/scripts/nic-info.sh
  2.  
  3. #!/bin/sh
  4. hostname
  5. echo "-------------"
  6. for iname in $(ip a |awk '/state UP/{print $2}')
  7. do
  8. echo "$iname"
  9. ip a | grep -A2 $iname | awk '/inet/{print $2}'
  10. ip a | grep -A2 $iname | awk '/link/{print $2}'
  11. ethtool $iname |grep "Speed:"
  12. done

运行该脚本检查网卡信息:

  1. # sh /opt/scripts/nic-info.sh
  2.  
  3. vps.2daygeek.com
  4. ----------------
  5. eth0:
  6. 192.168.1.101/24
  7. 00:00:00:55:43:5c
  8. Speed: 10000Mb/s
  9. eth1:
  10. 192.168.1.102/24
  11. 00:00:00:55:43:5d
  12. Speed: 10000Mb/s

via: https://www.2daygeek.com/linux-unix-check-network-interfaces-names-nic-speed-ip-mac-address/

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2018-07-20 14:20:24

Linux用户组管理员

2009-02-16 20:16:52

Linux网卡硬件查看

2020-11-17 11:19:48

Linux磁盘空间

2018-09-17 11:35:44

Linux软件包命令

2022-10-28 16:42:04

Linuxcrontab日志

2020-04-01 12:42:01

Linux用户密码到期日期

2022-01-17 13:34:45

MySQLLinux数据库

2019-11-26 16:58:51

Linuxpkgsrc

2019-01-07 09:50:06

Linuxtarball命令

2019-11-26 09:20:47

LinuxJava

2023-01-17 07:40:59

LinuxAppImage应用程序

2020-04-21 14:21:31

LinuxPython

2018-12-11 11:00:50

Linux字体命令

2021-10-12 08:43:19

LinuxSambaWindows

2021-10-02 10:10:47

LinuxBusyBox命令

2014-04-09 10:16:28

Linux文件系统fsck工具

2016-01-04 15:17:50

Linux命令行硬件

2020-08-24 12:37:54

Linuxxargs命令

2021-11-28 06:33:24

Discord消息收发应用 Linux

2012-05-21 10:31:06

LinuxVMware Tool
点赞
收藏

51CTO技术栈公众号