如何在 Linux 上檢查網絡卡資訊

2020-04-29 21:48:00

預設情況下,在設定伺服器時你會設定主網路介面。這是每個人所做的構建工作的一部分。有時出於各種原因,你可能需要設定額外的網路介面。

這可以是通過網路係結bonding/共同作業teaming來提供高可用性,也可以是用於應用需求或備份的單獨介面。

為此,你需要知道計算機有多少介面以及它們的速度來設定它們。

有許多命令可檢查可用的網路介面,但是我們僅使用 ip 命令。以後,我們會另外寫一篇文章來全部介紹這些工具。

在本教學中,我們將向你顯示可用網路網絡卡(NIC)資訊,例如介面名稱、關聯的 IP 地址、MAC 地址和介面速度。

什麼是 ip 命令

ip 命令 類似於 ifconfig, 用於分配靜態 IP 地址、路由和預設閘道器等。

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

什麼是 ethtool 命令

ethtool 用於查詢或控制網路驅動或硬體設定。

# ethtool eth0

1)如何在 Linux 上使用 ip 命令檢查可用的網路介面

在不帶任何引數的情況下執行 ip 命令時,它會提供大量資訊,但是,如果僅需要可用的網路介面,請使用以下客製化的 ip 命令。

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

2)如何在 Linux 上使用 ip 命令檢查網路介面的 IP 地址

如果只想檢視 IP 地址分配給了哪個介面,請使用以下客製化的 ip 命令。

# ip -o a show | cut -d ' ' -f 2,7或ip a |grep -i inet | awk '{print $7, $2}'lo 127.0.0.1/8192.168.1.101/24192.168.1.102/24

3)如何在 Linux 上使用 ip 命令檢查網絡卡的 MAC 地址

如果只想檢視網路介面名稱和相應的 MAC 地址,請使用以下格式。

檢查特定的網路介面的 MAC 地址:

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

檢查所有網路介面的 MAC 地址,建立該指令碼:

# vi /opt/scripts/mac-addresses.sh#!/bin/ship a |awk '/state UP/{print $2}' | sed 's/://' | while read output;do  echo $output:  ethtool -P $outputdone

執行該指令碼獲取多個網路介面的 MAC 地址:

# sh /opt/scripts/mac-addresses.sheth0:Permanent address: 00:00:00:55:43:5ceth1:Permanent address: 00:00:00:55:43:5d

4)如何在 Linux 上使用 ethtool 命令檢查網路介面速度

如果要在 Linux 上檢查網路介面速度,請使用 ethtool 命令。

檢查特定網路介面的速度:

# ethtool eth0 |grep "Speed:"Speed: 10000Mb/s

檢查所有網路介面速度,建立該指令碼:

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

執行該指令碼獲取多個網路介面速度:

# sh /opt/scripts/port-speed.sheth0:Speed: 10000Mb/seth1:Speed: 10000Mb/s

5)驗證網絡卡資訊的 Shell 指令碼

通過此 shell 指令碼你可以收集上述所有資訊,例如網路介面名稱、網路介面的 IP 地址,網路介面的 MAC 地址以及網路介面的速度。建立該指令碼:

# vi /opt/scripts/nic-info.sh#!/bin/shhostnameecho "-------------"for iname in $(ip a |awk '/state UP/{print $2}')do  echo "$iname"  ip a | grep -A2 $iname | awk '/inet/{print $2}'  ip a | grep -A2 $iname | awk '/link/{print $2}'  ethtool $iname |grep "Speed:"done

執行該指令碼檢查網絡卡資訊:

# sh /opt/scripts/nic-info.shvps.2daygeek.com----------------eth0:192.168.1.101/2400:00:00:55:43:5cSpeed: 10000Mb/seth1:192.168.1.102/2400:00:00:55:43:5dSpeed: 10000Mb/s