在Linux系统中,查看本机网卡信息是网络配置和故障排查的基础操作,Linux提供了多种命令和工具,从基础的网络接口状态到详细的硬件信息,均可通过不同命令获取,以下将详细介绍常用查看网卡的方法,包括命令语法、输出解析及适用场景。

使用ip命令(推荐,现代Linux系统默认支持)
ip命令是iproute2工具包的核心命令,功能全面且信息清晰,是目前查看网络接口的首选工具。
查看所有网络接口基本信息
ip addr # 或简写 ip a
输出解析:
执行后会列出所有网络接口(包括物理网卡、虚拟网卡、回环接口等),每部分包含以下关键字段:
- 接口名:如
eth0、ens33、lo(回环接口),命名规则通常与硬件类型(以太网eth/en)、插槽位置(ens33中的s33表示PCI插槽)相关。 - 状态:
UP(接口启用)、DOWN(接口禁用)、UNKNOWN(未知状态)。 - MAC地址:
link/ether 00:0c:29:1a:2b:3c,网卡的物理地址。 - IP地址:
inet 192.168.1.100/24(IPv4地址)、inet6 fe80::a00:27ff:fe4e:66a1/64(IPv6地址),后缀/24表示子网掩码长度(255.255.255.0)。 - 广播地址:
brd 192.168.1.255(IPv4广播地址)。 - MTU:
mtu 1500,最大传输单元,默认为1500字节。
示例输出:
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: ens33: <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 dynamic ens33
valid_lft 86400sec preferred_lft 86400sec
inet6 fe80::a00:27ff:fe4e:66a1/64 scope link
valid_lft forever preferred_lft forever
查看指定网络接口的详细信息
ip link show <接口名> # 示例:查看ens33接口的链路状态 ip link show ens33
输出重点:显示接口的启用状态(UP/DOWN)、MAC地址、是否启用混杂模式(PROMISC)等,适合排查链路层问题。
使用ifconfig命令(传统工具,需手动安装)
ifconfig是早期Linux网络配置的经典工具,部分系统(如CentOS 7之前)默认安装,但新版本(如Ubuntu 20+、CentOS 8+)需手动安装net-tools工具包。
安装net-tools
# Ubuntu/Debian sudo apt update && sudo apt install net-tools # CentOS/RHEL/Fedora sudo yum install net-tools
查看所有网络接口
ifconfig
输出解析:
与ip addr类似,但字段略有不同:
HWaddr:MAC地址(同ip中的link/ether)。inet addr:IPv4地址(同ip中的inet,但无子网掩码长度,需单独查看Mask字段)。Bcast:广播地址(同ip中的brd)。UP BROADCAST RUNNING MULTICAST:接口状态(RUNNING表示链路已激活)。
示例输出:

ens33: 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(若未安装) sudo apt install pciutils # Ubuntu/Debian sudo yum install pciutils # CentOS/RHEL # 查看所有PCI网卡设备 lspci | grep -i ethernet # 或带厂商/设备ID查看(方便查驱动) lspci -nn | grep -i ethernet
示例输出:
0c:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
-nn参数显示十六进制厂商/设备ID(如8086:1572,Intel Corporation对应8086),可用于匹配驱动型号。
使用lsusb查看USB网卡
若网卡为USB接口(如外接无线网卡),需用lsusb:
# 安装lsusb(若未安装) sudo apt install usbutils # Ubuntu/Debian sudo yum install usbutils # CentOS/RHEL # 查看所有USB网卡设备 lsusb | grep -i ethernet
示例输出:
Bus 001 Device 005: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
查看网卡详细配置与状态
使用ethtool查看网卡速率、双工模式等
ethtool可查看网卡的物理层参数(如速率、双工模式、驱动信息),需安装:
sudo apt install ethtool # Ubuntu/Debian sudo yum install ethtool # CentOS/RHEL # 查看指定网卡的详细配置 sudo ethtool <接口名> # 示例:查看ens33的速率和双工模式 sudo ethtool ens33
输出重点:
Speed: 速率(如1000Mb/s表示千兆网卡)。Duplex: 双工模式(full全双工,half半双工)。Auto-negotiation: 是否启用自协商(on/off)。Driver: 使用的驱动(如e1000e、igb)。Link detected: 是否检测到链路(yes/no),用于排查物理连接问题。
使用nmcli(NetworkManager命令行工具)
nmcli适合管理NetworkManager控制的网络连接,可查看连接配置、IP分配方式(DHCP/静态)等:

# 查看所有网络设备状态 nmcli device status # 查看指定设备的详细信息 nmcli dev show <接口名> # 查看网络连接配置(如ens33对应的连接名) nmcli connection show <连接名>
示例输出(nmcli dev show ens33):
GENERAL.DEVICE: ens33
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:1A:2B:3C
GENERAL.MTU: 1500
GENERAL.STATE: 100 (连接已激活)
GENERAL.CONNECTION: ens33
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
IP4.ADDRESS[1]: 192.168.1.100/24
IP4.GATEWAY[1]: 192.168.1.1
IP4.DNS[1]: 8.8.8.8
IP6.ADDRESS[1]: fe80::a00:27ff:fe4e:66a1/64
查看内核网络接口统计信息
使用cat /proc/net/dev
该文件是内核提供的网络接口原始统计信息,包含接收(RX)和发送(TX)的字节数、包数、错误数等,适合调试网络流量问题:
cat /proc/net/dev
示例输出(节选):
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 12345 123 0 0 0 0 0 0 12345 123 0 0 0 0 0 0
ens33: 1234567 12345 0 0 0 0 0 0 987654 6789 0 0 0 0 0 0
常用命令对比表
| 命令 | 所属工具包 | 主要功能 | 输出信息重点 | 适用场景 |
|---|---|---|---|---|
ip addr |
iproute2 | 查看所有接口IP、MAC、状态 | 接口名、IP地址、子网掩码、MTU | 日常查看接口基本信息 |
ifconfig |
net-tools | 传统接口查看(需安装) | IPv4地址、广播地址、收发包统计 | 旧系统或习惯传统工具的用户 |
lspci/lsusb |
pciutils/usbutils | 查看网卡硬件信息(厂商、型号) | 硬件ID、驱动名称 | 硬件兼容性排查、驱动匹配 |
ethtool |
ethtool | 查看网卡物理层参数(速率、双工) | 链路速率、双工模式、驱动信息 | 物理链路故障排查 |
nmcli |
NetworkManager | 管理网络连接、查看DHCP/静态配置 | 连接状态、DNS、网关、IP分配方式 | NetworkManager环境下的网络管理 |
/proc/net/dev |
内核 | 查看接口收发包统计 | RX/TX字节数、包数、错误数 | 网络流量监控、性能分析 |
相关问答FAQs
Q1: 为什么在终端输入ifconfig提示“command not found”?如何解决?
A1: ifconfig属于net-tools工具包,而现代Linux系统(如Ubuntu 20.04+、CentOS 8+)默认不再预装该工具包,转而推荐使用iproute2中的ip命令,若习惯使用ifconfig,可通过以下方式安装:
- Ubuntu/Debian系统:
sudo apt update && sudo apt install net-tools - CentOS/RHEL系统:
sudo yum install net-tools
安装后即可正常使用ifconfig命令。
Q2: 如何判断Linux系统中的网卡是物理网卡还是虚拟网卡?
A2: 可通过以下方法区分:
- 接口名规律:
- 物理网卡:通常以
eth、ens(如eth0、ens33)、enpXsY(如enp3s0,表示PCI插槽3的设备0)开头。 - 虚拟网卡:常见类型包括Docker虚拟网卡(
veth开头,如veth123456)、KVM虚拟网卡(virbr、vnet开头)、OpenVPN/TUN网卡(tun0、tap0)等。
- 物理网卡:通常以
- 硬件信息检查:
- 物理网卡:
lspci | grep -i ethernet或lsusb | grep -i ethernet会列出硬件信息(如厂商、型号)。 - 虚拟网卡:上述命令无输出,因虚拟网卡无物理硬件对应。
- 物理网卡:
- 驱动信息:
- 物理网卡驱动:如
e1000e(Intel千兆)、igb(Intel万兆)、r8169(Realtek)等。 - 虚拟网卡驱动:如
virtio_net(KVM虚拟化)、tap(虚拟TAP设备)、veth(虚拟以太网对)等。
- 物理网卡驱动:如
通过以上方法可快速识别网卡类型,便于后续网络配置或故障排查。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/34752.html