当前位置: 首页 > news >正文

【计算机网络】10、ethtool

在这里插入图片描述

文章目录

  • 一、ethtool
    • 1.1 常见操作
      • 1.1.1 展示设备属性
      • 1.1.2 改变网卡属性
        • 1.1.2.1 Auto-negotiation
        • 1.1.2.2 Speed
      • 1.1.3 展示网卡驱动设置
      • 1.1.4 只展示 Auto-negotiation, RX and TX
      • 1.1.5 展示统计
      • 1.1.7 排除网络故障
      • 1.1.8 通过网口的 LED 区分网卡
      • 1.1.9 持久化配置(无需 reboot)

一、ethtool

ethtool is used to query and control network device driver and hardware settings, particularly for wired Ethernet devices.

devname is the name of the network device on which ethtool should operate.

man 文档
参考

1.1 常见操作

1.1.1 展示设备属性

# root@ubuntu:~# ifconfig
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536# ethtool eno1
Settings for eno1:Supported ports: [ TP	 MII ]Supported link modes:   10baseT/Half 10baseT/Full100baseT/Half 100baseT/Full1000baseT/FullSupported pause frame use: Symmetric Receive-onlySupports auto-negotiation: YesSupported FEC modes: Not reportedAdvertised link modes:  10baseT/Half 10baseT/Full100baseT/Half 100baseT/Full1000baseT/FullAdvertised pause frame use: Symmetric Receive-onlyAdvertised auto-negotiation: YesAdvertised FEC modes: Not reportedSpeed: Unknown!Duplex: Unknown! (255)Auto-negotiation: onmaster-slave cfg: preferred slavemaster-slave status: unknownPort: Twisted PairPHYAD: 0Transceiver: externalMDI-X: UnknownSupports Wake-on: pumbgWake-on: dLink detected: no# ethtool docker0
Settings for docker0:Supported ports: [  ]Supported link modes:   Not reportedSupported pause frame use: NoSupports auto-negotiation: NoSupported FEC modes: Not reportedAdvertised link modes:  Not reportedAdvertised pause frame use: NoAdvertised auto-negotiation: NoAdvertised FEC modes: Not reportedSpeed: 10000Mb/sDuplex: Unknown! (255)Auto-negotiation: offPort: OtherPHYAD: 0Transceiver: internalLink detected: yes# ethtool lo
Settings for lo:Link detected: yes

其中全双工、半双工、自动协商的区别如下:

  • Full duplex : Enables sending and receiving of packets at the same time. This mode is used when the ethernet device is connected to a switch(交换机).
  • Half duplex : Enables either sending or receiving of packets at a single point of time. This mode is used when the ethernet device is connected to a hub(集线器).
  • Auto-negotiation : If enabled, the ethernet device itself decides whether to use either full duplex or half duplex based on the network the ethernet device attached to.

1.1.2 改变网卡属性

1.1.2.1 Auto-negotiation

上文展示的 Auto-negotiation 为 true,可通过 -s autoneg 关闭它。

# ifdown eth0eth0      device: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)eth0      configuration: eth-bus-pci-0000:0b:00.0# ethtool -s eth0 autoneg off # -s 指定网卡名称, 设置 autoneg = off# ethtool eno1
Settings for eno1:Supported ports: [ TP	 MII ]Supported link modes:   10baseT/Half 10baseT/Full100baseT/Half 100baseT/Full1000baseT/Full。。。Auto-negotiation: off # 此处信息已变为 offLink detected: down # 此处信息已变为 down# ifup eno1

1.1.2.2 Speed

改变网卡速度,注意不要设置超过网卡的 limited capacity

# ethtool eth0 | grep SpeedSpeed: 1000Mb/s# ethtool -s eth0 speed 100 autoneg off# ethtool eth0 | grep SpeedSpeed: Unknown! (65535) # 注意:如果网卡在 online 时,被改了 speed 则会自动变为 offline,此时需要手动 ifup# ifup eth0eth0      device: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)eth0      configuration: eth-bus-pci-0000:0b:00.0Checking for network time protocol daemon (NTPD):                     running# ethtool eth0 | grep SpeedSpeed: 100Mb/s# 可看到设置后从 1000Mb/s 变为 100Mb/s

可通过 ifconfig 设置 MTU

1.1.3 展示网卡驱动设置

# ethtool  -i eno1
driver: r8169
version: 5.19.1-051901-generic
firmware-version: rtl8168h-2_0.0.2 02/26/15
expansion-rom-version:
bus-info: 0000:59:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no

1.1.4 只展示 Auto-negotiation, RX and TX

# ethtool -a eno1
Pause parameters for eno1:
Autonegotiate:	on
RX:		off
TX:		off# 参数含义如下:
-a --show-pauseQueries the specified Ethernet device for pause parameter information.

1.1.5 展示统计

# ethtool -S eno1
NIC statistics:tx_packets: 6199rx_packets: 16548tx_errors: 0rx_errors: 1rx_missed: 0align_errors: 0tx_single_collisions: 0tx_multi_collisions: 0unicast: 4228broadcast: 10859multicast: 1461tx_aborted: 0tx_underrun: 0

1.1.7 排除网络故障

连接成功后,我们期望 Speed 是明确的值,Duplex 是 Full/Half,Link detection 是 Yes。如果不是(如Speed、Duplex 为 Unknow 时,Link detection 为 No 时),可能交换机或网络设置有问题。

此时可以用 tcpdump 抓包分析。

1.1.8 通过网口的 LED 区分网卡

如果机器有很多网口,设置后,对应的网口即会亮灯,即可区分对应关系

ethtool -p eth0# 参数含义如下:-p --identifyInitiates adapter-specific action intended to enable an operator to easily identify the adapter by sight.  Typically this involves blinking one or more LEDs on the specific network port.启动特定于适配器的操作,以使操作员能够轻松地通过视觉识别适配器。这通常涉及闪烁特定网络端口上的一个或多个LED。[N]   Length of time to perform phys-id, in seconds.

1.1.9 持久化配置(无需 reboot)

通过 ethtool 设置后,reboot 仍会恢复为设置前的状态。但可通过写配置文件的方式来持久化。

  • ubuntu 设置如下:在 /etc/network/interfaces 配置则会持久化。
# vim /etc/network/interfaces
post-up ethtool -s eno1 speed 1000 duplex full autoneg off # 此行应为本文件的最后一行
  • SUSE 设置如下:
    modify the /etc/sysconfig/network/ifcfg-eth-id file and include a new script using POST_UP_SCRIPT variable as shown below. Include the below line as the last line in the corresponding eth1 adpater config file.
# vim /etc/sysconfig/network/ifcfg-eth-id
POST_UP_SCRIPT='eth1'

Then, create a new file scripts/eth1 as shown below under /etc/sysconfig/network directory. Make sure that the script has execute permission and ensure that the ethtool utility is present under /sbin directory.

# cd /etc/sysconfig/network/# vim scripts/eth1
#!/bin/bash
/sbin/ethtool -s duplex full speed 100 autoneg off

相关文章:

【计算机网络】10、ethtool

文章目录 一、ethtool1.1 常见操作1.1.1 展示设备属性1.1.2 改变网卡属性1.1.2.1 Auto-negotiation1.1.2.2 Speed 1.1.3 展示网卡驱动设置1.1.4 只展示 Auto-negotiation, RX and TX1.1.5 展示统计1.1.7 排除网络故障1.1.8 通过网口的 LED 区分网卡1.1.9 持久化配置&#xff08…...

什么是前端工程化?

工程化介绍 什么是前端工程化&#xff1f; 前端工程化是一种思想&#xff0c;而不是某种技术。主要目的是为了提高效率和降低成本&#xff0c;也就是说在开发的过程中可以提高开发效率&#xff0c;减少不必要的重复性工作等。 tip 现实生活举例 建房子谁不会呢&#xff1f;请…...

【深度学习】【三维重建】windows11环境配置tiny-cuda-nn详细教程

【深度学习】【三维重建】windows11环境配置tiny-cuda-nn详细教程 文章目录 【深度学习】【三维重建】windows11环境配置tiny-cuda-nn详细教程前言确定版本对应关系源码编译安装tiny-cuda-nn总结 前言 本人windows11下使用【Instant Neural Surface Reconstruction】算法时需要…...

Matlab 一种自适应搜索半径的特征提取方法

文章目录 一、简介二、实现代码参考资料一、简介 在之前的博客(C++ ID3决策树)中,提到过一种信息熵的概念,其中它表达的大致意思为:香农认为熵是指“当一件事情有多种可能情况时,这件事情发生某种情况的不确定性”,也就是指如果一个事情的不确定性越大,那么这个信息的熵…...

基于opencv的几种图像滤波

一、介绍 盒式滤波、均值滤波、高斯滤波、中值滤波、双边滤波、导向滤波。 boxFilter() blur() GaussianBlur() medianBlur() bilateralFilter() 二、代码 #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> …...

puppeteer代理的搭建和配置

puppeteer代理的搭建和配置 本文深入探讨了Puppeteer在网络爬虫和自动化测试中的重要角色&#xff0c;着重介绍了如何搭建和配置代理服务器&#xff0c;以优化Puppeteer的功能和性能。文章首先介绍了Puppeteer作为一个强大的Headless浏览器自动化工具的优势和应用场景&#xf…...

【简单认识MySQL的MHA高可用配置】

文章目录 一、简介1、概述2、MHA 的组成3&#xff0e;MHA 的特点4、MHA工作原理 二、搭建MHA高可用数据库群集1.主从复制2.MHA配置 三、故障模拟四、故障修复步骤&#xff1a; 一、简介 1、概述 MHA&#xff08;Master High Availability&#xff09;是一套优秀的MySQL高可用…...

【云原生】一文学会Docker存储所有特性

目录 1.Volumes 1.Volumes使用场景 2.持久将资源存放 3. 只读挂载 2.Bind mount Bind mounts使用场景 3.tmpfs mounts使用场景 4.Bind mounts和Volumes行为上的差异 5.docker file将存储内置到镜像中 6.volumes管理 1.查看存储卷 2.删除存储卷 3.查看存储卷的详细信息…...

Android Ble蓝牙App(一)扫描

Ble蓝牙App&#xff08;一&#xff09;扫描 前言正文一、基本配置二、扫描准备三、扫描页面① 增加UI布局② 点击监听③ 扫描处理④ 广播处理 四、权限处理五、扫描结果① 列表适配器② 扫描结果处理③ 接收结果 六、源码 前言 关于低功耗的蓝牙介绍我已经做过很多了&#xff0…...

mac pd安装ubuntu并配置远程连接

背景 一个安静的下午&#xff0c;我又想去折腾点什么了。准备学习一下k8s的&#xff0c;但是没有服务器。把我给折腾的&#xff0c;在抱怨了&#xff1a;为什么M系列芯片的资源怎么这么少。 好在伙伴说&#xff0c;你可以尝试一下ubantu。于是&#xff0c;我只好在我的mac上安…...

1.3 eureka+ribbon,完成服务注册与调用,负载均衡源码追踪

本篇继先前发布的1.2 eureka注册中心&#xff0c;完成服务注册的内容。 目录 环境搭建 采用eurekaribbon的方式&#xff0c;对多个user服务发送请求&#xff0c;并实现负载均衡 负载均衡原理 负载均衡源码追踪 负载均衡策略 如何选择负载均衡策略&#xff1f; 饥饿加载…...

mysql修改字段长度是否锁表

Varchar对于小于等于255字节以内的长度可以使用一个byte 存储。大于255个字节的长度则需要使用2个byte存储 1&#xff0c; 如果是255长度之内的扩展&#xff0c;或者255之外的扩展&#xff0c;则不锁表&#xff0c;采用in-place方式执行 2&#xff0c; 如果从varchar长度从(0,2…...

SpringCloud集成OpenTelemetry的实现

SpringCloud项目做链路追踪&#xff0c;比较常见的会集成SleuthZipKin来完成&#xff0c;但这次的需求要集成开源框架OpenTelemetry&#xff0c;这里整理下实现过程。相关文章&#xff1a; 【SpringCloud集成SleuthZipkin进行链路追踪】 【OpenTelemetry框架Trace部分整理】 …...

Python爬取IP归属地信息及各个地区天气信息

一、实现样式 二、核心点 1、语言&#xff1a;Python、HTML&#xff0c;CSS 2、python web框架 Flask 3、三方库&#xff1a;requests、xpath 4、爬取网站&#xff1a;https://ip138.com/ 5、文档结构 三、代码 ipquery.py import requests from lxml import etree # 请求…...

RedLock + Redisson

目录 2.9 RedLock2.9.1 上述实现的分布式锁在集群状态下失效的原因2.9.2 解决方式-RedLock 2.10 redisson中的分布式锁2.10.0 redisson简介以及简单使用简单使用redisson中的锁Redisson常用配置 2.10.1 Redisson可重入锁实现原理2.10.2 公平锁&#xff08;Fair Lock&#xff09…...

计算机视觉:卷积层的参数量是多少?

本文重点 卷积核的参数量是卷积神经网络中一个重要的概念,它决定了网络的复杂度和计算量。在深度学习中,卷积操作是一种常用的操作,用于提取图像、语音等数据中的特征。卷积神经网络的优势点在于稀疏连接和权值共享,这使得卷积核的参数相较于传统的神经网络要少很多。 举例…...

Docker 容器基础操作

Docker容器基础操作 容器(container)是Docker镜像的运行实例,类似于可执行文件与进程的关系,Docker是容器引擎,相当于系统平台。 容器的生命周期 容器的基础操作(以 tomcat8.0 为例) # 拉取tomcat8.0镜像 [root@tudou tudou]# docker pull tomcat:8.0 8.0: Pulling f…...

【Vue3+Ts+Vite】配置滚动条样式

一、先看效果 二、直接上代码 <template><div class"main-container"><h1 v-for"index in 50" :key"index">这是home页面</h1></div> </template> <style lang"scss" scoped> .main-conta…...

react map使用方法详解

在React中&#xff0c;map()方法是用于数组的常见方法之一&#xff0c;它可以用于处理数组并返回一个新的数组。在React中&#xff0c;经常使用map()方法来遍历数组&#xff0c;生成对应的组件列表或进行数据转换操作。 下面是map()方法在React中的使用方法详解&#xff1a; …...

PoseiSwap:通过 RWA 的全新叙事,反哺 Nautilus Chain 生态

PoseiSwap 是 Nautilus Chain 上的首个 DEX&#xff0c;作为目前行业内模块化区块链叙事的早期奉行者&#xff0c;PoseiSwap 也得到了较高的市场关注。基于 Nautilus Chain&#xff0c;PoseiSwap 打造了一个全新的 Rollup 应用层&#xff0c;并通过零知识证明来建立全新的订单簿…...

开源AI图像工作站落地:Pixel Fashion Atelier在数字藏品中的应用

开源AI图像工作站落地&#xff1a;Pixel Fashion Atelier在数字藏品中的应用 1. 项目概述 Pixel Fashion Atelier&#xff08;像素时装锻造坊&#xff09;是一款基于Stable Diffusion与Anything-v5的开源图像生成工作站。与传统AI工具不同&#xff0c;它采用了复古日系RPG的&…...

Kandinsky-5.0-I2V-Lite-5s惊艳效果展示:古风人物图→衣袖飘动+发带飞扬动态视频

Kandinsky-5.0-I2V-Lite-5s惊艳效果展示&#xff1a;古风人物图→衣袖飘动发带飞扬动态视频 1. 模型效果震撼开场 想象一下&#xff0c;你有一张精美的古风人物插画&#xff0c;画中女子衣袂飘飘、发带轻扬。现在&#xff0c;只需一个简单的操作&#xff0c;就能让这幅静态画…...

千问3.5-27B入门指南:无需GPU知识,30分钟跑通图文理解全流程

千问3.5-27B入门指南&#xff1a;无需GPU知识&#xff0c;30分钟跑通图文理解全流程 你是不是也对那些能“看懂”图片的AI模型感到好奇&#xff1f;想自己动手试试&#xff0c;但一看到“多模态”、“GPU部署”这些词就头疼&#xff1f;别担心&#xff0c;今天这篇文章就是为你…...

Harbor镜像同步到阿里云ACR和华为云SWR的保姆级避坑指南(附实操截图)

Harbor镜像同步到阿里云ACR和华为云SWR的保姆级避坑指南&#xff08;附实操截图&#xff09; 在多云架构成为主流的今天&#xff0c;企业往往需要将容器镜像同步到不同云平台以满足业务部署需求。Harbor作为企业级镜像仓库&#xff0c;其复制功能虽然强大&#xff0c;但在实际对…...

B0505S-2WR3 适配优选 DB2-05S05LS,DC-DC 电源模块参数与场景深度解析

在工业控制、仪器仪表、通信接口等标准化电路设计中&#xff0c;2W 级 5V 转 5V 隔离 DC-DC 模块是高频应用的核心器件。DB2-05S05LS 和 B0505S-2WR3 作为该功率段的主流型号&#xff0c;在电气规格、物理规格与场景适配性上呈现高度契合&#xff0c;为硬件工程师的标准化选型提…...

SPPF中的CSP结构解析

在YOLOv5/v8等目标检测模型中&#xff0c;SPPF 内的 CSP 结构特指 SPPFCSPC 模块或类似变体。它是一种将空间金字塔池化层&#xff08;SPPF&#xff09; 与跨阶段部分网络思想&#xff08;CSPNet&#xff09; 紧密结合的复合模块&#xff0c;旨在更高效地进行多尺度特征融合并提…...

Arduino_AVRSTL:面向AVR单片机的轻量C++ STL子集

1. Arduino_AVRSTL 库深度解析&#xff1a;面向资源受限 AVR 平台的 C 标准库子集移植1.1 项目定位与工程价值Arduino_AVRSTL 是对原始 ArduinoSTL 库的一次关键性平台适配&#xff0c;其核心目标并非完整复刻 ISO/IEC 14882 标准定义的 STL&#xff08;Standard Template Libr…...

AI Agent学习日记 Day3

今天没怎么搞&#xff0c;只做了一点小优化。之前我是用 agent.stream(invoke_input,stream_mode["messages", "updates"],config {"configurable": {"thread_id": "1"}}) 通过mode "messages"来获取并流式输…...

ESP32/ESP8266轻量级二进制RPC库设计与实践

1. 项目概述esp_rpc是一个专为 ESP8266 和 ESP32 平台深度优化的轻量级远程过程调用&#xff08;Remote Procedure Call, RPC&#xff09;库。其设计哲学直指嵌入式资源受限场景的核心矛盾&#xff1a;在极小内存占用&#xff08;ROM/RAM 双敏感&#xff09;与可靠跨设备交互之…...

嵌入式滚动平均滤波库:SimpleSmooth轻量级实现

1. 项目概述 SimpleSmooth 是一个专为嵌入式系统设计的轻量级滚动平均值计算库&#xff0c;其核心目标是为模拟信号采集&#xff08;如 ADC 读数&#xff09;提供低开销、无动态内存分配、零依赖的数字滤波能力。该库并非从零构建&#xff0c;而是对 Arduino 官方示例中经典平…...