Royc30ne

Royc30ne

机器学习 | 联邦学习 | VPS | 摄影 | 日常

[Linux指南]查看網卡配置及切換網卡工作模式

https://images.unsplash.com/photo-1520869562399-e772f042f422?ixlib=rb-4.0.3&q=85&fm=jpg&crop=entropy&cs=srgb

導言#

前幾天在對 zimaboard 內網測速時發現網速一直卡在 100Mbps,在多次 debug 後發現是由於網卡不知道為什麼默認配置為 100M 雙工,於是記錄以下我是如何在 Linux 下對網卡進行配置的。在 Linux 操作系統中,網卡是連接計算機和網絡的關鍵組件之一。在進行網絡通信時,網卡的速度和工作模式將直接影響網絡連接的速度和穩定性。本文將介紹如何在 Linux 中查看網卡配置信息,以及如何切換網卡的工作模式。

一些基礎知識#

網卡的工作原理#

網卡是計算機和網絡之間的接口設備。它負責將計算機的數據轉換成網絡數據,以及將網絡數據轉換成計算機可以處理的數據。網卡的工作原理是通過網絡電纜與交換機相連接,將數據包從一個網絡節點傳輸到另一個網絡節點。

網卡的速度#

網卡的速度是指網卡每秒鐘可以傳輸的數據量,通常用 Mbps(兆位每秒)來表示。在網絡通信中,網卡的速度越快,數據傳輸的速度就越快。千兆以太網(Gigabit Ethernet)是當前常用的高速網絡接口,它的速度是 1000Mbps。

全雙工和半雙工#

全雙工(Full Duplex)是指通信雙方可以同時發送和接收數據。半雙工(Half Duplex)是指通信雙方不能同時發送和接收數據,只能先發送或先接收。全雙工通信比半雙工通信更加高效和穩定。

查看網卡配置信息#

要查看 Linux 系統中的網卡配置信息,可以使用 ifconfig 命令。該命令可以列出系統中所有的網絡接口設備以及它們的配置信息。在終端輸入以下命令:

ifconfig
輸出示例:
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        inet6 fe80::42:5eff:fefd:9c84  prefixlen 64  scopeid 0x20<link>
        ether 02:42:5e:fd:9c:84  txqueuelen 0  (Ethernet)
        RX packets 8622396  bytes 7223439485 (6.7 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 9796600  bytes 7777150109 (7.2 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.107  netmask 255.255.255.0  broadcast 192.168.100.255
        inet6 fd0f:dcc:1d5f:6bf9:c6e5:baa:c32f:193c  prefixlen 64  scopeid 0x0<global>
        inet6 fd0f:dcc:1d5f:6bf9:2e0:4cff:fe68:1647  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::2e0:4cff:fe68:1647  prefixlen 64  scopeid 0x20<link>
        inet6 fd0f:dcc:1d5f:6bf9:407d:bba4:14ce:a32c  prefixlen 64  scopeid 0x0<global>
        inet6 fd0f:dcc:1d5f:6bf9:628d:ad91:55b:1df2  prefixlen 64  scopeid 0x0<global>
        inet6 fd0f:dcc:1d5f:6bf9:ea80:92b6:b9dd:8710  prefixlen 64  scopeid 0x0<global>
        inet6 fd0f:dcc:1d5f:6bf9:a8ba:d85c:a55e:cc0d  prefixlen 64  scopeid 0x0<global>
        inet6 fd0f:dcc:1d5f:6bf9:e584:259d:760f:faa3  prefixlen 64  scopeid 0x0<global>
        inet6 fd0f:dcc:1d5f:6bf9:e8ec:cda2:3ad7:df4a  prefixlen 64  scopeid 0x0<global>
        ether 00:e0:4c:68:16:47  txqueuelen 1000  (Ethernet)
        RX packets 113354368  bytes 148231729254 (138.0 GiB)
        RX errors 0  dropped 256  overruns 0  frame 0
        TX packets 60782210  bytes 35517421804 (33.0 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp3s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 00:e0:4c:68:16:48  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 11573003  bytes 13645776101 (12.7 GiB)

該命令將輸出網絡接口的配置信息,包括 IP 地址、子網掩碼、MAC 地址等。如果要查看某個特定的網卡的配置信息,可以使用以下命令:

ifconfig enp2s0

其中,enp2s0 為要查看的網卡的名稱。該命令將輸出 enp2s0 網卡的配置信息。

切換網卡工作模式#

在 Linux 系統中,可以使用 ethtool 命令來配置網卡的工作模式。ethtool 是一個用於配置網絡接口設備的工具,它可以查看和修改網絡接口設備的驅動程序和硬件設置。

步驟一:安裝 ethtool#

如果系統中沒有安裝 ethtool 工具,可以通過以下命令來安裝:

#centos
sudo yum install ethtool

#debian,ubuntu
sudo apt install ethtool

步驟二:查看網卡工作模式#

要查看當前網卡的工作模式,可以使用以下命令:

ethtool <網卡設備>
#e.g. ethtool eth0

其中,eth0 為要查看的網卡的名稱。該命令將輸出網卡的配置信息,包括當前的工作模式。

步驟三:修改網卡工作模式#

要修改網卡的工作模式,可以使用以下命令:

ethtool -s eth0 speed 1000 duplex full

其中,eth0 為要修改的網卡的名稱,speed 為網卡的速度,duplex 為網卡的工作模式。這裡將網卡的速度設置為 1000Mbps,工作模式設置為全雙工模式。完成後,可以使用 ethtool 命令再次查看網卡的配置信息,確認設置已經生效。

補充:ethtool 的詳細用法#

查看網卡信息#

要查看網絡接口設備的信息,可以使用以下命令:

ethtool eth0

其中,eth0 為要查看的網絡接口設備的名稱。該命令將輸出該網絡接口設備的詳細信息,包括驅動程序的信息、速度、工作模式等。

修改網卡速度#

要修改網絡接口設備的速度,可以使用以下命令:

ethtool -s eth0 speed 1000

其中,eth0 為要修改的網絡接口設備的名稱,speed 為要設置的速度值。這裡將網卡的速度設置為 1000Mbps。

修改網卡工作模式#

要修改網絡接口設備的工作模式,可以使用以下命令:

ethtool -s eth0 duplex full

其中,eth0 為要修改的網絡接口設備的名稱,duplex 為要設置的工作模式。這裡將網卡的工作模式設置為全雙工模式。

打開或關閉自協商#

自協商(Auto-Negotiation)是一種自動協商設備速度和雙工模式的技術。要打開或關閉自協商,可以使用以下命令:

ethtool -s eth0 autoneg on/off

其中,eth0 為要修改的網絡接口設備的名稱,autoneg 為要設置的自協商狀態。這裡將自協商設置為打開狀態。

查看網卡統計信息#

要查看網絡接口設備的統計信息,可以使用以下命令:

ethtool -S eth0

其中,eth0 為要查看的網絡接口設備的名稱。該命令將輸出該網絡接口設備的統計信息,包括接收和發送的數據包數量、錯誤數量等。

總結#

本文介紹了如何在 Linux 中查看網卡的配置信息,並且詳細介紹了如何切換網卡的工作模式。通過使用 ethtool 命令,可以輕鬆地實現對網卡工作模式的切換。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。