zoukankan      html  css  js  c++  java
  • Linux命令——ethtool

    参考:9 Linux ethtool Examples to Manipulate Ethernet Card (NIC Card)

    Fun with ethtool

    简介

    ethtool允许你修改Ethernet adapter配置,并且这种修改只适用于physical ethernet adapters,这意味着bond0,tun0和任何其他非物理网络设备将无法与ethtool一起使用。

    注意:大多数Linux内核将以太网设备标记为ethX,其中X是物理以太网接口的#(从0开始)。

    我知道我知道,先从最少使用的东西开始。 但是,嘿,有人可能觉得这很有用,对吗? 在处理内核级别问题时,我可能不得不在10年以上查询驱动程序信息十几次,但有人必须在他们生命中的某个时刻遇到这个问题,让我告诉你,它可能更容易 运行一个命令,而不是通过lsmod挖掘并希望模块正确地拾取驱动程序。

    驱动信息 和 统计数据

    在处理内核级别的问题时,人们往往会使用lsmod来查看相应驱动是否被加载,使用ethtool可以更优雅的解决这个问题。

    -i:Queries the specified network device for associated driver information.

    root@ubuntu:~# ethtool -i ens32
    driver: e1000
    version: 7.3.21-k8-NAPI
    firmware-version: 
    expansion-rom-version: 
    bus-info: 0000:02:00.0
    supports-statistics: yes
    supports-test: yes
    supports-eeprom-access: yes
    supports-register-dump: yes
    supports-priv-flags: no

    -S(大写):Queries the specified network device for NIC- and driver-spe‐cific statistics.

    这个参数可以快速定位 rx/tx问题

    root@ubuntu:~# ethtool -S ens32
    NIC statistics:
         rx_packets: 380
         tx_packets: 386
         rx_bytes: 42819
         tx_bytes: 81789
         rx_broadcast: 0
         tx_broadcast: 0
         rx_multicast: 0
         tx_multicast: 0
         rx_errors: 0
         tx_errors: 0
         tx_dropped: 0
         multicast: 0
         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: 0
         rx_long_length_errors: 0
         rx_short_length_errors: 0
         rx_align_errors: 0
         tx_tcp_seg_good: 1
         tx_tcp_seg_failed: 0
         rx_flow_control_xon: 0
         rx_flow_control_xoff: 0
         tx_flow_control_xon: 0
         tx_flow_control_xoff: 0
         rx_long_byte_count: 42819
         rx_csum_offload_good: 358
         rx_csum_offload_errors: 0
         alloc_rx_buff_failed: 0
         tx_smbus: 0
         rx_smbus: 0
         dropped_smbus: 0

    跟踪网卡

    当一台服务器上有多张网卡,查找具体某一张物理网卡往往十分令人头疼。当然,你可以这么做:从ifconfig中取出MAC地址,将所有电缆插入一个管理型交换机,然后在交换机上将Mac表导出,查看具体Mac指向哪里。 使用ethtool可以更优雅地解决这个问题。

    -p:Initiates adapter-specific action intended to enable an oper‐ator to easily identify the adapter by sight. Typically this involves blinking one or more LEDs on the specific network port.

    ethtool -p ethX [N] 

    其中[N]是闪烁的秒数。 ethtool -p eth0 15使eth0闪烁15秒。此时,太网适配器背面的指示灯闪烁会闪烁。

    测试Ethernet Adapter

    可以针对物理以太网接口运行一些基本测试,测试有两个选项,一个online test(tests nvram and a link test)和一个offline test(register, memory, loopback, interrupt)。 脱机测试很可能在测试期间使主机离线,因此如果你对生产服务器或只能远程访问的计算机运行此操作,请特别注意。

    ethtool -t ethX [offline|online] 
    root@ubuntu:~# ethtool -t ens32 online
    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
    
    root@ubuntu:~# ethtool -t ens32 offline
    The test result is FAIL
    The test extra info:
    Register test  (offline)     0
    Eeprom test    (offline)     0
    Interrupt test (offline)     0
    Loopback test  (offline)     13
    Link test   (on/offline)     0

    一些网卡可能不支持online test 或者 offline test

    改变Ethernet 配置

    ethtool ethX

    检查网卡配置信息

    root@ubuntu:~# ethtool ens32
    Settings for ens32:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        partner advertised link modes:	10baseT/Half 10baseT/Full
                             	        100baseT/Half 100baseT/Full
        Link partner advertised pause frame use: No 
        Link partner advertised auto-negotiation: Yes 
        Speed: 1000Mb/s 
    Duplex: Full
    Port: Twisted Pair
    PHYAD:
    0
    Transceiver: internal
    Auto
    -negotiation: on
    MDI
    -X: off (auto)
    Supports Wake
    -on: d
    Wake
    -on: d
    Current message level:
    0x00000007 (7) drv probe link
    Link detected: yes

    可以得出结论:设备支持TP,最高1000BaseT/Full,自动协商。 Partner(Switch)支持最高100baseT / Full和自动协商。设备的实际设置:100Mb / s,全双工,运行TP,物理地址0,设置为自动协商,启用WoL并检测链路。

    如果我网卡的支持链接模式设置为low(例如10/Half由于某种原因)但交换机支持1000baseT / Full,那么可以使用ethtool -s ethX将我的以太网设置更改为1000baseT / Full。几乎所有你看到的东西:ethtool ethX,可以用ethtool -s ethX改变。在这种情况下,您将使用以下内容:

    ethtool -S eth0 speed 1000 duplex full autoneg on

     -s(小写):Allows changing some or all settings of the specified network device. All following options only apply if -s was specified.

     

  • 相关阅读:
    flume
    Hive的安装
    集群的高级设定
    HDFS命令
    2019-9-25:渗透测试,基础学习,初识Hydra,BP爆破密码
    2019-9-17:渗透测试,基础学习,apache初识,mysql初识等笔记
    2019-9-24:渗透测试,css样式,js基础学习笔记
    2019-9-24:渗透测试,JavaScript数据类型基础学习
    2019-9-23:渗透测试,基础学习,http协议数据包的认识,html css的认识,笔记
    转。http,状态码详解
  • 原文地址:https://www.cnblogs.com/kelamoyujuzhen/p/10116423.html
Copyright © 2011-2022 走看看