最近測試伺服器在ftp及scp方面的網路穩定性,網路老是自動中斷,但是本地串連還在,ping正常機器不通,期間用到一些基礎命令,為方便記錄和擴充知識,順便記錄點相關內容如下:
1、ethtool
Ethtool是Linux下用於查詢及設定網卡參數的命令。
概要:
ethtool ethX //查詢ethX網口基本設定
ethtool –h //顯示ethtool的命令協助(help)
ethtool –i ethX //查詢ethX網口的相關資訊
ethtool –d ethX //查詢ethX網口註冊性資訊
ethtool –r ethX //重設ethX網口到自適應模式
ethtool –S ethX //查詢ethX網口收發包統計
ethtool –s ethX [speed 10|100|1000]\ //設定網口速率10/100/1000M
[duplex half|full]\ //設定網口半/全雙工系統
[autoneg on|off]\ //設定網口是否自協商
[port tp|aui|bnc|mii]\ //設定網口類型
[phyad N]\
[xcvr internal|exteral]\
[wol p|u|m|b|a|g|s|d...]\
[sopass xx:yy:zz:aa:bb:cc]\
[msglvl N]
怎樣使ethtool設定永久儲存在網路裝置中?
解決方案一: ethtool設定可通過/etc/sysconfig/network-scripts/ifcfg-ethX檔案儲存,從而在裝置下次啟動時啟用選項。
例如:ethtool -s eth0 speed 100 duplex full autoneg off 此指令將eth0裝置設定為全雙工系統自適應,速度為100Mbs。
若要eth0啟動時設定這些參數, 修改檔案/etc/sysconfig/network-scripts/ifcfg-eth0 ,添加如下一行: ETHTOOL_OPTS="speed 100 duplex full autoneg off"
解決方案二: 將ethtool設定寫入/etc/rc.d/rc.local之中。
其它進階用法:
-
ethtool -a|--show-pause DEVNAME Show pause options 顯示相應裝置中止選項設定情況
ethtool -A|--pause DEVNAME Set pause options 對相應裝置進行中止選項設定
[ autoneg on|off ]
[ rx on|off ]
[ tx on|off ]
ethtool -c|--show-coalesce DEVNAME Show coalesce options 顯示相應裝置聯合選項設定情況
ethtool -C|--coalesce DEVNAME Set coalesce options 對相應裝置進行聯合選項設定
[adaptive-rx on|off]
[adaptive-tx on|off]
[rx-usecs N]
[rx-frames N]
[rx-usecs-irq N]
[rx-frames-irq N]
[tx-usecs N]
[tx-frames N]
[tx-usecs-irq N]
[tx-frames-irq N]
[stats-block-usecs N]
[pkt-rate-low N]
[rx-usecs-low N]
[rx-frames-low N]
[tx-usecs-low N]
[tx-frames-low N]
[pkt-rate-high N]
[rx-usecs-high N]
[rx-frames-high N]
[tx-usecs-high N]
[tx-frames-high N]
[sample-interval N]
ethtool -g|--show-ring DEVNAME Query RX/TX ring parameters 查詢接收/發送迴環參數
ethtool -G|--set-ring DEVNAME Set RX/TX ring parameters 設定接收/發送迴環參數
[ rx N ]
[ rx-mini N ]
[ rx-jumbo N ]
[ tx N ]
ethtool -k|--show-offload DEVNAME Get protocol offload information 擷取協議卸載資訊
ethtool -K|--offload DEVNAME Set protocol offload 設定協議卸載
[ rx on|off ]
[ tx on|off ]
[ sg on|off ]
[ tso on|off ]
[ ufo on|off ]
[ gso on|off ]
ethtool -i|--driver DEVNAME Show driver information 顯示相應裝置的驅動資訊
ethtool -d|--register-dump DEVNAME Do a register dump 寄存器轉存
ethtool -e|--eeprom-dump DEVNAME Do a EEPROM dump EEPROM轉存
[ raw on|off ]
[ offset N ]
[ length N ]
ethtool -E|--change-eeprom DEVNAME Change bytes in device EEPROM 更改裝置EEPROM中的位元組
[ magic N ]
[ offset N ]
[ value N ]
ethtool -r|--negotiate DEVNAME Restart N-WAY negotation 重啟N路互動
ethtool -p|--identify DEVNAME Show visible port identification (e.g. blinking) 顯示可見的連接埠識別(比如相應連接埠指示燈會亮)
[ TIME-IN-SECONDS ]
ethtool -t|--test DEVNAME Execute adapter self test 執行適配器自我測試
[ online | offline ]
ethtool -S|--statistics DEVNAME Show adapter statistics 顯示適配器的統計資訊
ethtool -h|--help DEVNAME Show this help 顯示協助
-
查詢網路連接埠位置:ethtool -p ethX
-
這個命令多用於管理多網口的伺服器主機,由於背板的網路連接埠數量大,有時候不知道那個物理連接埠對應eth0或其他裝置號,我們就可以使用這個命令來查詢。
用法:ethtool -p eth0
效果:裝置號eth0對應的物理連接埠的兩個指示燈會閃爍
-
修改網路連接埠速率:ethtool -s
-
這個命令多用於手工設定網路速率,一般千兆網卡支援10|100|1000三個速率,單位是Mbps。
用法:ethtool -s eth0 speed 1000 duplex full autoneg off
效果:將裝置號eth0對應的物理連接埠設定為速率為1000Mbps,全雙工系統工作模式,同時關閉自動協商。
-
2、mii-tool
mii-tool(這是Linux下專門設定網卡工作模式的命令)
MII的全稱是Media Independent Interface,字面意思上就是媒體無關的介面,因此它是獨立於具體裝置的,仔細想想標準化的東西都是獨立於具體裝置的。雖然如此,很多乙太網路卡裝置並不支援這些參數的配置,因此當你執行mii-tool的時候,會得到Operation not supported的提示,要不就是沒有使用超級使用者身份,還有就是若介面編號設定超過eth7時,直接使用mii-tool 不加參數,會出現NO MII xxxxxxxxxx interface 之類的提示,是因為超過了預設值,使用協助資訊可以瞭解。
1. 查看網卡的工作模式,輸入命令:
#mii-tool -v
eth0: negotiated 100baseTx-FD, link ok
product info: vendor 00:aa:00, model 56 rev 0
basic mode: autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
從以上資訊中可以看出,這塊網卡工作在100M全雙工系統自適應模式下,“100BaseTx-FD”意為100M Full Duplex。
2. 更改網卡的工作模式,輸入命令:
#mii-tool -F media [interface]
media可選的模式有100baseTx-FD、100baseTx-HD、10baseT-FD、10baseT-HD等。
Interface代表所選擇的網卡,如eth0、eth1等,預設為eth0。
例如,設定網卡工作在10M半雙工模式下,輸入命令:
#mii-tool -F 10baseT-HD eth0
3. 恢複網卡的自適應工作模式,輸入命令:
#mii-tool -r eth0
更詳細的使用方法可以用mii-tool -h來獲得。
註:
mii-tool不支援1000M以上的網卡
正常對於100M以下的網卡都可以用這倆個命令來查看,但是對於100M以上網卡的,mii-tool就會出現問題
mii-tool -v eth0
eth0: negotiated 100baseTx-FD, link ok
product info: vendor 00:aa:00, model 56 rev 0
basic mode: autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
#這裡顯示100M網卡,實際上是1000M的介面
ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: umbg
Wake-on: d
Current message level: 0x00000007 (7)
Link detected: yes
#這裡卻正確的顯示1000M網卡
參考:http://linux-ip.net/html/tools-mii-tool.html#ftn.id2911850
3、nm-tool(NetworkManager Tool)
mii-tool 命令也可以查看相關網路介面的串連情況,包括網路類型,串連狀態,載波情況,ip地址等資訊,相比其它工具較簡潔,資訊明了。
使用方式如下:
root@LOonux:/home/# nm-tool
State: connected (global)
- Device: ttyUSB3 --------------------------------------------------------------
Type: Mobile Broadband (CDMA)
Driver: option1
State: disconnected
Default: no
Capabilities:
- Device: wlan0 ----------------------------------------------------------------
Type: 802.11 WiFi
Driver: ath9k
State: unavailable
Default: no
HW Address: 00:17:C4:EF:F7:FF
Capabilities:
Wireless Properties
WEP Encryption: yes
WPA Encryption: yes
WPA2 Encryption: yes
Wireless Access Points
- Device: eth0 [Wired connection 1] -------------------------------------------
Type: Wired
Driver: r8168
State: connected
Default: yes
HW Address: 00:E0:4C:68:00:01
Capabilities:
Carrier Detect: yes
Speed: 100 Mb/s
Wired Properties
Carrier: on
IPv4 Settings:
Address: 172.16.18.151
Prefix: 16 (255.255.0.0)
Gateway: 172.16.1.254
DNS: 8.8.8.8