ethtool测定Linux服务器上网卡硬件与网口的对应关系

2024-06-20 19:58

本文主要是介绍ethtool测定Linux服务器上网卡硬件与网口的对应关系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 ethtool DEVNAME   查看相应设备名称对应的设备信息

[root@localhost ~]# ifconfig -s
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
br-admin  1500 18082811      0     10 0      15264763      0      0      0 BMRU
br-data   1500  7176151      0 1308514 0         13565      0      0      0 BMRU
br-ex     1500 50351664      0 2448974 0       5958798      0      0      0 BMRU
br-hw     1500  2500060      0      0 0            80      0      0      0 BMRU
enp5d2f0  1500 111414829      0  74953 0      113421858      0      0      0 BMRU
enp5d2f1  1500 59745523      0  74953 0       6854368      0      0      0 BMRU
ens4f0    1500  2631002      0  74948 0       1008306      0      0      0 BMRU
ens4f1    1500  2575348      0  74974 0            74      0      0      0 BMRU
ens8f0    1500        0      0      0 0             0      0      0      0 BMU
ens8f1    1500        0      0      0 0             0      0      0      0 BMU
lo       65536   348959      0      0 0        348959      0      0      0 LRU
virbr0    1500        0      0      0 0             0      0      0      0 BMU
virbr1    1500   590538      0      0 0        753574      0      0      0 BMRU
vnet0     1500   625739      0      0 0        900260      0      0      0 BMRU
vnet1     1500    12949      0      0 0        155950      0      0      0 BMRU
vnet2     1500    38283      0      0 0       2223029      0      0      0 BMRU
[root@localhost ~]# ethtool enp5d2f0
Settings for enp5d2f0:Supported ports: [ TP ]Supported link modes:   10baseT/Half 10baseT/Full100baseT/Half 100baseT/Full1000baseT/FullSupported pause frame use: SymmetricSupports auto-negotiation: YesAdvertised link modes:  10baseT/Half 10baseT/Full100baseT/Half 100baseT/Full1000baseT/FullAdvertised pause frame use: SymmetricAdvertised auto-negotiation: YesSpeed: 1000Mb/sDuplex: FullPort: Twisted PairPHYAD: 1Transceiver: internalAuto-negotiation: onMDI-X: on (auto)Supports Wake-on: pumbgWake-on: gCurrent message level: 0x00000007 (7)drv probe linkLink detected: yes
[root@localhost ~]# ethtool vnet0
Settings for vnet0:Supported ports: [ ]Supported link modes:   Not reportedSupported pause frame use: NoSupports auto-negotiation: NoAdvertised link modes:  Not reportedAdvertised pause frame use: NoAdvertised auto-negotiation: NoSpeed: 10Mb/sDuplex: FullPort: Twisted PairPHYAD: 0Transceiver: internalAuto-negotiation: offMDI-X: UnknownCurrent message level: 0xffffffa1 (-95)drv ifup tx_err tx_queued intr tx_done rx_status pktdata hw wol 0xffff8000Link detected: yes
显示了enp5d2f0的接口类型,连接模式,速率等等信息。
如果是网卡上连接的是网线Supported ports内容就是TP(Twisted Paired),如果是光纤则显示Fiber.

2 ethtool -p DEVNAME   查看相应设备名称对应的设备位置

ethtool -p eth0
回车后与eth0 相对应的网卡接口旁边的指示灯就会闪烁,按下Ctrl+C 结束命令,停止闪烁.

ethtool -p eth0 10
回车后与eth0 相对应的网卡接口旁边的指示灯就会闪烁10秒,之后自动停止闪烁。


ethtool命令详解

用途

显示或修改以太网卡的配置信息。

语法

ethtool [ -a | -c | -g | -i | -d | -k | -r | -S |] ethX

ethtool [-AethX [autoneg on|off] [rx on|off] [tx on|off]

ethtool [-CethX [adaptive-rx on|off] [adaptive-tx on|off] [rx-usecs N] [rx-frames N] [rx-usecs-irq N] [rx-frames-irq N] [tx-usecs N] [tx-frames N] [tx-usecs-irq N] [tx-frames-irq N] [stats-block-usecs N][pkt-rate-low N][rx-usecs-low N] [rx-frames-low N] [tx-usecs-low N] [tx-frames-low N] [pkt-rate-high N] [rx-usecs-high N] [rx-frames-high N] [tx-usecs-high N] [tx-frames-high N] [sample-interval N]

ethtool [-GethX [rx N] [rx-mini N] [rx-jumbo N] [tx N]

ethtool [-eethX [raw on|off] [offset N] [length N]

ethtool [-E] ethX [magic N] [offset N] [value N]

ethtool [-K] ethX [rx on|off] [tx on|off] [sg on|off] [tso on|off]

ethtool [-p] ethX [N]

ethtool [-t] ethX [offline|online]

ethtool [-sethX [speed 10|100|1000] [duplex half|full] [autoneg on|off] [port tp|aui|bnc|mii] [phyad N] [xcvrinternal|external]

[wol p|u|m|b|a|g|s|d...] [sopass xx:yy:zz:aa:bb:cc] [msglvl N]

描述

Ethtool命令用于获取以太网卡的配置信息,或者修改这些配置。

ethX是以太网卡的名称,Linux系统将检测到的第一块以太网卡命名为eth0, 第二块为eth1,…….。

标志
-a 查看网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off
-A 修改网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off
-c display the Coalesce information of the specified ethernet card
-C Change the Coalesce setting of the specified ethernet card
-g Display the rx/tx ring parameter information of the specified ethernet card
-G change the rx/tx ring setting of the specified ethernet card
-i 显示网卡驱动的信息,如驱动的名称、版本等
-d 显示register dump信息, 部分网卡驱动不支持该选项
-e 显示EEPROM dump信息,部分网卡驱动不支持该选项
-E 修改网卡EEPROM byte
-k 显示网卡Offload参数的状态:on 或 off,包括rx-checksumming、tx-checksumming等。
-K 修改网卡Offload参数的状态
-p 用于区别不同ethX对应网卡的物理位置,常用的方法是使网卡port上的led不断的闪;N指示了网卡闪的持续时间,以秒为单位。
-r 如果auto-negotiation模块的状态为on,则restarts auto-negotiation
-S 显示NIC- and driver-specific 的统计参数,如网卡接收/发送的字节数、接收/发送的广播包个数等。
-t 让网卡执行自我检测,有两种模式:offline or online
-s 修改网卡的部分配置,包括网卡速度、单工/全双工模式、mac地址等
示例
  1. 查看机器上网卡的速度:百兆还是千兆,请输入:

ethool eth0

操作完毕后,输出信息中‘Speed:’ 这一项就指示了网卡的速度。

  1. 停止网卡的发送模块TX,请输入:

ethtool -A tx off eth0

操作完毕后,可输入:ethtool -a eth0,查看tx模块是否已被停止。

  1. 查看网卡eth0采用了何种驱动,请输入:

ethtool -i eth0

操作完毕后,显示 driver: bnx2;version: 1.4.30 等信息。

  1. 关闭网卡对收到的数据包的校验功能,请输入:

ethtool -K eth0 rx off

操作完毕后,可输入:ethtool –k eth0,查看校验功能是否已被停止。

  1. 如果机器上安装了两块网卡,那么eth0对应着哪块网卡呢?输入:

ethtool -p eth0 10

操作完毕后,看哪块网卡的led灯在闪,eth0就对应着哪块网卡。

  1. 查看网卡,在接收/发送数据时,有没有出错?请输入:

ethtool –S eth0

  1. 将千兆网卡的速度降为百兆,请输入:

ethtool -s eth0 speed 100

数据来源

Ethtool命令显示的信息来源于网卡驱动层,即TCP/IP协议的链路层。

该命令在Linux内核中实现的逻辑层次为:

最重要的结构体struct ethtool_ops,该结构体成员为用于显示或修改以太网卡配置的一系列函数指针,见下表中的第二列

网卡驱动负责实现(部分)这些函数,并将其封装入ethtool_ops结构体,为网络核心层提供统一的调用接口。因此,不同的网卡驱动会给应用层返回不同的信息。

Ethtool命令选项、struct ethtool_ops成员函数、Ethtool命令显示参数的来源,三者间的对应关系如下表所示。

命令选项 struct ethtool_ops成员函数 Ethtool命令显示参数的来源(以网卡驱动BNX2为例)

-s

get_settingsget_wol

get_msglevel

get_link

set_settings

set_wol

set_msglevel

网卡寄存器中获得网卡速度等信息,可配置
-a-A get_pauseparam set_pauseparam网卡寄存器中获得 Autonegotiate/RX/TX模块的状态:on or off,可配置
-c-C get_coalesceset_coalesce网卡寄存器中获得coalescing参数:TX/RX一个数据包后,推迟发生TX/RX中断的时间(us)/数据包个数—减小该值可以提高网卡的响应时间。

当rx-usecs&rx-frames同时被设为0时,RX中断停止。

当tx-usecs&tx-frames同时被设为0时,TX中断停止。

-g-G get_ringparam set_ringparam当前TX/RX ring的值(从网卡寄存器中读取得到,可配置)外,其它为网卡bnx2自己固定的信息。
-k

-K

get_rx_csumget_tx_csum

get_sg

get_tso

set_rx_csum

set_tx_csum

set_sg

set_tso

显示信息从保存该状态的变量中读取得到,没有对应的寄存器。因此,TX/RX校验等模块一直处于on状态,实际上是无法修改的。
-i get_drvinfo[self_test_count,

get_stats_coun,t

get_regs_len,

get_eeprom_len]

网卡bnx2自己固定的信息,如——————————————————–

driver: bnx2

version: 1.4.30

firmware-version: 1.8.0.5

bus-info: 0000:09:00.0

——————————————————–

-d get_drvinfoget_regs不支持,即bnx2中没有实现函数get_regs
-e-E get_eepromset_eeprom不支持,即bnx2中没有实现函数get_eeprom
-r nway_reset配置网卡MII_BMCR寄存器,重启Auto negotiation模块
-p phys_id配置网卡BNX2_EMAC_LED寄存器,实现LED闪功能
-t self_test通过配置网卡寄存器,逐一测试网卡的硬件模块:registers,memory,loopback,Link stat,interrupt
-S get_ethtool_stats显 示信息来源于网卡驱动中的结构体变量stats_blk。(网卡通过DMA方式,将寄存器BNX2_HC_STATISTICS _ADDR_L和BNX2_HC_STATISTICS_ADDR_H中的数据实时地读取到结构体变量struct statistics_block *stats_blk中。)

—显示的数据都是从网卡寄存器中统计得到的,各项的含义需查询网卡(芯片)手册。

由上可见,ethtool命令用于显示/配置网卡硬件(寄存器)。

参考:http://www.cnblogs.com/xf-linux-arm-java-android/p/3742720.html


这篇关于ethtool测定Linux服务器上网卡硬件与网口的对应关系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1079111

相关文章

linux生产者,消费者问题

pthread_cond_wait() :用于阻塞当前线程,等待别的线程使用pthread_cond_signal()或pthread_cond_broadcast来唤醒它。 pthread_cond_wait() 必须与pthread_mutex 配套使用。pthread_cond_wait()函数一进入wait状态就会自动release mutex。当其他线程通过pthread

Linux 安装、配置Tomcat 的HTTPS

Linux 安装 、配置Tomcat的HTTPS 安装Tomcat 这里选择的是 tomcat 10.X ,需要Java 11及更高版本 Binary Distributions ->Core->选择 tar.gz包 下载、上传到内网服务器 /opt 目录tar -xzf 解压将解压的根目录改名为 tomat-10 并移动到 /opt 下, 形成个人习惯的路径 /opt/tomcat-10

RedHat运维-Linux文本操作基础-AWK进阶

你不用整理,跟着敲一遍,有个印象,然后把它保存到本地,以后要用再去看,如果有了新东西,你自个再添加。这是我参考牛客上的shell编程专项题,只不过换成了问答的方式而已。不用背,就算是我自己亲自敲,我现在好多也记不住。 1. 输出nowcoder.txt文件第5行的内容 2. 输出nowcoder.txt文件第6行的内容 3. 输出nowcoder.txt文件第7行的内容 4. 输出nowcode

【Linux进阶】UNIX体系结构分解——操作系统,内核,shell

1.什么是操作系统? 从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境。我们通常将这种软件称为内核(kerel),因为它相对较小,而且位于环境的核心。  从广义上说,操作系统包括了内核和一些其他软件,这些软件使得计算机能够发挥作用,并使计算机具有自己的特生。这里所说的其他软件包括系统实用程序(system utility)、应用程序、shell以及公用函数库等

2024.6.24 IDEA中文乱码问题(服务器 控制台 TOMcat)实测已解决

1.问题产生原因: 1.文件编码不一致:如果文件的编码方式与IDEA设置的编码方式不一致,就会产生乱码。确保文件和IDEA使用相同的编码,通常是UTF-8。2.IDEA设置问题:检查IDEA的全局编码设置和项目编码设置是否正确。3.终端或控制台编码问题:如果你在终端或控制台看到乱码,可能是终端的编码设置问题。确保终端使用的是支持你的文件的编码方式。 2.解决方案: 1.File -> S

通过SSH隧道实现通过远程服务器上外网

搭建隧道 autossh -M 0 -f -D 1080 -C -N user1@remotehost##验证隧道是否生效,查看1080端口是否启动netstat -tuln | grep 1080## 测试ssh 隧道是否生效curl -x socks5h://127.0.0.1:1080 -I http://www.github.com 将autossh 设置为服务,隧道开机启动

【服务器运维】MySQL数据存储至数据盘

查看磁盘及分区 [root@MySQL tmp]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical)

【服务器运维】CentOS6 minimal 离线安装MySQL5.7

1.准备安装包(版本因人而异,所以下面的命令中版本省略,实际操作中用Tab自动补全就好了) cloog-ppl-0.15.7-1.2.el6.x86_64.rpmcpp-4.4.7-23.el6.x86_64.rpmgcc-4.4.7-23.el6.x86_64.rpmgcc-c++-4.4.7-23.el6.x86_64.rpmglibc-2.12-1.212.el6.x86_64.r

【服务器运维】CentOS7 minimal 离线安装 gcc perl vmware-tools

0. 本机在有网的情况下,下载CentOS镜像 https://www.centos.org/download/ 1. 取出rpm 有的情况可能不需要net-tools,但是如果出现跟ifconfig相关的错误,就把它安装上。另外如果不想升级内核版本的话,就找对应内核版本的rpm版本安装 perl-Time-Local-1.2300-2.el7.noarch.rpmperl-Tim

Windows/macOS/Linux 安装 Redis 和 Redis Desktop Manager 可视化工具

本文所有安装都在macOS High Sierra 10.13.4进行,Windows安装相对容易些,Linux安装与macOS类似,文中会做区分讲解 1. Redis安装 1.下载Redis https://redis.io/download 把下载的源码更名为redis-4.0.9-source,我喜欢跟maven、Tomcat放在一起,就放到/Users/zhan/Documents