ethtool – 命令

ethtool

導覽:
    1. 如何查看 Linux 中可用的網卡介面
    2. 如何查看 Linux 中網卡資訊
    3. 如何查看網卡驅動版本以及硬體版本
    4. 如何查看網路使用情況統計
    5. 如何改變網卡速率
    6. 如何改變網卡自動協商
    7. 如何識別網卡

  ethtool 用於查看和修改網路設備(尤其是有線乙太網設備)的驅動參數和硬體設置。你可以根據需要更改乙太網卡的參數,包括自動協商、速度、雙工和區域網喚醒等參數。通過對乙太網卡的配置,你的電腦可以通過網路有效地進行通訊。該工具提供了許多關於接駁到你的 Linux 系統的乙太網設備的資訊

  首先了解下乙太網卡的工作原理:

  • 半雙工:半雙工模式允許設備一次只能發送或接收數據包。
  • 全雙工:全雙工模式允許設備可以同時發送和接收數據包。
  • 自動協商:自動協商是一種機制,允許設備自動選擇最佳網速和工作模式(全雙工或半雙工模式)。
  • 速度:默認情況下,它會使用最大速度,你可以根據自己的需要改變它。
  • 鏈接檢測:鏈接檢測可以顯示網卡的狀態。如果顯示為 no,請嘗試重啟網卡。如果鏈路檢測仍顯示 no,則檢查交換機與系統之間連接的線纜是否有問題。

1. 如何查看 Liunx 中可用的網卡介面

  使用 ip a 或 ifconfig 來查看網卡

[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:e8:e7:7d brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.10/24 brd 192.168.3.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::1e3:3f1:c524:8f87/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

2. 如何查看 Linux 中網卡資訊

在 Linux 系統中,每個網卡(NIC)都被分配了唯一的名稱,如 ethX、enpXXX 等舊的 Linux 發行版使用的是 eth[X] 格式。例如,RHEL 6 和它們的舊版本。

現代的 Linux 發行版使用 enp[XXX]ens[XXX] 格式,例如,大多數現代 Linux 發行版都使用這種格式,包括 RHEL 7、Debian 10、Ubuntu 20.04 LTS

[root@localhost ~]# ethtool ens33
Settings for ens33:
	Supported ports: [ TP ]	# 支援協議
	Supported link modes:   10baseT/Half 10baseT/Full # 支援的鏈路模式
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Supported pause frame use: No	# 是否支援暫停幀使用
	Supports auto-negotiation: Yes	# 是否支援自動協商
	Supported FEC modes: Not reported	# 支援的 FEC 模式
	Advertised link modes:  10baseT/Half 10baseT/Full # 通告模式
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Advertised pause frame use: No	# 是否支援暫停幀使用
	Advertised auto-negotiation: Yes	# 是否支援自動協商
	Advertised FEC modes: Not reported	# 支援的 FEC 模式
	Speed: 1000Mb/s # 當前速率
	Duplex: Full	# 工作模式全雙工
	Port: Twisted Pair # 埠:雙絞線
	PHYAD: 0
	Transceiver: internal # 收發器:內部
	Auto-negotiation: on	# 自動協商:打開
	MDI-X: off (auto)	# MDI-X
	Supports Wake-on: d	# 支援喚醒
	Wake-on: d	# 喚醒
	Current message level: 0x00000007 (7) # 當前消息級別
			       drv probe link	# drv 鏈路探測
	Link detected: yes	# 檢測到鏈接

3. 如何查看網卡驅動版本以及硬體版本

[root@localhost ~]# ethtool -i ens33
driver: e1000	# 驅動
version: 7.3.21-k8-NAPI	# 版本
firmware-version: # 硬體版本
expansion-rom-version: 
bus-info: 0000:02:01.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

4. 如何查看網路使用情況統計

NIC statistics:
     rx_packets: 1000	# 接收數據包
     tx_packets: 370	# 發送數據包
     rx_bytes: 105532 # 接收位元組
     tx_bytes: 53631	# 發送位元組
     rx_broadcast: 0
     tx_broadcast: 0
     rx_multicast: 0
     tx_multicast: 0
     rx_errors: 0
     tx_errors: 0
     tx_dropped: 0
     multicast: 0
     collisions: 0
     rx_length_errors: 0
     rx_over_errors: 0
     rx_crc_errors: 0
     rx_frame_errors: 0
     rx_no_buffer_count: 0
     rx_missed_errors: 0
     tx_aborted_errors: 0
     tx_carrier_errors: 0
     tx_fifo_errors: 0
     tx_heartbeat_errors: 0
     tx_window_errors: 0
     tx_abort_late_coll: 0
     tx_deferred_ok: 0
     tx_single_coll_ok: 0
     tx_multi_coll_ok: 0
     tx_timeout_count: 0
     tx_restart_queue: 0
     rx_long_length_errors: 0
     rx_short_length_errors: 0
     rx_align_errors: 0
     tx_tcp_seg_good: 0
     tx_tcp_seg_failed: 0
     rx_flow_control_xon: 0
     rx_flow_control_xoff: 0
     tx_flow_control_xon: 0
     tx_flow_control_xoff: 0
     rx_long_byte_count: 105532
     rx_csum_offload_good: 854
     rx_csum_offload_errors: 0
     alloc_rx_buff_failed: 0
     tx_smbus: 0
     rx_smbus: 0
     dropped_smbus: 0

5. 如何改變網卡速率

更改完之後需要重啟網卡

[root@localhost ~]# ethtool -s ens33 speed 1000

6. 如何改變網卡自動協商

[root@localhost ~]# ethtool -s ens33 autoneg off/on

7. 如何識別網卡

[root@localhost ~]# ethtool -p ens33

使用過後,網卡燈會閃

Tags: