最後更新: 2018-08-28
介紹
ethtool 是一個顯示網卡資料及修改其設定值的工具來
他的功能與 mii-tool 差不多, 以下是它的幾個主要用法
目錄
- 顯示基本資料
- 檢看統計資料
顯示基本資料
# 它會顯示出 eth0 的重要資訊, 如 Speed, Duplex, Link detected, Auto-negotiation
ethtool eth0
Settings for eth0: ....................................... Speed: 100Mb/s Duplex: Full Port: MII PHYAD: 0 Transceiver: internal Auto-negotiation: on Supports Wake-on: pumbg <-- pumbg=magic packet Wake-on: d <-- d=Disable Current message level: 0x00000033 (51) drv probe ifdown ifup Link detected: yes
檢看統計資料
# 查看網卡總共收過及發過幾多個 package
# 此 cmd 的重點係佢可以得知以往有幾多個 package 有錯
ethtool -S eth0
NIC statistics: tx_packets: 127491258 rx_packets: 97445159 tx_errors: 10 rx_errors: 577324 rx_missed: 0 align_errors: 36143 tx_single_collisions: 0 tx_multi_collisions: 0 unicast: 96824556 broadcast: 559290 multicast: 620603 tx_aborted: 0 tx_underrun: 0
P.S.
只有 reload NIC 的 module 才可以 reset 統計 counter
設定
# 將網卡設定成 100MB/s full duplex 的狀態, 並關閉 Auto-negotiation
# -s changing settings of the specified ethernet device
ethtool -s eth0 speed 100 duplex full autoneg off
ethtool -s DEVNAME \ [ speed 10|100|1000 ] \ [ duplex half|full ] \ [ port tp|aui|bnc|mii|fibre ] \ [ autoneg on|off ] \ [ phyad %d ] \ [ xcvr internal|external ] \ [ wol p|u|m|b|a|g|s|d... ] \ [ sopass %x:%x:%x:%x:%x:%x ] \ [ msglvl %d ]
Driver 資料
# 顯示網卡的 driver, 及使用那條 bus
ethtool -i eth0
driver: r8169 version: 2.3LK-NAPI firmware-version: N/A bus-info: 0000:02:00.0
Re-negotiation
# 重新來多次 Auto-negotiation, 令網卡它們 "洽商" 適當的速度
ethtool -r
TCP Offload
offload 是指網卡代替了 cpu 處理部份網絡流量, 這可以說是網卡的"硬解"來
顯示現時網卡的 offload 設定
ethtool -k
Offload parameters for eth0: rx-checksumming: on tx-checksumming: on scatter-gather: on tcp-segmentation-offload: on udp-fragmentation-offload: off generic-segmentation-offload: off generic-receive-offload: on large-receive-offload: off ntuple-filters: off receive-hashing: off
Offload 能力一覽:
- rx: RX checksumming
- tx: TX checksumming
- sg: scatter-gather
- tso: TCP segmentation offload
- ufo: UDP fragmentation offload
- gro: generic receive offload
- lro: large receive offload
- rxhash: receive hashing offload
開啟網卡的全部 offload 能力
ethtool -K eth0 rx on tx on sg on tso on ufo on gso on
當見到以下 warning, 那表示網卡不支援此 offload 能力
Cannot get device udp large send offload settings: Operation not supported
以上表示沒有 udp fragmentation offload 能力
網卡 default 沒有開啟這些 function
Wake On Lan
SecureON password feature
設置 WOL 的 PW:
ethtool -s eth0 wol g sopass 11:22:33:44:55:66 // PW 的格式 11:22:33:44:55:66
開機設定
[方法1]
在 /etc/rc.local 裡加入
# /sbin/ethtool -s eth0 wol g <-- 行一次即可 /sbin/ethtool -s eth0 speed 100 duplex full autoneg off /sbin/ethtool -K eth0 tx on sg on tso on gro on
[方法2] Centos 7
ifcfg-eth0
ETHTOOL_OPTS="speed 10 duplex full autoneg off"
1G lan - autonegotiation (802.3u)
a) To negotiate that the PHY is capable of supporting 1000BASE-T half duplex or full duplex transmission.
b) To determine the MASTER-SLAVE relationship between the PHYs at each end of the link.
1000BASE-T MASTER PHY is clocked from a local source. The SLAVE PHY uses loop timing where the clock is recovered from the received data stream.
P.S.
在 1G Network 裡一定要用 autonegotiation 的 !!
Doc