在Linux系统中,网卡(网络接口卡)是设备与外部网络通信的核心组件,无论是排查网络问题、配置网络服务,还是监控系统状态,准确查看所有网卡信息都是基础操作,Linux提供了多种命令和工具来查看网卡信息,涵盖从基础接口名称、IP地址到硬件属性、驱动状态等不同维度,本文将详细介绍这些方法,并通过实例解析输出结果,帮助用户全面掌握Linux网卡查看技巧。
基础查看命令:快速获取网卡列表与基本信息
ip
命令:现代Linux系统的首选工具
ip
命令是iproute2
包的一部分,功能强大且全面,逐渐取代了传统的ifconfig
命令,通过ip
命令可以查看网卡的接口名称、状态、MAC地址、IP地址等信息。
-
查看所有网卡接口
执行以下命令:ip addr show
或简写为:
ip a
-
输出解析
命令输出会列出所有网卡接口,每个接口包含以下关键信息:- 接口名:如
eth0
、ens33
、lo
(回环接口)等,命名规则与系统内核版本和硬件检测相关(传统命名如eth0
、wlan0
,基于硬件的命名如ens33
)。 - 状态标志:
UP
(接口已启用)、DOWN
(接口未启用)、BROADCAST
(支持广播)、MULTICAST
(支持多播)等。 - MAC地址:
link/ether
后跟的6组16进制数,如00:0c:29:1a:2b:3c
,是网卡的物理地址。 - IP地址:
inet
后跟IPv4地址及子网掩码(如168.1.100/24
),inet6
后跟IPv6地址。 - 统计信息:
RX
(接收)和TX
(发送)的数据包数、字节数、错误数等。
示例输出:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:1a:2b:3c brd ff:ff:ff:ff:ff:ff inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe1a:2b3c/64 scope link valid_lft forever preferred_lft forever 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:8a:7e:3d:5f brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever
eth0
是物理网卡,docker0
是Docker虚拟网卡,lo
是回环接口。 - 接口名:如
ifconfig
命令:传统工具(需安装)
ifconfig
是net-tools
包中的工具,在早期Linux系统中广泛使用,但新发行版(如Ubuntu 20.04+、CentOS 8+)默认未安装,需通过sudo apt install net-tools
(Ubuntu)或sudo yum install net-tools
(CentOS)安装。
-
查看所有网卡
ifconfig -a
参数
-a
会显示所有网卡(包括未激活的),不加参数仅显示已激活的网卡。 -
输出解析
输出结构与ip
命令类似,包含接口名、状态(RUNNING
表示已激活)、HWaddr
(MAC地址)、inet addr
(IPv4地址)、Bcast
(广播地址)、Mask
(子网掩码)等。示例输出:
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:0c:29:1a:2b:3c txqueuelen 1000 (Ethernet) RX packets 12345 bytes 1234567 (1.1 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 6789 bytes 987654 (964.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
硬件信息查看:识别网卡物理属性与驱动状态
lspci
命令:查看PCI网卡硬件信息
lspci
(pciutils
包)用于列出PCI设备,可通过过滤网卡硬件信息(如网卡芯片、厂商ID等)。
-
安装与使用
若未安装,执行sudo apt install pciutils
(Ubuntu)或sudo yum install pciutils
(CentOS)。 -
查看PCI网卡
lspci -nn | grep -i ethernet
参数
-nn
显示数字ID(便于查询),grep -i ethernet
过滤以太网卡。 -
输出解析
输出包含网卡在PCI总线上的位置、厂商ID、设备ID及名称,04:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
可通过
lspci -k
查看驱动信息:lspci -k -s 04:00.0
输出:
04:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03) Subsystem: Dell I210 Gigabit Network Connection Kernel driver in use: igb Kernel modules: igb
lsusb
命令:查看USB网卡硬件信息
对于USB接口的网卡(如无线网卡、USB转以太网适配器),使用lsusb
(usbutils
包)查看硬件信息。
-
安装与使用
未安装时执行sudo apt install usbutils
或sudo yum install usbutils
。 -
查看USB网卡
lsusb | grep -i network
输出示例:
Bus 001 Device 005: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
ethtool
命令:查看网卡详细状态与配置
ethtool
(ethtool
包)可获取网卡的速率、双工模式、驱动版本、流控等详细信息,需root权限运行。
-
查看网卡驱动与版本
sudo ethtool -i eth0
输出:
driver: igb version: 5.4.0-91-generic firmware-version: 0.17-1 expansion-rom-version: bus-info: 04:00.0 supports-statistics: yes supports-test: yes supports-eeprom-access: yes supports-register-dump: yes supports-priv-flags: yes
-
查看网卡速率与双工模式
sudo 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 Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full
网络管理工具:结合系统服务查看网卡信息
nmcli
命令:NetworkManager的CLI工具
在安装了NetworkManager的系统(如Ubuntu桌面版、CentOS 7+)中,nmcli
可查看网卡连接状态、IP配置、DNS等信息。
-
查看所有网卡状态
nmcli device status
输出:
DEVICE TYPE STATE CONNECTION eth0 ethernet connected eth0 docker0 bridge unmanaged -- lo loopback unmanaged --
-
查看网卡详细信息
nmcli device show eth0
输出包含MAC地址、IP地址、网关、DNS等完整配置。
netstat
与ss
命令:查看网络连接与接口统计
netstat
(net-tools
包)和ss
(iproute2
包)可用于查看网卡的连接状态和数据统计。
- 查看所有接口统计信息
netstat -i
或使用
ss
(推荐,性能更好):ss -i
输出包含接口名、MTU、接收/发送数据包数、错误数等。
常用网卡查看命令对比
命令 | 主要用途 | 常用参数 | 输出关键信息 | 适用场景 |
---|---|---|---|---|
ip addr |
查看网卡IP、MAC、状态 | show 、brief 、details |
接口名、状态、MAC、IPv4/IPv6地址 | 日常查看、故障排查 |
ifconfig |
传统网卡查看(需安装) | -a (显示所有)、up/down |
接口名、IPv4、MAC、统计信息 | 兼容旧系统 |
lspci |
查看PCI网卡硬件信息 | -nn (显示数字ID)、-k (驱动) |
厂商、设备名、驱动、PCI地址 | 硬件识别、驱动排查 |
lsusb |
查看USB网卡硬件信息 | -v (详细信息) |
厂商、设备ID、USB接口 | USB网卡硬件识别 |
ethtool |
查看网卡速率、双工、驱动 | -i (驱动)、-s (设置) |
驱动版本、速率、流控、固件版本 | 网卡性能优化、硬件状态检查 |
nmcli |
NetworkManager管理下的网卡 | device status 、connection show |
连接状态、IP配置、DNS | 图形化网络管理系统的命令行操作 |
相关问答FAQs
问题1:为什么使用ip addr
命令查看不到某些网卡?
解答:可能的原因有以下几种:
- 网卡未启用:物理网卡可能因驱动未加载或硬件故障处于
DOWN
状态,可通过ip link set <网卡名> up
手动启用(需确认驱动正常)。 - 驱动未加载:使用
lsmod | grep <驱动名>
检查驱动是否加载,若未加载需执行sudo modprobe <驱动名>
(如modprobe e1000e
)。 - 硬件故障:通过
dmesg | grep -i ethernet
查看内核日志,若提示“device not found”或“timeout”,可能是硬件接触不良或损坏。 - 虚拟网卡未创建:虚拟网卡(如Docker的
veth
、KVM的tap
)需在对应服务启动后才会创建,可检查服务状态(如systemctl status docker
)。
问题2:如何区分物理网卡和虚拟网卡?
解答:可通过以下方法区分:
- 命名规则:物理网卡传统命名以
eth
开头(如eth0
),新系统可能基于硬件信息命名(如ens33
);虚拟网卡命名通常带有特定前缀,如docker0
(Docker网桥)、veth
(Docker容器间虚拟接口)、virbr0
(Libvirt虚拟网络)、tap
(KVM虚拟机网卡)。 - 硬件信息:物理网卡可通过
lspci
或lsusb
查到对应硬件条目,虚拟网卡无PCI/USB设备信息。 - 驱动类型:物理网卡驱动为硬件驱动(如
e1000e
、igb
),虚拟网卡驱动通常为tap
、veth
、bridge
等虚拟化驱动。 - 接口状态:虚拟网卡可能显示为
NO-CARRIER
(无物理连接),如docker0
在无容器运行时通常为DOWN
状态。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/31454.html