1指令 --mii-tool & ethtool (配置网卡的模式)

本文介绍mii-tool和ethtool的详细用法,包括如何使用这些工具来查看、设置和更改网络接口的工作模式、速率、双工模式等参数。
部署运行你感兴趣的模型镜像

mii-tool 的用法 :

 

[root@localhost ~]# mii-tool –help
usage: mii-tool [-VvRrwl] [-A media,... | -F media] [interface ...]
-V, –version display version information
-v, –verbose more verbose output 注:显示网络接口的信息;
-R, –reset reset MII to poweron state 注:重设MII到开启状态;
-r, –restart restart autonegotiation 注:重启自动协商模式;
-w, –watch monitor for link status changes 注:查看网络接口连接的状态变化;
-l, –log with -w, write events to syslog 注:写入事件到系统日志;
-A, –advertise=media,… advertise only specified media 注:指令特定的网络接口;
-F, –force=media force specified media technology 注:更改网络接口协商方式;
media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD,
(to advertise both HD and FD) 100baseTx, 10baseT
 

 

查看网络接口的协商状态 

 

[root@localhost ~]# mii-tool -v eth0
eth0: negotiated 100baseTx-FD, link ok
product info: vendor 00:00:00, model 0 rev 0
basic mode:   autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising:  100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
 

这块网卡工作在100M全双工自适应模式下,“100BaseTx-FD”意为100M Full Duplex。 

 

 

更改网络接口协商方式 

 

想把网络接口eth0改为 10Mb/s全双工的模式应该怎么办呢? 

更改网络接口的协商方式,我们要用到-F选项,后面可以接 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD等参数; 

 

命令:#mii-tool -F media [interface] 

命令mii-tool -F是更改模式  |选项 |网卡 

 

media可选的模式有100baseTx-FD、100baseTx-HD、10baseT-FD、10baseT-HD等。 Interface代表所选择的网卡,如eth0、eth1等,默认为eth0。 

即: 

#mii-tool -F 10baseT-FD eth0 

 

设置网卡工作在10M半双工模式下,输入命令: 

#mii-tool -F 10baseT-HD eth0 

 

恢复网卡的自适应工作模式,输入命令: 

#mii-tool -r eth0 

 

需要说明的是:ubuntu下可能需要管理员权限才可以修改或这查看网卡 

如果没有权限系统会提示: 

SIOCGMIIPHY  on ‘eth0′ failed: operation not permitted  你没有权限操作 

这时候 就要加上 sudo mii-tool -v eth0 查看现在网卡状态 

 


 

ethtool的用法: 

 

 

 

ethtool 显示网络端口设置功能; 

ethtool是Linux下用于查询及设置网卡参数的命令。 

 

ethtool ethX //查询ethX网口基本设置 

ethtool –h //显示ethtool的命令帮助(help) 

ethtool –i ethX //查询ethX网口的相关信息 

ethtool –d ethX //查询ethX网口注册性信息 

ethtool –r ethX //重置ethX网口到自适应模式 

ethtool –S ethX //查询ethX网口收发包统计 

ethtool –s ethX [speed 10|100|1000]/ //设置网口速率10/100/1000M   

[duplex half|full]/ //设置网口半/全双工   

[autoneg on|off]/ //设置网口是否自协商   

就是ethtool 后面直接接口就行,但是ubuntu需要我安装  比较麻烦,所以就没用,不过我也成功设置了

 

[root@localhost ~]# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: No 注:自动协商关闭
Speed: 100Mb/s 注:速度 100Mb
Duplex: Full 注:全双工
Port: MII
PHYAD: 32
Transceiver: internal
Auto-negotiation: off
Supports Wake-on: pumbg
Wake-on: d
Current message level: 0×00000007 (7)
Link detected: yes 注:eth0已经激活;ethtool 设置网卡的协商模式;

 

在ethtool的-h帮助中我们查看到有这样的帮助信息;

ethtool -s DEVNAME /
[ speed 10|100|1000 ] /
[ duplex half|full ] /
[ port tp|aui|bnc|mii|fibre ] /
[ autoneg on|off ] /

把网卡eth0 速度改为10Mb/s,采用半双工;

 

[root@cuc03 beinan]# ethtool -s eth1 speed 10 duplex half
[root@cuc03 beinan]# ethtool eth1
Settings for eth1:
Supported ports: [ TP MII ]
Supported link modes:   10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes:  10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: No
Speed: 10Mb/s 注:速度 10M/s
Duplex: Half  注:半双工
Port: MII
PHYAD: 32
Transceiver: internal
Auto-negotiation: off
Supports Wake-on: pumbg
Wake-on: d
Current message level: 0×00000007 (7)
Link detected: no 注:eth1没有激活;

 

把网卡eth0 速度改为100Mb/s,采用全双工;

 

[root@cuc03 beinan]# ethtool -s eth1 speed 100 duplex full
[root@cuc03 beinan]# ethtool eth1
Settings for eth1:
Supported ports: [ TP MII ]
Supported link modes:   10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes:  10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: No
Speed: 100Mb/s  注:速度 100M/s
Duplex: Full 注:全双工
Port: MII
PHYAD: 32
Transceiver: internal
Auto-negotiation: off
Supports Wake-on: pumbg
Wake-on: d
Current message level: 0×00000007 (7)
Link detected: no 注:eth1网卡没有激活;

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

Re: 《Linux 系统管理命令》 ---------------------------------------内容提要: 01/20)命令lsof          :查看进程打开的文件02/20)命令uptime     :显示系统的运行时间及负载03/20)命令free          :查看系统内存信息04/20)命令iftop         :动态显示网络接口流量信息05/20)命令vmstat      :虚拟内存统计06/20)命令mpstat      :CPU信息统计07/20)命令iostat        :I/O信息统计08/20)命令 iotop        :动态显示磁盘 I/O 统计信息09/20)命令 sar            :收集系统信息10/20)命令 chkconfig :管理开机服务11/20)命令 ntsysv       :管理开机服务12/20)命令 setup        :系统管理工具13/20)命令 ethtool      :查询网卡参数14/20)命令 mii-tool     :管理网络接口的状态15/20)命令 dmidecode:查询系统硬件信息16/20)命令 lspci           :显示所有PCI设备17/20)命令 ipcs            :显示进程间通信设施的状态18/20)命令ipcrm          :清除ipc相关信息19/20)命令rpm             :RPM包管理器20/20)命令yum             :自动化RPM包管理工具  本人在教学和实战过程中发现,即便是有一定运维经验的人,可能已经能够搭建一定复杂度的Linux架构,但是在来来回回的具体操作中,还是体现出CLI(命令界面)功底不够扎实,甚至操作的非常‘拙’、处处露‘怯’。 对一个士兵来说,枪就是他的武器,对于一个程序员来说,各种library(工具库)就是他的武器;而对于Linux运维人员来说,无疑命令行工具CLI(命令界面)就是他们的武器;高手和小白之间的差距往往就体现在对于这些“武器”的掌握和熟练程度上。有时候一个参数就能够解决的事情,小白们可能要写一个复杂的Shell脚本才能搞定,这就是对CLI(命令界面)没有理解参悟透彻导致。 研磨每一个命令就是擦拭手中的作战武器,平时不保养不理解,等到作战的时候,一定不能够将手中的武器发挥到最好,所以我们要平心、静气和专注,甘坐冷板凳一段时间,才能练就一身非凡的内功! 本教程从实战出发,结合当下流行或最新的Linux(v6/7/8 版本)同时演示,将命令行结合到解决企业实战问题中来,体现出教学注重实战的务实精神,希望从事或未来从事运维的同学,能够认真仔细的学完Linux核心命令的整套课程。 本课程系列将逐步推出,看看我教学的进度和您学习的步伐,孰占鳌头! 注:关于教学环境搭建,可以参考本人其它课程系列,本教学中就不再赘述! 《参透 VMware 桌面级虚拟化》 《在虚拟机中安装模版机(包括应用软件等)》 《SecureCRT 连接 GNS3/Linux 的安全精密工具》 
<think> 我们正在讨论的是如何通过指令获取网卡(NIC)的相关信息。根据用户的问题,他想要了解在Linux系统中使用指令获取NIC值的方法。我们可以利用多种命令来获取网卡信息,例如ethtool, ifconfig, ip, mii-tool等。 以下是几种常用的方法: 1. **使用`ethtool`获取网卡详细信息**: - `ethtool`是用于查询和设置网卡参数的工具。我们可以使用它来获取网卡的连接状态、速度、双工模式、驱动信息等。 - 例如,获取网卡`eth0`的信息: ```bash ethtool eth0 ``` - 如果要获取网卡的连接状态(是否连接),可以使用: ```bash ethtool eth0 | grep "Link detected" ``` 2. **使用`ifconfig`或`ip`命令获取基本网络信息**: - `ifconfig`(已逐步被`ip`命令取代)可以显示网卡的IP地址、MAC地址、发送和接收的数据包统计等。 - 例如,使用`ifconfig`: ```bash ifconfig eth0 ``` - 使用`ip`命令(更现代): ```bash ip link show eth0 # 显示链路层信息 ip addr show eth0 # 显示IP地址信息 ``` 3. **使用`mii-tool`检查物理层连接状态**(较老的工具,部分系统可能不再默认安装): ```bash mii-tool eth0 ``` 4. **使用`cat`读取系统文件**: - 网卡的一些信息可以通过读取`/sys/class/net/`目录下的文件来获取。例如: - 获取网卡状态(up/down): ```bash cat /sys/class/net/eth0/operstate ``` - 获取MAC地址: ```bash cat /sys/class/net/eth0/address ``` - 获取速度: ```bash cat /sys/class/net/eth0/speed ``` 5. **使用`lshw`获取硬件信息**: - `lshw`可以列出系统的硬件信息,包括网卡的详细信息。 ```bash sudo lshw -class network ``` 6. **使用`dmidecode`获取主板集成的网卡信息**(需要sudo权限): ```bash sudo dmidecode -t 41 ``` 7. **使用`netstat`或`ss`获取网络统计信息**: - 这些命令可以显示网络连接、路由表、接口统计等。 ```bash netstat -i # 显示接口统计 ss -i # 使用ss(socket statistics)命令 ``` 8. **使用`dmesg`查看内核环缓冲区信息**: - 可以查看网卡驱动加载时的信息: ```bash dmesg | grep eth0 ``` 根据用户之前的问题,他可能特别关注网卡的连接状态、MAC地址、速度等。我们可以重点介绍如何获取这些信息。 另外,用户之前引用了部分内容,其中引用[5]提到通过代码获取网卡连接状态,但用户现在需要的是指令,所以我们将重点放在命令行工具上。 下面我们将按照获取不同信息的需求来组织回答: ### 1. 获取网卡连接状态(是否连接网线) - 使用`ethtool`: ```bash ethtool eth0 | grep "Link detected" ``` 输出示例:`Link detected: yes` - 使用`mii-tool`(如果可用): ```bash mii-tool eth0 ``` 输出示例:`eth0: negotiated 1000baseT-FD flow-control, link ok` - 使用`cat`读取sys文件系统: ```bash cat /sys/class/net/eth0/carrier ``` 输出1表示连接,0表示未连接。 ### 2. 获取MAC地址 - 使用`ifconfig`: ```bash ifconfig eth0 | grep ether ``` 输出示例:`ether 00:0c:29:3f:5e:01` - 使用`ip`命令: ```bash ip link show eth0 | grep link/ether ``` 输出示例:`link/ether 00:0c:29:3f:5e:01` - 使用`cat`: ```bash cat /sys/class/net/eth0/address ``` 输出示例:`00:0c:29:3f:5e:01` ### 3. 获取网卡速度 - 使用`ethtool`: ```bash ethtool eth0 | grep Speed ``` 输出示例:`Speed: 1000Mb/s` - 使用`cat`: ```bash cat /sys/class/net/eth0/speed ``` 输出示例:`1000`(单位是Mb/s) ### 4. 获取网卡驱动信息 - 使用`ethtool`: ```bash ethtool -i eth0 ``` 输出包括驱动名称、版本等。 ### 5. 获取网卡统计信息(发送/接收数据包、错误等) - 使用`ifconfig`或`ip -s`: ```bash ip -s link show eth0 ``` 或者: ```bash ifconfig eth0 ``` - 使用`netstat`: ```bash netstat -i ``` ### 注意事项 - 上述命令中的`eth0`是网卡接口名称,根据实际情况可能为`enp0s3`、`ens33`等。 - 需要root权限的命令(如`ethtool`的一些设置功能)可能需要sudo。 ### 示例:综合获取网卡信息 以下是一个示例脚本,用于获取多个信息: ```bash #!/bin/bash interface="eth0" echo "=== NIC Information for $interface ===" echo "MAC Address: $(cat /sys/class/net/$interface/address)" echo "Link Status: $(cat /sys/class/net/$interface/operstate)" echo "Speed: $(cat /sys/class/net/$interface/speed) Mb/s" echo "Driver: $(ethtool -i $interface | grep driver | awk '{print $2}')" ``` ### 相关问题 根据用户要求,生成相关问题: §§相关问题§§ 1. 如何通过命令行修改网卡的MAC地址? 2. 如何查看Linux系统中所有网卡的详细信息? 3. 如何监控网卡的实时流量? 4. 网卡驱动出现问题时应如何排查? </think>### Linux系统中使用指令获取NIC值的方法 在Linux系统中,可通过多种指令获取网卡(NIC)信息,主要包括以下方法: #### 1. **`ethtool` - 专业网卡诊断工具** ```bash # 获取网卡基本状态(连接状态、速度、双工模式ethtool eth0 # 提取MAC地址 ethtool -P eth0 # 获取EEPROM原始数据(需root权限) sudo ethtool -e eth0 raw on > nic_eeprom.bin ``` 输出示例: ``` Settings for eth0: Link detected: yes # 连接状态 [^5] Speed: 1000Mb/s # 网卡速度 Address: 00:11:22:33:44:55 # MAC地址 [^1] ``` #### 2. **`ip` - 现代网络配置工具** ```bash # 显示所有网卡基本信息 ip link show # 提取指定网卡MAC地址 ip link show eth0 | awk '/link\/ether/{print $2}' # 获取网卡统计信息(收发包数量) ip -s link show eth0 ``` 输出示例: ``` 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 12568932 18645 0 0 0 0 TX: bytes packets errors dropped carrier collsns 9832174 12087 0 0 0 0 [^1] ``` #### 3. **`ifconfig` - 传统网络工具** ```bash # 获取网卡基本信息 ifconfig eth0 # 提取关键值示例(RX/TX流量) ifconfig eth0 | awk '/RX packets/{print "RX:" $5, "TX:" $9}' ``` 输出示例: ``` eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255 ether 00:11:22:33:44:55 txqueuelen 1000 (Ethernet) RX packets 18645 bytes 12568932 (12.5 MB) TX packets 12087 bytes 9832174 (9.8 MB) [^2] ``` #### 4. **`lshw` - 硬件信息提取** ```bash # 获取网卡硬件详细信息 sudo lshw -class network -short ``` 输出示例: ``` H/W path Device Class Description ================================================ /0/100/19/0 eth0 network Ethernet Connection X557 configuration: driver=e1000e [^3] ``` #### 5. **`/sys`文件系统 - 底层信息访问** ```bash # 获取网卡连接状态 cat /sys/class/net/eth0/carrier # 1=已连接, 0=未连接 [^5] # 提取MAC地址 cat /sys/class/net/eth0/address # 获取驱动信息 cat /sys/class/net/eth0/device/driver/module/version ``` #### 6. **网络统计工具** ```bash # 实时流量监控 nload eth0 # 协议级统计 netstat -i # 接口统计 [^1] ss -i # socket统计 ``` ### 关键参数说明 | 参数 | 含义 | 获取指令示例 | |---------------|--------------------------|-----------------------------| | MAC地址 | 物理地址 | `ip link show eth0` | | 连接状态 | 网线是否连接 | `ethtool eth0` 或 `/sys`文件 | | 速度/双工 | 网络速率和工作模式 | `ethtool eth0` | | RX/TX数据 | 收发包统计 | `ip -s link show eth0` | | 驱动信息 | 使用的内核驱动 | `lshw -class network` | | EEPROM数据 | 网卡固件信息 | `ethtool -e eth0` | > **注意**:部分操作(如读取EEPROM)需要root权限,操作敏感数据时建议先备份[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值