linux中網路卡是什麼東西

2023-03-02 22:00:36

網路卡是一塊用來允許計算機在計算機網路上進行通訊的計算機硬體,它使得使用者可以通過電纜或無線相互連線。在linux作業系統中,網路卡裝置的傳統命名方式是eth0、eth1、eth2等,檢視網路卡型號的語法「lspci | grep -i ether」、網路卡資源使用情況的語法「sar -n DEV」、網路卡是否支援多佇列的語法「lspci -vvv | grep -i msi-x」。

本教學操作環境:CentOS7系統、Dell G3電腦。

網路卡是什麼東西


網路卡是一塊被設計用來允許計算機在計算機網路上進行通訊的計算機硬體。由於其擁有MAC地址,因此屬於OSI模型的第1層和2層之間。它使得使用者可以通過電纜或無線相互連線。

每一個網路卡都有一個被稱為MAC地址的獨一無二的48位元序列號,它被寫在卡上的一塊ROM中。在網路上的每一個計算機都必須擁有一個獨一無二的MAC地址。

linux中關於網路卡的基本知識總結


一、網路卡概述

Linux 作業系統的網路卡裝置的傳統命名方式是 eth0、eth1、eth2等,而 CentOS7 提供了不同的命名規則,預設是基於韌體、拓撲、位置資訊來分配。這樣做的優點是命名全自動的、可預知的,缺點是比 eth0、wlan0 更難讀,比如 ens33 。

二、Eth0和ens的區別

  • eno1:代表由主辦bios內建的網路卡

  • Ens:代表有主機板bios內建的PCI-E網路卡

  • Enp2s0:PCI-E獨立網路卡

  • Eth0:如果以上都不使用回到預設的網路卡名

三、命名規則策略

規則1:

對於板載裝置命名合併韌體或 BIOS 提供的索引號,如果來自韌體或 BIOS 的資訊可讀就命名,比如eno1,這種命名是比較常見的,否則使用規則2。

規則2:

命名合併韌體或 BIOS 提供的 PCI-E 熱插拔口索引號,比如 ens1,如果資訊可讀就使用,否則使用規則3。

規則3:

命名合併硬體介面的物理位置,比如 enp2s0,可用就命名,失敗直接到方案5。

規則4:

命名合併介面的 MAC 地址,比如 enx78e7d1ea46da,預設不使用,除非使用者選擇使用此方案。

規則5:

使用傳統的方案,如果所有的方案都失敗,使用類似 eth0 這樣的樣式。

四、網路卡名稱字元含義

1、前2個字元的含義

en  乙太網    Ethernet

wl  無線區域網  WLAN

ww  無線廣域網  WWAN

2、第3個字元根據裝置型別選擇

  • o<index> on-board device index number

  • s<slot> hotplug slot index number

  • x<MAC> MAC address

  • p<bus>s<slot> PCI geographical location

  • p<bus>s<slot> USB port number chain

五、修改網路卡名稱樣式為ethx

如果不習慣使用新的命名規則,可以恢復使用傳統的方式命名,編輯 grub 檔案,增加兩個變數,再使用 grub2-mkconfig 重新生成 grub 組態檔即可。

1、編輯 grub 組態檔

vim /etc/sysconfig/grub   # 其實是/etc/default/grub的軟連線
登入後複製

# 為GRUB_CMDLINE_LINUX變數增加2個引數,具體內容如下(加粗):

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap net.ifnames=0 biosdevname=0 rhgb quiet"
登入後複製

2、重新生成 grub 組態檔

grub2-mkconfig -o /boot/grub2/grub.cfg
登入後複製

然後重新啟動 Linux 作業系統,通過 ip addr 可以看到網路卡名稱已經變為 eth0 。

3、修改網路卡組態檔

原來網路卡組態檔名稱為 ifcfg-ens33,這裡需要修改為 ethx 的格式,並適當調整網路卡組態檔。

mv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-eth0
# 修改ifcfg-eth0檔案如下內容(其它內容不變)
NAME=eth0
DEVICE=eth0
登入後複製
[root@localhost ~]# systemctl restart network.service    # 重新啟動網路服務
登入後複製

注意:ifcfg-ens33 檔案最好刪除掉,否則重新啟動 network 服務時候會報錯

TYPE=Ethernet                # 網路卡型別:為乙太網
PROXY_METHOD=none            # 代理方式:關閉狀態
BROWSER_ONLY=no                # 只是瀏覽器:否
BOOTPROTO=dhcp                # 網路卡的引導協定:DHCP[中文名稱: 動態主機設定協定]
DEFROUTE=yes                # 預設路由:是, 不明白的可以百度關鍵詞 `預設路由`
IPV4_FAILURE_FATAL=no        # 是不開啟IPV4致命錯誤檢測:否
IPV6INIT=yes                # IPV6是否自動初始化: 是[不會有任何影響, 現在還沒用到IPV6]
IPV6_AUTOCONF=yes            # IPV6是否自動設定:是[不會有任何影響, 現在還沒用到IPV6]
IPV6_DEFROUTE=yes            # IPV6是否可以為預設路由:是[不會有任何影響, 現在還沒用到IPV6]
IPV6_FAILURE_FATAL=no        # 是不開啟IPV6致命錯誤檢測:否
IPV6_ADDR_GEN_MODE=stable-privacy            # IPV6地址生成模型:stable-privacy [這隻一種生成IPV6的策略]
NAME=ens33                    # 網路卡物理裝置名稱
UUID=f47bde51-fa78-4f79-b68f-d5dd90cfc698    # 通用唯一識別碼, 每一個網路卡都會有, 不能重複, 否兩臺linux只有一臺網路卡可用
DEVICE=ens33                    # 網路卡裝置名稱, 必須和 `NAME` 值一樣
ONBOOT=no                        # 是否開機啟動, 要想網路卡開機就啟動或通過 `systemctl restart network`控制網路卡,必須設定為 `yes`
登入後複製

/etc/sysconfig/network # 包括主機基本網路資訊,用於系統啟動 /etc/sysconfig/network-script/ # 此目錄下是系統啟動最初始化網路的資訊 /etc/sysconfig/network-script/ifcfg-em1 # 網路設定資訊,每個人的設定名字不一樣通過命令檢視 /etc/xinetd.conf 定義了由超級程序XINETD啟動的網路服務 /etc/protocols # 設定了主機使用的協定以及各個協定的協定號 /etc/services # 設定了主機的不同埠的網路服務

六、檢視虛擬化有沒有開啟

Ctrl+alt+delete

1.png

七、基礎命令

檢視網路卡型號: lspci | grep -i ether

檢視網路卡資源使用情況: sar -n DEV(重點看網路頻寬);

檢視網路卡eth0的佇列:/sys/class/net/eth0/queues

檢視網路卡是否支援多佇列: lspci -vvv | grep -i msi-x

  如下圖所示,檢視Ethernet controller的條目內容,如果有MSI-X && Enable+ && TabSize > 1,則該網路卡是多佇列網路卡,TabSize表示該網路卡支援的佇列數。

2.png

相關推薦:《Linux視訊教學

以上就是linux中網路卡是什麼東西的詳細內容,更多請關注TW511.COM其它相關文章!