如何查看Linux网卡的MAC地址?

Linux系统中,MAC地址(Media Access Control Address)是网卡的物理地址,由48位二进制数组成,通常以十六进制格式表示(如00:1A:2B:3C:4D:5E),用于在网络中唯一标识网卡设备,查看MAC地址是网络配置、故障排查或安全认证时的常见需求,本文将详细介绍多种查看Linux网卡MAC地址的方法,涵盖命令行工具和图形界面操作,并针对不同场景提供实用技巧。

如何查看linux的网卡mac地址

命令行工具查看MAC地址

命令行是Linux系统管理的核心方式,通过特定命令可快速、精准地获取MAC地址信息,以下是常用命令的详细用法及示例:

使用ifconfig命令(需安装net-tools包)

ifconfig是传统的网络配置工具,可显示或临时配置网卡的IP地址、MAC地址等信息,部分现代Linux发行版(如Ubuntu 20.04+、CentOS 8+)默认未安装该工具,需先通过包管理器安装(如sudo apt install net-toolssudo yum install net-tools)。

基本用法
直接输入ifconfigifconfig -a-a表示显示所有网卡,包括未激活的),输出结果中ether字段即为MAC地址。

示例输出

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::a00:27ff:fe4e:66a1  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:4e:66:a1  txqueuelen 1000  (Ethernet)
        RX packets 1234  bytes 123456 (123.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 567  bytes 78901 (77.0 KiB)
        TX errors 0  dropped 0  overruns 0  carrier 0  collisions 0

解读ether 08:00:27:4e:66:a1即为网卡eth0的MAC地址。

使用ip命令(推荐,现代Linux默认支持)

ip命令是iproute2包的核心工具,功能比ifconfig更强大,是现代Linux系统查看网络信息的首选,无需额外安装,直接通过ip命令即可操作。

基本用法

  • 查看所有网卡信息:ip addr show 或简写 ip a
  • 查看指定网卡信息:ip addr show <网卡名>(如ip addr show eth0

示例输出

如何查看linux的网卡mac地址

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:4e:66:a1 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::a00:27ff:fe4e:66a1/64 scope link 
       valid_lft forever preferred_lft forever

解读link/ether 08:00:27:4e:66:a1即为MAC地址,其中link/ether表示链路层的以太网地址。

使用nmcli命令(NetworkManager工具)

若系统使用NetworkManager管理网络(如Ubuntu、Fedora等桌面版),可通过nmcli命令查看MAC地址,该工具适合脚本化操作或NetworkManager场景。

基本用法

  • 查看所有设备信息:nmcli device status
  • 查看指定设备详细信息:nmcli device show <网卡名>(如nmcli device show eth0

示例输出

GENERAL.DEVICE:                         eth0
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:4e:66:a1
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     eth0-connection
...

解读GENERAL.HWADDR字段即为MAC地址。

使用ethtool命令(查看网卡详细参数)

ethtool可查看网卡的链路状态、MAC地址、速率等详细信息,需先安装(sudo apt install ethtoolsudo yum install ethtool)。

基本用法
ethtool -P <网卡名>-P显示永久MAC地址)或ethtool <网卡名>(查看完整信息)

示例输出

如何查看linux的网卡mac地址

Permanent address: 08:00:27:4e:66:a1
Link detected: yes

解读Permanent address即为网卡的永久MAC地址(通常与当前MAC地址一致,除非临时修改)。

直接读取网卡地址文件(底层方法)

Linux系统中,网卡的MAC地址信息存储在/sys/class/net/目录下的对应网卡文件中,可通过cat命令直接读取,适合脚本或自动化场景。

基本用法
cat /sys/class/net/<网卡名>/address
cat /sys/class/net/eth0/address,输出结果为08:00:27:4e:66:a1(无冒号时可通过sed 's/../&:/g; s/:$//'格式化)。

图形界面查看MAC地址

对于不熟悉命令行的用户,可通过Linux桌面环境的图形界面查看MAC地址,不同桌面环境操作路径略有差异:

GNOME桌面(如Ubuntu、Fedora)

  • 步骤
    1. 点击右上角“设置”图标(齿轮状),进入“设置”界面;
    2. 选择“网络”选项,点击当前连接的网络(如有线或无线);
    3. 在展开的页面中找到“硬件信息”或“设备详情”,即可看到MAC地址(显示为“物理地址”或“MAC地址”)。

KDE Plasma桌面(如openSUSE、Kubuntu)

  • 步骤
    1. 打开“系统设置”,进入“连接”或“网络”模块;
    2. 选择当前活动的网络连接(如“有线连接1”),点击“编辑”;
    3. 在“身份验证”或“IPv4/IPv6”选项卡中,可查看MAC地址(标注为“MAC地址”)。

XFCE/LXDE桌面(如Xubuntu、Lubuntu)

  • 步骤
    1. 右键点击任务栏网络图标,选择“网络设置”或“连接信息”;
    2. 在弹出的窗口中,切换到“硬件”或“详细信息”标签页,即可显示MAC地址。

不同场景下的注意事项

  1. 多网卡环境:若系统有多个网卡(如eth0、wlan0、ens33等),需指定网卡名称查看,避免混淆,可通过ip linkls /sys/class/net/查看所有网卡名。
  2. 虚拟机MAC地址:虚拟机(如VMware、VirtualBox)的MAC地址通常由虚拟化平台生成,可能以特定前缀开头(如VMware为00:0C:29、00:50:56,VirtualBox为08:00:27)。
  3. 临时修改MAC地址:若临时修改了MAC地址(通过ip link set eth0 address XX:XX:XX:XX:XX:XX),查看的是当前临时地址;永久地址需通过ethtool -P或网卡硬件信息确认。

常用命令对比

命令 适用场景 需root权限 输出特点
ifconfig 传统系统,需net-tools支持 显示所有网络信息,ether字段标识MAC
ip addr 现代Linux系统,推荐使用 简洁,link/ether字段标识MAC
nmcli NetworkManager管理网络 适合脚本,HWADDR字段标识MAC
ethtool -P 查看永久MAC地址 直接输出永久地址
cat /sys/... 底层文件读取,适合自动化 仅输出MAC地址字符串

相关问答FAQs

Q1:为什么使用ifconfig命令时提示“command not found”?
A:部分现代Linux发行版(如Ubuntu 20.04+、CentOS 8+)默认不再安装net-tools包(包含ifconfig命令),可通过以下方式解决:

  • Debian/Ubuntu系统:sudo apt install net-tools
  • CentOS/RHEL系统:sudo yum install net-tools
  • Arch Linux系统:sudo pacman -S net-tools
    安装后即可正常使用ifconfig命令。

Q2:如何区分多个网卡的MAC地址对应的物理设备(如主板集成网卡 vs USB网卡)?
A:可通过以下方法区分:

  1. 使用lshw命令:安装lshwsudo apt install lshw),执行sudo lshw -C network,输出会显示网卡的硬件信息(如“product: VirtIO Ethernet Adapter”),结合MAC地址可确定设备类型。
  2. 查看USB设备信息:若为USB网卡,执行lsusb | grep -i ethernet,可查看USB设备厂商和型号,再结合ip addr中的MAC地址对应。
  3. 观察网卡名称:通常主板集成网卡命名为eth0ens33等,USB网卡可能命名为eth1enx开头(如enx00e04c360123)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/27039.html

(0)
酷番叔酷番叔
上一篇 1小时前
下一篇 1小时前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信