在CentOS系统中,无论是配置网络、排查故障还是设置防火墙,首要步骤通常是准确识别网络接口的名称,与早期版本中固定的eth0、eth1等命名方式不同,现代CentOS版本采用了更为稳定和可预测的命名规则,掌握多种获取网卡名称的方法对于系统管理员和开发者而言至关重要,本文将详细介绍几种常用且高效的命令行方法,并通过对比表格和常见问题解答,帮助您全面理解这一过程。

使用 ip 命令查看
ip 命令是 iproute2 软件包的一部分,它取代了陈旧的 ifconfig,是当前Linux系统中用于网络配置和状态查询的首选工具,其语法简洁,输出信息丰富。
要查看所有网络接口的详细信息,可以使用 ip addr 或其缩写形式 ip a。
ip a
执行后,您会看到类似以下的输出:
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
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:5a:7b:8c brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic ens33
       valid_lft 86386sec preferred_lft 86386sec
在此输出中,ens33 就是一个典型的网卡名称。lo 是本地回环接口,通常不用于物理网络通信,通过观察接口前的数字(如2:)和其状态(state UP),可以轻松识别出当前正在活动的物理网卡。
使用 nmcli 命令查看
nmcli 是NetworkManager的命令行工具,提供了强大且易于使用的接口来管理网络连接,它不仅能查看网卡,还能直接进行配置。
使用 nmcli device status 可以列出所有网络设备的简要状态。
nmcli device status
其输出通常以清晰的表格形式呈现,非常直观:
| DEVICE | TYPE | STATE | CONNECTION | 
|---|---|---|---|
| ens33 | ethernet | connected | ens33 | 
| lo | loopback | unmanaged | 
这个表格清晰地显示了设备名(DEVICE)、类型(TYPE)、状态(STATE)和当前连接的配置文件(CONNECTION)。ens33 的状态为 connected,表明这是一个已连接并正常工作的以太网卡。

使用 ifconfig 命令查看
ifconfig 是一个经典的工具,很多经验丰富的管理员依然习惯使用它,但在较新的CentOS版本中,它可能默认未安装,如果系统提示找不到该命令,您可以通过 dnf 或 yum 来安装 net-tools 软件包:
sudo dnf install net-tools
安装完成后,直接运行 ifconfig 即可:
ifconfig
输出结果与 ip addr 类似,同样会列出 ens33、lo 等接口及其IP地址、MAC地址等信息,虽然功能足够,但 ip 命令被认为是更现代、功能更全面的替代品。
直接查阅 /sys 文件系统
Linux内核将硬件信息以文件形式展现在 /sys 虚拟文件系统中,网络接口信息同样保存在此,这是一种非常底层但极为快速的查看方式。
只需列出 /sys/class/net/ 目录下的内容即可:
ls /sys/class/net/
输出结果会直接显示所有网络接口的名称:
ens33  lo
这种方法不依赖任何外部命令,直接从内核获取信息,非常适合在脚本中进行快速判断。
为了更直观地对比这几种方法,下表小编总结了它们的特点:

| 方法 | 命令示例 | 优点 | 注意事项 | 
|---|---|---|---|
ip 命令 | 
ip a | 
功能强大,现代系统的标准工具,信息全面 | 输出信息较详细,新手需稍加学习 | 
nmcli 命令 | 
nmcli device status | 
输出格式化,易于阅读,可与NetworkManager深度集成 | 依赖NetworkManager服务 | 
ifconfig 命令 | 
ifconfig | 
传统工具,为许多老用户所熟悉 | 默认可能未安装,功能不如ip命令 | 
/sys 文件系统 | 
ls /sys/class/net/ | 
极其快速,不依赖命令,适合脚本调用 | 仅提供名称,无其他状态信息 | 
相关问答FAQs
为什么我的CentOS网卡名称不是传统的 eth0,而是像 ens33 或 enp0s3 这样的名字?
解答: 这是由于Systemd和udev引入了“可预测的网络接口命名”机制,旧的 eth0 命名方式在多网卡或设备热插拔时可能导致名称随机变化,造成配置混乱,新的命名规则根据硬件的物理属性(如连接的总线、插槽位置、MAC地址等)来生成一个固定且唯一的名称。en 代表以太网,s33 可能代表PCI插槽33;enp0s3 则代表位于PCI总线0、插槽3的以太网卡,这种机制大大增强了网络配置的稳定性和可预测性。
我如何临时或永久地修改网卡名称?
解答: 修改网卡名称是一项需要谨慎操作的高级任务。
- 临时修改(重启后失效):可以使用 
ip link set命令,将ens33临时改名为eth0:sudo ip link set ens33 down sudo ip link set ens33 name eth0 sudo ip link set eth0 up
这种方式仅对当前运行时有效,系统重启后会恢复原状。
 - 永久修改:这通常涉及修改网络配置文件或内核启动参数,一种常见方法是禁用可预测命名规则,通过编辑 
/etc/default/grub文件,在GRUB_CMDLINE_LINUX变量中添加net.ifnames=0 biosdevname=0,然后重新生成grub配置文件并重启,另一种更现代的方式是通过NetworkManager的配置文件(如/etc/sysconfig/network-scripts/ifcfg-ens33)或nmcli命令进行修改,强烈建议在进行永久修改前备份相关配置,并充分了解其可能带来的影响,因为错误的操作可能导致网络中断。