在Linux系统中,查看网卡信息是网络配置和故障排查的基础操作,无论是日常运维还是系统管理,掌握多种查看网卡的方法都能帮助我们快速定位问题,本文将详细介绍通过命令行工具、图形界面、配置文件等多种方式查看Linux网卡信息,并解释关键输出含义,最后附上常见问题解答。
命令行工具查看网卡信息
命令行是Linux环境下最常用的操作方式,通过不同命令可以获取网卡的详细状态、配置信息及硬件参数,以下是几种核心命令的使用方法及输出解读。
使用ip
命令(推荐,现代Linux系统默认)
ip
命令是iproute2
工具包的一部分,功能强大且全面,用于查看和管理网络接口、路由、策略路由等,查看网卡信息常用以下子命令:
-
查看所有网卡接口及其状态
执行ip addr
或ip a
,会显示系统中所有网络接口的详细信息,包括接口名称(如eth0
、lo
)、MAC地址、IP地址(IPv4/IPv6)、子网掩码、接口状态(UP/DOWN)等。ip addr
输出示例:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UP 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:1c:23:45:67:89 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::21c:23ff:fe45:6789/64 scope link valid_lft forever preferred_lft forever
关键字段解读:
1: lo
:接口编号和名称(lo
为回环接口,eth0
为以太网网卡)。<BROADCAST,MULTICAST,UP,LOWER_UP>
:接口状态,UP
表示已启用,BROADCAST
支持广播,MULTICAST
支持多播,LOWER_UP
表示物理链路正常。link/ether
:网卡的MAC地址。inet
:IPv4地址及子网掩码(/24
表示255.255.255.0)。inet6
:IPv6地址及前缀长度。
-
查看网卡流量统计
使用ip -s link
可查看网卡的接收(RX)和发送(TX)字节数、包数、错误数等统计信息,用于排查网络流量异常或丢包问题。ip -s link show eth0
使用ifconfig
命令(传统工具,部分系统需安装)
ifconfig
是net-tools
工具包中的命令,在早期Linux系统中广泛使用,但逐渐被ip
命令取代,若系统中未安装,可通过sudo apt install net-tools
(Ubuntu/Debian)或sudo yum install net-tools
(CentOS/RHEL)安装。
- 查看所有网卡接口
ifconfig
输出示例与
ip addr
类似,但格式略有不同,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:1c:23:45:67:89 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
关键字段:
flags
为接口标志位,inet
为IPv4地址,ether
为MAC地址,RX/TX packets
为收发包数。
使用lspci
和lsusb
查看网卡硬件信息
若需了解网卡的硬件型号(如厂商、设备型号),可通过lspci
(PCI设备)或lsusb
(USB网卡)命令查看。
-
查看PCI网卡(如集成网卡或PCIe扩展网卡)
lspci | grep -i ethernet
输出示例:
03:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03)
可通过
lspci -v -s 03:00.0
查看更详细的硬件信息和驱动加载情况。 -
查看USB网卡
lsusb | grep -i ethernet
输出示例:
Bus 001 Device 005: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter
使用ethtool
查看网卡详细参数
ethtool
用于查看和修改网卡链路状态、速率、双工模式、自动协商等参数,需先安装(sudo apt install ethtool
或sudo yum install ethtool
)。
- 查看网卡速率和双工模式
ethtool eth0
输出示例:
Settings for eth0: 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 Advertised pause frame use: No Advertised auto-negotiation: Yes Link partner: Not negotiated Speed: 1000Mb/s Duplex: Full Port: Twisted Pair
关键信息:
Speed
为当前链路速率(如1000Mb/s),Duplex
为双工模式(Full为全双工),Link partner
为对端协商状态。
使用nmcli
查看NetworkManager管理的网卡
在Ubuntu、CentOS等现代发行版中,NetworkManager
是默认的网络管理工具,nmcli
是其命令行接口,可查看和管理网络连接。
- 查看所有网络连接
nmcli connection show
- 查看活动连接的详细信息
nmcli connection show "连接名称" # nmcli connection show "eth0"
输出包含连接类型(
ethernet
)、IP配置方法(manual
/dhcp
)、DNS服务器等。
查看网络接口统计文件
Linux内核会维护网络接口的统计信息,可通过读取/proc/net/dev
文件获取:
cat /proc/net/dev
输出格式简洁,显示每个接口的接收和发送字节数、包数、错误数等,适合快速查看流量统计。
命令行工具对比总结
为方便快速选择合适命令,以下常用查看网卡命令的对比表格:
命令 | 所属工具包 | 适用场景 | 主要功能 |
---|---|---|---|
ip addr |
iproute2 | 查看接口IP、MAC、状态等 | 现代Linux系统首选,信息全面 |
ifconfig |
net-tools | 传统系统查看接口基本信息 | 兼容旧系统,但功能较单一 |
lspci/lsusb |
pciutils/usbutils | 查看网卡硬件型号和厂商 | 定位物理网卡硬件信息 |
ethtool |
ethtool | 查看链路速率、双工模式等参数 | 深入排查网卡链路问题 |
nmcli |
NetworkManager | 查看NetworkManager管理的连接 | 适用于图形化网络管理环境,查看连接配置 |
cat /proc/net/dev |
内核虚拟文件 | 查看接口流量统计 | 轻量级查看收发数据量 |
图形界面查看网卡信息
对于习惯图形界面的用户,Linux桌面环境提供了多种工具查看网卡信息:
- Ubuntu(GNOME桌面):点击右上角网络图标 → “有线连接”或“Wi-Fi” → “设置”,可查看当前IP地址、MAC地址,点击“齿轮”图标可编辑网络配置。
- CentOS/RHEL(GNOME桌面):进入“设置” → “网络”,选择活动连接,点击“齿轮”图标查看IP配置、DNS等信息,或点击“详细信息”查看MAC地址、MTU等。
- 传统工具(如
nm-connection-editor
):在终端执行nm-connection-editor
,弹出图形化网络配置工具,可查看和管理所有网络连接的详细信息。
通过配置文件查看网卡信息
Linux网卡的静态配置通常存储在配置文件中,通过查看文件可了解网卡的固定IP、子网掩码、网关、DNS等设置:
-
RHEL/CentOS系统:配置文件位于
/etc/sysconfig/network-scripts/
,命名规则为ifcfg-接口名
(如ifcfg-eth0
):cat /etc/sysconfig/network-scripts/ifcfg-eth0
关键参数:
BOOTPROTO
(static
/dhcp
表示静态/DHCP配置)、IPADDR
(IPv4地址)、NETMASK
(子网掩码)、GATEWAY
(网关)、DNS1
/DNS2
(DNS服务器)。 -
Ubuntu/Debian系统:
- 旧版(Netplan之前):配置文件为
/etc/network/interfaces
,通过iface eth0 inet static
等配置静态IP。 - 新版(Netplan):配置文件位于
/etc/netplan/
(如01-network-manager-all.yaml
),使用YAML格式定义网络配置:cat /etc/netplan/01-network-manager-all.yaml
- 旧版(Netplan之前):配置文件为
高级排查:结合日志和诊断工具
若网卡出现异常(如无法获取IP、频繁掉线),可结合日志和诊断工具进一步排查:
- 查看内核日志:
dmesg | grep -i eth
,可查看网卡驱动加载、硬件初始化过程中的错误信息。 - 查看NetworkManager日志:
journalctl -u NetworkManager
,定位NetworkManager管理网络时的错误(如DHCP请求失败)。 - 测试链路连通性:使用
ping
(测试网络连通性)、mtr
(结合traceroute和ping,分析网络延迟丢包)、tcpdump
(抓包分析网络数据)等工具辅助排查。
相关问答FAQs
Q1:为什么执行ifconfig
命令时提示“command not found”?
A:ifconfig
属于net-tools
工具包,现代Linux系统(如Ubuntu 18.04+、CentOS 7+)默认不再安装该工具包,可通过以下方式解决:
- Ubuntu/Debian系统:
sudo apt install net-tools
- CentOS/RHEL系统:
sudo yum install net-tools
安装后即可使用ifconfig
命令,但推荐优先使用ip
命令,因其功能更全面且为未来趋势。
Q2:如何查看网卡的实时流量,并监控带宽使用情况?
A:可通过以下工具实现:
iftop
:实时显示各网卡的实时流量、连接数、带宽占用情况,需安装(sudo apt install iftop
或sudo yum install iftop
)。
使用示例:sudo iftop -i eth0
(指定监控eth0
网卡)。nload
:以图形化方式显示网卡的实时入站(RX)和出站(TX)带宽,安装命令:sudo apt install nload
。
使用示例:sudo nload eth0
。ip -s link
:通过ip
命令查看网卡的流量统计,适合轻量级监控,但无法实时刷新,需结合watch
命令实现定时刷新:watch -n 1 "ip -s link show eth0"
。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/27055.html