如何测试以太网卡?

如何测试以太网卡?

我有一个 USB->以太网卡,它可能会或可能不会以某种方式损坏。问题是我真的不知道如何测试它。我也有一个普通的以太网端口,所以我可以将一根(已经测试过的)电缆从一个端口连接到另一个端口,但是然后呢?

我可以在一个接口上设置 NAT 并尝试与另一个接口连接,但这似乎有点过分,而且可能会出现其他问题。我想要某种方法来发送原始以太网帧并查看另一端是否收到它。

我看了netcat一点,但它在 TCP/UDP 级别上工作,而似乎我需要在以太网帧级别上工作。

测试此 USB->以太网适配器的最佳方法是什么?

答案1

对于初学者,您可以使用该工具ethtool来运行 NIC 的自检。

手册页摘录
 ethtool -t|--test DEVNAME  Execute adapter self test

例子

$ sudo ethtool -t eth0
The test result is PASS
The test extra info:
Register test  (offline)     0
Eeprom test    (offline)     0
Interrupt test (offline)     0
Loopback test  (offline)     0
Link test   (on/offline)     0

查看 NIC 的统计信息对于进一步诊断问题也可能很有用。

$ sudo ethtool -S eth0
NIC statistics:
     rx_packets: 988097069
     tx_packets: 589028032
     rx_bytes: 1291674232357
     tx_bytes: 116257143322
     rx_broadcast: 210375
     tx_broadcast: 34690
     rx_multicast: 69184
     tx_multicast: 179
     rx_errors: 0
     tx_errors: 0
     tx_dropped: 0
     multicast: 69184
     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: 346104
     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: 56
     rx_flow_control_xoff: 56
     tx_flow_control_xon: 0
     tx_flow_control_xoff: 0
     rx_long_byte_count: 1291674232357
     rx_csum_offload_good: 987406053
     rx_csum_offload_errors: 3730
     rx_header_split: 0
     alloc_rx_buff_failed: 0
     tx_smbus: 0
     rx_smbus: 0
     dropped_smbus: 0
     rx_dma_failed: 0
     tx_dma_failed: 0

任何包含字符串“error”的统计信息都应该为零。如果不是,那么我会追查可能导致这些的原因。

相关内容