在CentOS操作系统中,网卡的命名方式随着版本的不同而有所变化,以下是关于CentOS系统中网卡名称的详细解释:
CentOS 6及之前版本
在CentOS 6及更早的版本中,网卡的命名相对简单,通常遵循eth[0123...]
的格式,这种命名方式是基于内核的自动识别和分配机制,其中的数字部分表示网卡的顺序号,第一个被系统识别到的网卡会被命名为eth0
,第二个则为eth1
,以此类推。
CentOS 7及后续版本
从CentOS 7开始,为了提高网络设备的可预测性和一致性,引入了一致网络设备命名(CONSISTENT NETWORK DEVICE NAMING)规范,这一规范支持两种主要的命名方式:biosdevname
和net.ifnames
。
1、biosdevname命名规范:
内嵌网络接口(LOM):旧名称eth[0123...]
,新名称em[1234...][a]
,示例如em1
。
PCI卡网络接口:旧名称eth[0123...]
,新名称pp[b]
,示例如p3p4
。
虚拟功能:旧名称eth[0123...]
,新名称pp_[c]
,示例如p3p4_1
。
2、net.ifnames命名规范:
设备类型包括:en
代表以太网,wl
代表无线局域网(WLAN),ww
代表无线广域网(WWAN)。
设备命名格式为:设备类型 + 设备位置 + 数字,具体如下:
o<index>
:板载设备索引号,示例如eno1
。
s<slot>[f<function>][d<dev_id>]
:热插拔插槽索引号,示例如ens1
。
x<MAC>
:MAC地址,示例如enx78e7d1ea46da
。
p<bus>s<slot>[f<function>][d<dev_id>]
:PCI地理位置,示例如enp2s0
。
p<bus>s<slot>[f<function>][u<port>][…][c<config>][i<interface>]
:USB端口链,示例如enx1c22b0598847
。
系统默认命名规则
在默认情况下,systemd会采用以下策略为接口命名:
1、如果固件或BIOS信息适用且可用,则使用整合了为板载设备提供索引号的固件或BIOS的名称(如eno1
)。
2、如果固件或BIOS信息不可用,但PCI快速热插拔插槽的信息可用,则使用该信息(如ens1
)。
3、如果硬件连接器物理位置信息可用,则使用该信息(如enp2s0
)。
4、默认不使用整合接口MAC地址的名称(如enx78e7d1ea46da
),但用户可选择使用此方案。
5、传统的不可预测的内核命名方案(如eth0
)在其他方法均失败后使用,如果已启用biosdevname
,则会使用该方案。
查看网卡信息和获取IP地址
在CentOS系统中,可以通过多种命令来查看网卡信息和获取IP地址:
查看全部网卡:ls /sys/class/net/
或ifconfig a
或ip a
。
查看虚拟网卡:ls /sys/devices/virtual/net/
。
查看物理网卡:ls /sys/class/net/ | grep v "$(ls /sys/devices/virtual/net/)"
。
获取本机所有IP:ifconfig a |grep inet|grep v 127.0.0.1|grep v inet6|awk '{print $2}'|tr d "addr:"
。
获取物理网卡的IP:ifconfig $(ls /sys/class/net/ | grep v "$(ls /sys/devices/virtual/net/)") |grep inet|grep v 127.0.0.1|grep v inet6|awk '{print $2}'|tr d "addr:"
。
FAQs
问题1:如何修改CentOS 7中的网卡名称?
答:可以通过编辑网卡配置文件和GRUB配置来实现,修改网卡配置文件(如/etc/sysconfig/networkscripts/ifcfgens33
)中的DEVICE和NAME参数为所需的名称(如eth0),然后重命名配置文件(如mv ifcfgens33 ifcfgeth0),编辑GRUB配置文件(如/etc/default/grub
),在GRUB_CMDLINE_LINUX行添加net.ifnames=0 biosdevname=0,并运行grub2mkconfig o /boot/grub2/grub.cfg重新生成GRUB配置,重启系统使更改生效。
问题2:如何查看CentOS系统中的网卡信息?
答:可以使用以下命令之一来查看网卡信息:
ls /sys/class/net/
:列出所有网卡。
ifconfig a
:显示所有网卡的详细信息。
ip a
:显示所有网卡的详细信息(推荐用于替代ifconfig)。
这些命令将显示网卡的名称、IP地址、MAC地址以及网络连接状态等信息。