答案:在CentOS中查看MAC地址可使用ip a、ifconfig或读取/sys/class/net/接口名/address文件。ip a是推荐方法,输出中link/ether后为MAC地址;ifconfig需安装net-tools,显示ether字段;配置文件/etc/sysconfig/network-scripts/ifcfg-接口名中HWADDR或MACADDR项指定静态MAC;虚拟机MAC由Hypervisor分配,前缀如00:0C:29(VMware),可在虚拟机设置中查看或修改。

在CentOS系统中,要查看网卡的MAC地址(即物理地址),最直接、常用的命令是
ip a
或
ifconfig
。这两个命令都能迅速列出系统中所有网络接口的详细信息,其中就包含了设备的硬件地址,也就是我们常说的MAC地址。
解决方案
要查看CentOS系统的网卡MAC地址,你可以根据系统版本和个人习惯选择以下命令:
方法一:使用
ip a
命令(推荐,适用于新版CentOS)
这是现代Linux系统(包括CentOS 7及更高版本)推荐的命令。它提供了更全面、更易读的网络接口信息。
直接在终端输入:
ip a
或者,如果你想看所有接口,包括未激活的:
ip -a link
输出示例中,你会看到每个网络接口(如
eth0
、
ens33
、
enp0s3
或
lo
)的详细信息。在每个接口的第二行,通常会有一项以
link/ether
开头的字段,后面跟着一串12位的十六进制数字,这就是该网卡的MAC地址。
例如:
2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:ab:cd:ef brd ff:ff:ff:ff:ff:ff inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic ens33 valid_lft 1799sec preferred_lft 1799sec
在这个例子中,
ens33
网卡的MAC地址就是
00:0c:29:ab:cd:ef
。
如果你只想查看特定接口的MAC地址,可以结合
grep
进行过滤:
ip a show ens33 | grep link/ether
方法二:使用
ifconfig
命令(适用于旧版CentOS或安装了net-tools包的系统)
ifconfig
是传统Linux系统中查看网络配置的命令。在一些较新的CentOS版本中,
ifconfig
可能默认不安装,需要额外安装
net-tools
包。
直接在终端输入:
ifconfig
输出示例中,每个网络接口(如
eth0
)的第二行,通常会有一个
ether
或
HWaddr
字段,后面跟着的就是MAC地址。
例如:
eth0: flags=4163 mtu 1500 inet 192.168.1.101 netmask 255.255.255.0 broadcast 192.168.1.255 ether 00:50:56:a1:b2:c3 txqueuelen 1000 (Ethernet) RX packets 1234 bytes 56789 (55.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1000 bytes 123456 (120.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
在这个例子中,
eth0
网卡的MAC地址就是
00:50:56:a1:b2:c3
。
如果你只想查看特定接口的MAC地址,可以:
ifconfig eth0 | grep ether
方法三:直接读取文件系统(更底层的方式)
每个网络接口的MAC地址信息也存储在
/sys/class/net/
目录下对应的文件中。
卡拉OK视频制作
卡拉OK视频制作,在几分钟内制作出你的卡拉OK视频
178 查看详情
例如,要查看
ens33
的MAC地址:
cat /sys/class/net/ens33/address
这个命令会直接输出MAC地址,没有其他多余信息。
CentOS中MAC地址有什么用?
MAC地址,全称是媒体访问控制地址,它在网络中扮演着设备“物理身份证”的角色。我个人觉得,理解MAC地址的重要性,就像了解你家门牌号一样,它是网络世界里设备独一无二的物理身份证明,尤其是在处理一些底层网络问题时,它往往是排查的第一步。
具体来说,MAC地址有几个核心用途:
唯一标识设备: 每个网络接口卡(NIC)在生产时就被烧录了一个全球唯一的MAC地址。这是它在局域网(LAN)中被识别的基础。局域网通信: 在同一个局域网内,设备之间通过MAC地址进行通信。例如,ARP(地址解析协议)就是将IP地址解析为MAC地址,以便数据包能够准确地到达目标设备。DHCP服务: DHCP服务器可以根据设备的MAC地址分配固定的IP地址,这对于服务器、打印机等需要稳定IP的设备非常有用。我经常用这个功能来确保我的开发服务器每次启动都能拿到同一个IP,省去了不少配置麻烦。网络访问控制(NAC): 路由器或交换机可以配置基于MAC地址的过滤规则,允许或拒绝特定设备访问网络。这是一种基本的安全措施,虽然容易被伪造,但在一些场景下仍有其价值。故障排查: 当网络出现问题时,通过MAC地址可以追踪数据包的流向,定位是哪个设备出了问题。比如,MAC地址冲突虽然不常见,但一旦发生,会导致网络混乱,这时就需要通过MAC地址来识别并解决。
为什么我的CentOS系统上
ifconfig
命令找不到了?
这确实是一个常见的问题,我记得刚开始接触新版CentOS时,
ifconfig
找不到确实让我愣了一下,后来才发现是系统工具链的更新。
原因在于,较新版本的CentOS(通常从CentOS 7开始,以及RHEL 7/8/9等)已经逐渐淘汰了
net-tools
软件包中包含的
ifconfig
、
route
、
netstat
等命令,转而推荐使用
iproute2
软件包提供的
ip
、
ss
等命令。
iproute2
工具集设计上更现代化,功能更强大,能够处理更复杂的网络配置,并且在IPv6支持方面也做得更好。所以,当你在新版CentOS上尝试使用
ifconfig
时,系统会提示“command not found”。
解决方案:
使用
ip a
命令: 这是最推荐的做法。
ip a
(
ip address
的缩写)是
ifconfig
的现代替代品,它能提供同样甚至更详细的网络接口信息。养成使用
ip
命令的习惯会让你在未来的Linux系统管理中更加得心应手。安装
net-tools
包: 如果你确实习惯了
ifconfig
,或者在某些脚本中需要用到它,你可以手动安装
net-tools
软件包。对于CentOS 7/8:
sudo yum install net-tools
对于CentOS 8/9(使用dnf作为包管理器):
sudo dnf install net-tools
安装完成后,
ifconfig
命令就可以正常使用了。但即便如此,我还是建议多尝试
ip
命令,因为它代表了未来的趋势。
如何通过配置文件查看或确认MAC地址?
有时候,我发现直接看配置文件比运行命令更能理解一个接口的持久化配置,尤其是在排查为什么某个MAC地址总是被设置成某个值时。在CentOS中,网络接口的配置信息通常存储在
/etc/sysconfig/network-scripts/
目录下。每个网络接口都有一个对应的配置文件,命名格式通常是
ifcfg-
加上接口名称,例如
ifcfg-ens33
或
ifcfg-eth0
。
这些配置文件定义了网卡的各种属性,包括是否开机启动、IP地址分配方式等,也可能包含MAC地址的持久化设置。
要查看或确认MAC地址,你可以:
找到对应的配置文件:例如,如果你的网卡名称是
ens33
,那么配置文件就是
/etc/sysconfig/network-scripts/ifcfg-ens33
。
ls /etc/sysconfig/network-scripts/ifcfg-*
这个命令可以列出所有网络接口的配置文件。
查看文件内容:使用
cat
或
less
命令查看文件的内容。
cat /etc/sysconfig/network-scripts/ifcfg-ens33
在文件内容中,你可能会找到一行以
HWADDR=
或
MACADDR=
开头的配置项。这一行指定了该网卡应使用的MAC地址。
例如:
TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="dhcp"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL="no"IPV6_ADDR_GEN_MODE="stable-privacy"NAME="ens33"UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"DEVICE="ens33"ONBOOT="yes"HWADDR="00:0c:29:ab:cd:ef" # 这里就是MAC地址
如果配置文件中明确设置了
HWaddr
或
MACADDR
,那么系统在启动时会尝试将网卡的MAC地址设置为这个值。这在某些特定场景下非常有用,比如当你需要克隆虚拟机或迁移系统时,为了避免MAC地址冲突,或者为了符合某些网络策略,你可能需要手动指定一个MAC地址。如果没有这一项,通常系统会使用网卡硬件自带的MAC地址。
虚拟机环境下查看MAC地址有什么特殊之处?
在虚拟机(VM)环境下查看MAC地址,其实和物理机上大同小异,但有一些背景知识和细节值得注意。在虚拟机里,MAC地址的生成机制也挺有意思的,Hypervisor(虚拟机监控器,如VMware、VirtualBox、KVM等)会给它分配一个,但我们通常也可以手动指定,这在做一些虚拟网络实验时特别有用。
Hypervisor生成: 当你在VMware Workstation、VirtualBox、KVM或ESXi等虚拟化平台上创建一台虚拟机时,Hypervisor会自动为虚拟网卡分配一个MAC地址。这些MAC地址通常遵循一定的规则,例如VMware分配的MAC地址通常以
00:0C:29
开头,VirtualBox则以
08:00:27
开头。这个前缀是厂商的OUI(Organizationally Unique Identifier),用于标识MAC地址的来源。持久性与可配置性: 大多数Hypervisor会确保为每台虚拟机分配的MAC地址是唯一的,并且在虚拟机关闭和重启后保持不变。此外,你通常可以在虚拟机的设置中手动修改这个MAC地址。这在一些需要MAC地址绑定的场景(比如软件授权、网络访问控制)或者为了避免MAC地址冲突时非常有用。与宿主机MAC地址的区别: 虚拟机的MAC地址是其虚拟网卡的,与宿主机(运行虚拟机的物理机)的物理网卡MAC地址是完全独立的。它们在网络中是两个不同的设备。查看方式: 在CentOS虚拟机内部,查看MAC地址的方法与物理机完全相同,即使用
ip a
、
ifconfig
或
cat /sys/class/net/ens33/address
。在Hypervisor层面查看: 除了在虚拟机内部查看,你还可以在Hypervisor的管理界面(如VMware vSphere Client、VirtualBox Manager的虚拟机设置界面)直接看到分配给虚拟机的MAC地址。这在虚拟机无法启动或网络配置出现问题时,是一种非常方便的交叉验证方式。
理解虚拟机MAC地址的这些特性,有助于你在虚拟化环境中进行网络配置、故障排查和安全管理。比如,我曾经遇到过因为克隆虚拟机后没有修改MAC地址导致网络冲突的问题,了解这些机制就能更快地定位和解决。
以上就是CentOS怎么查看网卡MAC_CentOS查看网卡物理地址命令教程的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/349480.html
微信扫一扫
支付宝扫一扫