我正在寻找有关诊断 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