我正在尋找有關診斷 Linux 下乙太網路連接問題的建議。我懷疑這是一個硬體問題,但我並不完全確定。它是一個 nVidia 晶片組和乙太網路適配器。
lspci
當我運行並且forcedeth
驅動程式已加載時,該設備會顯示。
我已指派靜態 IP 位址並指定網關(路由器)IP 位址。但是,當我 ping 路由器時,沒有得到任何回應。使用相同的設置,但使用 USB->乙太網路適配器,一切正常。這就是為什麼我認為這是端口的問題。
我是否必須假設這是硬體問題,還是可以執行更多診斷?我對能夠提供有關硬體狀態的更詳細資訊(如果存在的話)的工具特別感興趣。
答案1
在懷疑實際的乙太網路卡之前,我總是先懷疑電纜。他們幾乎從不失敗!為了有條不紊地調試問題,我首先要消除以下問題:
- 乙太網路電纜
- NIC 和交換器上的乙太網路母連接器
- 網路上的另一台裝置使用相同的 IP
一旦上述潛在問題被消除,那麼就轉向 NIC 本身及其軟體/驅動程式/配置。
若要偵錯 NIC,您可以執行下列操作:
- 檢查
dmesg
日誌中有關 NIC 的消息 ifconfig
確認NIC 的配置訊息- 用於
ethtool eth0
確認網卡健康並正常運作
乙太網路工具
這是輸出範例ethtool
:
$ sudo -i ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pg
Wake-on: d
Current message level: 0x000000ff (255)
Link detected: yes
您也可以用來ethtool -S <dev>
獲取有關 NIC 遇到的故障類型的性質的更多資訊:
$ sudo -i ethtool -S eth0
NIC statistics:
tx_bytes: 28770995867
rx_bytes: 48077578307
tx_broadcast: 126301
rx_broadcast: 556519
tx_multicast: 23471
rx_multicast: 208434
tx_unicast: 56635512
rx_unicast: 62288584
tx_mac_pause: 0
rx_mac_pause: 2
collisions: 0
late_collision: 0
aborted: 0
single_collisions: 0
multi_collisions: 0
rx_short: 0
rx_runt: 0
rx_64_byte_packets: 949129
rx_65_to_127_byte_packets: 9301705
rx_128_to_255_byte_packets: 22481955
rx_256_to_511_byte_packets: 433087
rx_512_to_1023_byte_packets: 1755854
rx_1024_to_1518_byte_packets: 28131809
rx_1518_to_max_byte_packets: 0
rx_too_long: 0
rx_fifo_overflow: 0
rx_jabber: 0
rx_fcs_error: 0
tx_64_byte_packets: 806109
tx_65_to_127_byte_packets: 16397830
tx_128_to_255_byte_packets: 20935587
tx_256_to_511_byte_packets: 2783712
tx_512_to_1023_byte_packets: 1635233
tx_1024_to_1518_byte_packets: 14226813
tx_1519_to_max_byte_packets: 0
tx_fifo_underrun: 0