查看有线网卡
在 linux 中查看有线网卡状态的命令与查看无线网卡的命令类似,但侧重点有所不同。以下是几个最常用和有效的命令:
1. ip link (查看物理连接状态 - 最基础)
这是查看网卡物理层状态最直接的命令,用于快速确认网卡是否被系统识别以及是否被激活(up)。
ip link show # 或者查看指定网卡(通常有线网卡名为 eth0, eno1, ens33 等) ip link show dev eth0
输出示例:
2: eth0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc pfifo_fast state up mode default group default qlen 1000
link/ether 08:00:27:4a:2d:8c brd ff:ff:ff:ff:ff:ff
解读关键信息:
eth0: 你的有线网卡设备名。<broadcast,multicast,up,lower_up>: 这些是标志位,最重要的是:up: 表示网卡已启用(软件层面)。lower_up: 表示检测到物理网线已连接(物理链路层已启动)。这是判断网线是否插好的关键标志!
state up: 同样表示接口状态为启动。link/ether: 后面跟着的是网卡的 mac 地址。
如果网线没插好,你可能会看到:
2: eth0: <no-carrier,broadcast,multicast,up> mtu 1500 qdisc pfifo_fast state down mode default group default qlen 1000
这里的 no-carrier 和 state down 明确表示没有检测到载波信号,即网线未连接或对端设备无响应。
2. ethtool (查看详细物理信息和链路状态 - 专业工具)
ethtool 是查询和控制网络驱动及硬件设置的专业工具,特别适合查看有线网卡的连接速度、双工模式、物理链路状态等详细信息。
# 查看 eth0 网卡的驱动信息、链路状态和速度 ethtool eth0
输出示例(网线已连接):
settings for eth0:
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
supported fec modes: not reported
advertised link modes: 10baset/half 10baset/full
100baset/half 100baset/full
1000baset/full
advertised pause frame use: no
advertised auto-negotiation: yes
advertised fec modes: not reported
speed: 1000mb/s
duplex: full
port: twisted pair
phyad: 0
transceiver: internal
auto-negotiation: on
mdi-x: on (auto)
supports wake-on: d
wake-on: d
current message level: 0x00000007 (7)
drv probe link
link detected: yes
解读最关键的信息:
link detected: yes: 这是最重要的信息! 明确表示物理链路已连通。speed: 1000mb/s: 当前协商的连接速度是千兆。duplex: full: 全双工模式。
如果网线没插,输出末尾会显示:
link detected: no
3. ip addr (查看网络层配置 - ip地址信息)
这个命令用于查看网卡的网络层(第三层) 信息,主要看是否获取到了 ip 地址。
ip addr show # 或者查看指定网卡 ip addr show dev eth0
输出示例(已获取ip地址):
2: eth0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc pfifo_fast state up group default qlen 1000
link/ether 08:00:27:4a:2d:8c brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0
valid_lft 86388sec preferred_lft 86388sec
inet6 fe80::a00:27ff:fe4a:2d8c/64 scope link noprefixroute
valid_lft forever preferred_lft forever
inet行显示获取到的 ipv4 地址 (192.168.1.100)。inet6行显示 ipv6 地址。
如果网卡启用但没有获取到ip地址,输出中则没有 inet 行:
2: eth0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc pfifo_fast state up group default qlen 1000
link/ether 08:00:27:4a:2d:8c brd ff:ff:ff:ff:ff:ff
4. nmcli (networkmanager用户 - 桌面版首选)
如果你的系统使用 networkmanager(绝大多数桌面发行版都用),这个命令非常强大和直观。
# 查看所有网络设备状态 nmcli device status # 查看指定网卡的详细信息 nmcli device show eth0
nmcli device status 输出示例:
device type state connection eth0 ethernet connected wired connection 1 wlan0 wifi disconnected -- lo loopback unmanaged --
state列清楚显示了连接状态:connected(已连接),disconnected(未连接),unavailable(不可用,可能被禁用)。
总结与故障排查流程
根据你的需求,选择不同的命令:
| 你想知道什么? | 推荐命令 | 期望的结果 |
|---|---|---|
| 网线物理上插好了吗? | ip link show dev eth0 | 输出中包含 lower_up |
| 网卡被系统识别并启用了吗? | ip link show dev eth0 | 输出中包含 state up |
| 驱动和物理链路真的通了吗? | ethtool eth0 | 输出末尾显示 link detected: yes |
| 获取到ip地址了吗? | ip addr show dev eth0 | 输出中包含 inet 行并有ip地址 |
| 快速查看所有网卡总览 | nmcli device status | state 列为 connected |
典型故障排查流程:
- 第一步:用
ip link看网卡是否是up状态且有无lower_up。 - 第二步:如果状态不对,用
ethtool确认物理链路link detected是否为yes。 - 第三步:如果物理链路正常,用
ip addr检查是否获得了ip地址。如果没有,可能是dhcp问题。 - 第四步:始终可以使用
nmcli来获得一个集成的、用户友好的视图。
查看无线网卡

在 linux 中查看无线网卡信息是一个系统性的过程,涉及多个命令
核心命令概览
| 你想了解什么? | 推荐命令 | 作用 |
|---|---|---|
| 网卡是否被识别? | lspci / lsusb | 从硬件层面检查内核是否识别了网卡 |
| 基本连接状态和信号强度? | iwconfig | 快速、直观地查看基本信息(传统) |
| 详细的连接状态和信号? | iw dev wlan0 link | 现代、准确的方式查看连接详情 |
| 扫描周围的wifi网络? | sudo iw dev wlan0 scan | 发现所有可用的无线网络 |
| ip地址和网络配置? | ip addr show dev wlan0 | 查看网络层(ip地址)信息 |
| 图形化/桌面环境管理? | nmcli / nmtui | networkmanager用户的首选管理工具 |
1. 首先,确认无线网卡设备名
在开始之前,需要知道无线网卡在系统中的设备名称。通常以 wlan0, wlp3s0 等形式出现。
ip link show
查找带有 broadcast,multicast 标志且名称以 w 开头的设备(如 wlan0, wlx...)。如果网卡已启用,状态会是 up。
也可以使用以下命令快速列出所有网络接口:
ls /sys/class/net/
假设无线网卡设备名是 wlan0,后续命令都将以此为例。
2. 检查无线网卡硬件是否被识别
在查看状态前,先确认系统是否识别了你的无线网卡硬件。
对于pcie接口的网卡(大部分台式机、笔记本内置网卡):
lspci | grep -i network lspci | grep -i wireless
对于usb接口的无线网卡(usb wifi适配器):
lsusb
查看输出列表,寻找类似 network controller, wireless, 802.11 等关键词。
3. 查看无线连接状态和信号强度
a) 使用 iwconfig (传统,但直观)
iwconfig wlan0
输出关键解读:
essid:"your-wifi-name"→ 连接的wifi名称。access point: mac-address→ 连接的路由器mac地址。frequency:2.437 ghz→ 连接的信道频率。link quality=70/70→ 链路质量,值越高越好。signal level=-67 dbm→ 信号强度。这是最重要的指标之一:30 dbm到50 dbm: 极佳信号50 dbm到60 dbm: 良好信号60 dbm到70 dbm: 一般信号< -80 dbm: 信号很差,可能不稳定
b) 使用 iw (现代,推荐)
这是 iwconfig 的现代替代品,功能更强大。
查看连接状态:
iw dev wlan0 link
输出结果清晰明了,直接显示 connected、ssid 和 signal: -67 dbm。
4. 扫描周围的wifi网络(需要root权限)
这是无线网卡特有的操作,用于发现可用的网络。
sudo iw dev wlan0 scan | grep -e "ssid|signal|freq"
这条命令会过滤出每个网络的名称(ssid)、信号强度(signal)和频率(freq/频道)。
如果你想看更简洁的列表,可以尝试:
sudo iw dev wlan0 scan | grep "ssid:" | sort | uniq
或者使用 nmcli(如果已安装):
nmcli device wifi list
5. 查看ip地址等网络配置
无线连接成功后,你需要获取ip地址才能上网。使用以下命令查看:
ip addr show dev wlan0
查找以 inet 开头的行,后面跟着的就是你的ipv4地址(例如 inet 192.168.1.105/24)。
6. 使用networkmanager命令行工具 (nmcli)
如果你的系统使用networkmanager(绝大多数桌面版linux都用),nmcli 是最强大的综合管理工具。
查看所有网络设备状态:
nmcli device status
输出中的 state 列会清晰显示是 connected(已连接)、disconnected(未连接)还是 unavailable(不可用)。
查看当前连接的wifi详细信息:
nmcli connection show --active
查看wifi信号强度:
nmcli -f in-use,ssid,bars,signal device wifi list
bars 会以图形化(****)的形式显示信号强度,非常直观。
7. 启用/禁用无线网卡
有时需要重启无线接口来解决问题。
禁用网卡:
sudo ip link set wlan0 down
启用网卡:
sudo ip link set wlan0 up
使用 rfkill 检查是否被硬件/软件阻塞:
如果网卡无法启用,检查是否被锁定了。
rfkill list
如果显示 soft blocked: yes,可以用以下命令解锁:
rfkill unblock wifi
实战排查流程
- 第一步:
ip link确认网卡存在且状态不是down。 - 第二步:
rfkill list确认网卡未被阻塞。 - 第三步:
sudo iw dev wlan0 scan确认网卡能正常扫描到wifi信号。 - 第四步: 使用
nmcli或iwconfig连接网络。 - 第五步:
iw dev wlan0 link或iwconfig wlan0确认连接成功和信号强度。 - 第六步:
ip addr show dev wlan0确认已获取ip地址。
通过这些命令,你可以全面掌握linux下无线网卡的所有状态信息。
ethtool命令
核心概念与作用
- 功能定位:
ethtool用于管理第1层(物理层) 和 第2层(数据链路层) 的参数。它不处理ip地址(第3层),那是ip命令的领域。 - 权限要求:大部分查询命令普通用户可执行,但所有更改设置的命令都需要
root权限(使用sudo)。 - 命令结构:
ethtool [options] device_name(如ethtool eth0)
一、信息查询命令(最常用)
1. 查看网卡概览信息 (ethtool device)
这是最基础且最常用的命令,提供网卡状态的概览。
ethtool eth0
输出示例及解读:
settings for eth0:
supported ports: [ tp ] # 支持的端口类型: tp (twisted pair-rj45), fibre, etc.
supported link modes: 10baset/half 10baset/full # 支持的链路模式
100baset/half 100baset/full
1000baset/full
supported pause frame use: no # 是否支持流量控制暂停帧
supports auto-negotiation: yes # 是否支持自动协商
supported fec modes: not reported # 前向纠错模式支持
advertised link modes: 10baset/half 10baset/full # 向对端宣告的能力
100baset/half 100baset/full
1000baset/full
advertised pause frame use: no # 宣告的暂停帧使用能力
advertised auto-negotiation: yes # 宣告是否开启自动协商
advertised fec modes: not reported
speed: 1000mb/s # 【关键】当前链接速度
duplex: full # 【关键】双工模式: full (全双工) or half (半双工)
port: twisted pair # 当前使用端口类型
phyad: 0
transceiver: internal
auto-negotiation: on # 【关键】自动协商是否开启
mdi-x: on (auto) # 网线交叉/直通自适应
supports wake-on: d # 支持的远程唤醒功能
wake-on: d # 当前远程唤醒设置
current message level: 0x00000007 (7) # 驱动日志级别
drv probe link
link detected: yes # 【最关键】物理链路是否连通 (yes/no)
故障排查首要关注点:
link detected: yes:物理链路是否正常。如果是no,说明网线没插好、对端设备没开机或网线/端口故障。speed: 1000mb/s和duplex: full:速度和工作模式是否正确。如果速度显示为10mb/s或100mb/s,或者双工模式为half,可能表示自动协商失败或强制设置错误。
2. 查看驱动和固件信息 (ethtool -i device)
此命令显示网卡使用的驱动模块、固件版本和总线信息,对于判断驱动是否兼容或需要更新非常有用。
ethtool -i eth0
输出示例:
driver: e1000e # 使用的驱动模块名称 version: 5.15.0-60-generic # 驱动版本 firmware-version: 1.5-2 # 网卡固件版本 bus-info: 0000:00:1f.6 # 网卡的pci总线地址 supports-statistics: yes # 是否支持统计信息 supports-test: yes # 是否支持自检 supports-eeprom-access: yes supports-register-dump: yes supports-priv-flags: no
3. 查看统计信息 (ethtool -s device)
显示网卡详细的流量统计和错误计数,是排查网络丢包、错误等高级问题的利器。
ethtool -s eth0
输出示例(部分):
nic statistics:
rx_packets: 12489561 # 接收到的总数据包数
tx_packets: 8921563 # 发送的总数据包数
rx_bytes: 17483214567 # 接收到的总字节数
tx_bytes: 10247893211 # 发送的总字节数
rx_errors: 0 # 【关键】接收错误计数
tx_errors: 0 # 【关键】发送错误计数
rx_dropped: 0 # 【关键】内核丢弃的接收包数
tx_dropped: 0 # 【关键】内核丢弃的发送包数
multicast: 12561 # 接收到的组播包数
collisions: 0 # 冲突检测次数 (半双工模式下重要)
rx_length_errors: 0
rx_over_errors: 0 # 接收溢出错误
rx_crc_errors: 0 # 【关键】crc校验错误 (通常意味着物理层问题,如网线质量差)
rx_frame_errors: 0
rx_fifo_errors: 0
rx_missed_errors: 0 # 由于fifo满而丢弃的包数
... (更多统计项,因驱动而异)
关键点:如果 rx_errors, tx_errors, rx_dropped 等计数器在持续快速增长,表明网络存在严重问题。
4. 查看卸载功能状态 (ethtool -k device)
现代网卡通常支持卸载(offload) 功能,将一些本应由cpu处理的网络任务(如校验和计算、tcp分段)交给网卡硬件处理,以降低cpu占用率提升性能。此命令用于查看这些功能的开关状态。
ethtool -k eth0
输出示例:
features for eth0: rx-checksumming: on # 接收校验和卸载 tx-checksumming: on # 发送校验和卸载 tx-checksum-ipv4: on tx-checksum-ipv6: on scatter-gather: on # 分散/聚集 (sg) io,提升效率 tx-scatter-gather: on tx-scatter-gather-fraglist: off tcp-segmentation-offload: on # 【重要】tcp分段卸载 (tso) tx-tcp-segmentation: on tx-tcp6-segmentation: on udp-fragmentation-offload: off generic-receive-offload: on # 【重要】通用接收卸载 (gro) large-receive-offload: off rx-vlan-offload: on # vlan处理卸载 tx-vlan-offload: on ...
建议:在虚拟机或高性能网络场景中,如果遇到网络性能问题,可以尝试调整这些设置。通常保持默认的 on 状态即可获得最佳性能。
二、配置控制命令(需要root权限)
1. 修改卸载功能设置 (ethtool -k device feature on|off)
用于开启或关闭特定的卸载功能。
# 关闭 tso (用于排查某些网络故障) sudo ethtool -k eth0 tso off # 开启 gro sudo ethtool -k eth0 gro on # 一次性修改多个设置 sudo ethtool -k eth0 tso off gso off
2. 强制设置速度、双工模式和自动协商 (ethtool -s device)
这是解决自动协商失败问题的终极手段。谨慎使用,强制设置可能导致链路中断或性能下降。
命令格式:sudo ethtool -s [device] speed [10|100|1000] duplex [half|full] autoneg [on|off]
# 强制设置为千兆全双工,并关闭自动协商 sudo ethtool -s eth0 speed 1000 duplex full autoneg off # 强制设置为百兆半双工 sudo ethtool -s eth0 speed 100 duplex half autoneg off # 恢复自动协商 (最推荐的方式) sudo ethtool -s eth0 autoneg on
最佳实践:除非你明确知道对端设备(如某些老式交换机)需要强制设置,否则始终优先使用 autoneg on。
3. 识别网卡(让网卡led灯闪烁)(ethtool -p device)
在物理服务器上,如果你有多块网卡,很难确定 eth0 对应的是哪个物理端口。这个命令可以让对应网卡的led指示灯闪烁一段时间,方便物理定位。
# 让 eth0 对应的网卡灯闪烁10秒 sudo ethtool -p eth0 10
三、高级诊断命令
1. 读取eeprom内容 (ethtool -e device)
读取网卡上eeprom(存储mac地址、厂商信息等)的原始数据。通常用于高级调试或克隆mac地址。
# 以16进制格式输出 sudo ethtool -e eth0 # 以原始字节格式输出 sudo ethtool -e eth0 raw on
2. 执行网卡自检 (ethtool -t device)
让网卡进行内部自检。不是所有网卡都支持此功能。
sudo ethtool -t eth0
实战故障排查流程
- 物理链路不通?
ethtool eth0 | grep "link detected"-> 如果是no,检查网线、交换机、对端设备。
- 速度/双工模式不对?
ethtool eth0 | grep -e "speed|duplex"-> 如果不是预期值(如千兆全双工),尝试sudo ethtool -s eth0 autoneg on强制重新协商。最后手段才是强制设置。
- 网络丢包或性能差?
ethtool -s eth0 | grep -i error-> 查看错误计数器是否在增长。ethtool -k eth0-> 检查卸载功能是否正常开启。- 持续运行
watch -d ethtool -s eth0观察哪些计数器变化最快。
- 驱动问题?
ethtool -i eth0-> 查看驱动和固件版本,与官方推荐版本对比。
总之,ethtool 是深入linux网络栈底层的“手术刀”,提供了无可替代的详细硬件视图和控制能力。掌握它是成为linux网络专家的关键一步。
iw命令
iw 是 linux 系统中用于管理和配置无线网络接口的现代命令行工具,属于 iproute2 工具集的一部分。它替代了旧的 iwconfig 和 iwlist 命令,支持更现代的无线功能(如 802.11ac/n、wpa3 等)
1. 基本语法
iw [options] <command> [args]
- 常用选项:
-debug:启用调试输出。-version:显示版本信息。
2. 常用子命令及功能
2.1 查看无线设备信息
列出所有无线设备(物理层和接口):
iw dev
输出示例:
phy#0
interface wlan0
ifindex 3
type managed
查看具体网卡详细信息:
iw dev wlan0 info
2.2 扫描附近的 wi-fi 网络
sudo iw dev wlan0 scan | grep -e "ssid|freq|signal"
- 关键字段:
ssid:网络名称。freq:频率(mhz)。signal:信号强度(dbm)。wpa/wpa2:加密类型。
2.3 连接/断开 wi-fi
连接到开放网络(无密码):
sudo iw dev wlan0 connect "mywifi"
断开当前连接:
sudo iw dev wlan0 disconnect
2.4 管理无线接口模式
查看当前模式:
iw dev wlan0 get type
切换模式(如 ap 模式):
sudo iw dev wlan0 set type __ap
2.5 监控信号强度
sudo iw dev wlan0 link
输出示例:
connected to aa:bb:cc:dd:ee:ff (on wlan0)
ssid: mywifi
freq: 5180
rx: 1000 bytes
tx: 500 bytes
signal: -50 dbm
3. 高级功能
3.1 创建虚拟接口(vap)
sudo iw phy phy0 interface add vap0 type managed
3.2 设置发射功率(dbm)
sudo iw dev wlan0 set txpower fixed 20
3.3 查看支持的无线功能
iw list
关键信息:
supported interface modes:支持的接口类型(如 ap、monitor)。band 1/2:支持的频段(2.4ghz/5ghz)。ht/vht/he:支持的协议(802.11n/ac/ax)。
3.4 启用监控模式(抓包用)
sudo iw dev wlan0 set monitor none
4. 实际示例
4.1 查找最强信号的 wi-fi
sudo iw dev wlan0 scan | awk -f '[: ]' '/ssid/{ssid=$2} /signal/{print ssid, $2"dbm"}' | sort -k2 -n
4.2 检查当前连接的频段
iw dev wlan0 info | grep "channel"
5. 常见问题
q1: iw 和 iwconfig 的区别?
iw支持现代无线标准(如 802.11ac/ax),而iwconfig仅支持旧协议(如 802.11a/b/g)。iw需要内核无线扩展支持(nl80211驱动),部分老硬件可能不兼容。
q2: 如何安装 iw?
大多数 linux 发行版已预装,若缺失可通过包管理器安装:
sudo apt install iw # debian/ubuntu sudo yum install iw # centos/rhel
q3: 为什么 scan 命令无输出?
- 可能原因:
- 网卡被禁用:
rfkill unblock wifi。 - 需 root 权限:加
sudo。 - 驱动不支持:检查
dmesg | grep wifi。
- 网卡被禁用:
总结
iw 是 linux 无线管理的核心工具,适合:
- 调试无线连接问题。
- 配置高级模式(如监控、ap)。
- 获取详细的网络和硬件信息。
建议结合 ip、nmcli 等工具使用,以全面管理网络。
以上就是linux查看有线网卡和无线网卡的方法详解的详细内容,更多关于linux查看有线和无线网卡的资料请关注代码网其它相关文章!
发表评论