使用ethtool查看Linux系统的网络接口

商人拥有虚拟界面物联网图标网络连接抽象全球
ipopba / Getty Images

ethtool实用程序允许您查看和更改一些网络驱动程序和接口卡设置,特别是对于有线设备。这包括它们的速度,接口是否使用自动协商,以及它是在半双工模式还是全双工模式下运行。Ethtool还提供了一种查看或排除网络接口故障的简单方法。

更有可能,ethtool在您的Linux系统上已经可用。但是,要进行检查,您可以使用以下命令中的一个或两个:

/usr/sbin/ethtool /usr/sbin/ethtool

要了解这个实用程序如何控制设置,请运行如下命令。的- h意思是“帮助”。您可能会发现自己正在查看10页左右的语法,就像这里显示的那样。

ethtool美元- h |更多ethtool version 5.13用途:ethtool[标记]DEVNAME显示标准信息设备ethtool[标记]- s |改改DEVNAME通用选项[速度% d][道% d][双半|全][港口tp | aui | bnc | mii | |纤维da] [mdix汽车| |关闭][autoneg |关闭][% x [/ % x]广告| |关闭模式……[-]] [phyad % d] [xcvr内部|外部][wol % d [/ % d] | b m p u | | | | | g d f s | | |……] [sopass % x: % x x %: % x: x %: % x] [msglvl % d [/ % d] | |关闭类型……[-]] [master-slave preferred-master|preferred-slave|forced-master|forced-slave] ethtool [FLAGS] -a| - Show -pause DEVNAME显示暂停选项ethtool [FLAGS] -a| -pause DEVNAME设置暂停选项[autoneg on|off] [rx on|off] - more -

视图设置

很明显有很多东西ethtool公用事业能为你做些什么。然而,要简单地查看您的网络界面上的设置,输入“ethtool”,后面跟着您的网络界面的名称(例如eth0)。在下面的示例中,我们将查看一个名为enp0s25的网络接口。

$ ethtool enp0s25: Settings for enp0s25: Supported ports: [TP] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Advertised pause frame use: No支持自协商:Yes支持FEC模式:Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Full Advertised pause frame use:No Advertised auto-negotiation: Yes Advertised FEC mode: Not reported Speed: 100Mb/s Duplex: Full auto-negotiation: on Port: Twisted Pair PHYAD: 1 Transceiver: internal MDI-X: on (auto) Current message level: 0x00000007 (7) drv probe link检测到的链路:Yes

注意最后一行中的“yes”告诉您该接口正在工作。输出还显示了支持的链接模式,并且开启了自动协商。注意速度(100Mbps),并且接口是全双工运行的。

你可以使用如下命令检查以太网驱动程序设置:

$ ethtool -i enp0s25 driver: e1000e version: 5.13.9-200.fc34。X86_64 firmware-version: 1.1-2 expansion-rom-version: bus-info: 0000:00:19.0 support -statistics: yes support -test: yes support -eeprom-access: yes support -register-dump: yes support - private -flags: yes

网络接口数据

要查看网络接口统计信息,可以使用如下命令。我将输出放在两列中,以便更容易查看设置。

美元ethtool - s enp0s25 |列NIC统计:tx_single_coll_ok: 0 rx_packets: 455502 tx_multi_coll_ok: 0 tx_packets: 44344 tx_timeout_count: 0 rx_bytes: 79840149 tx_restart_queue: 0 tx_bytes: 4734660 rx_long_length_errors: 0 rx_broadcast: 261026 rx_short_length_errors: 0 tx_broadcast: 35 rx_align_errors: 0 rx_multicast: 154850 tx_tcp_seg_good:165 tx_multicast: 3561 tx_tcp_seg_failed: 0 rx_errors: 0 rx_flow_control_xon: 0 tx_errors: 0 rx_flow_control_xoff: 0 tx_dropped: 0 tx_flow_control_xon: 0多播:154850 tx_flow_control_xoff: 0碰撞:0 rx_csum_offload_good: 289057 rx_length_errors: 0 rx_csum_offload_errors: 0 rx_over_errors: 0 rx_header_split: 0 rx_crc_errors:0 alloc_rx_buff_failed: 0 rx_frame_errors: 0 tx_smbus: 0 rx_no_buffer_count: 0 rx_smbus: 0 rx_missed_errors: 0 dropped_smbus: 0 tx_aborted_errors: 0 rx_dma_failed: 0 tx_carrier_errors: 0 tx_dma_failed: 0 tx_fifo_errors: 0 rx_hwtstamp_cleared: 0 tx_heartbeat_errors: 0 uncorr_ecc_errors: 0 tx_window_errors: 0 corr_ecc_errors: 0 tx_abort_late_coll:0 tx_hwtstamp_timeout: 0 tx_deferred_ok: 0

没有碰撞和错误。这是个好迹象。

要测试网络接口,您需要使用sudo和下面的命令一样- t(测试)的选择。注意接口已经通过了测试。

$ sudo ethtool -t enp0s25测试结果为PASS< = =通过!测试附加信息:注册测试(脱机)0 Eeprom测试(脱机)0中断测试(脱机)0环回测试(脱机)0链路测试(on/offline) 0

注意,这些测试都是在脱机模式下运行的。有在线和离线两种模式,默认为离线。它运行完整的测试集,但可以中断正常操作。在线测试是有限的,不会造成任何中断。如果您使用的是生产系统,请记住这一点。

改变设置

网络接口的变化将要求您使用sudo或者作为根运行。此外,除非您还修改了特定Linux发行版上的配置文件中的设置,否则更改不会在重新引导过程中持久存在。对于一些更改,您还需要引入接口打倒ifdown并以ifup所以你应该在系统控制台工作。

加入网络世界社区有个足球雷竞技app脸谱网LinkedIn对自己最关心的话题发表评论。
相关:

版权©2021Raybet2

SD-WAN买家指南:向供应商(和您自己)提出的关键问题