在Linux系统中,MAC地址(Media Access Control Address)是网卡的物理地址,由48位二进制数组成,通常以十六进制格式表示(如00:1A:2B:3C:4D:5E),用于在网络中唯一标识网卡设备,查看MAC地址是网络配置、故障排查或安全认证时的常见需求,本文将详细介绍多种查看Linux网卡MAC地址的方法,涵盖命令行工具和图形界面操作,并针对不同场景提供实用技巧。
命令行工具查看MAC地址
命令行是Linux系统管理的核心方式,通过特定命令可快速、精准地获取MAC地址信息,以下是常用命令的详细用法及示例:
使用ifconfig
命令(需安装net-tools
包)
ifconfig
是传统的网络配置工具,可显示或临时配置网卡的IP地址、MAC地址等信息,部分现代Linux发行版(如Ubuntu 20.04+、CentOS 8+)默认未安装该工具,需先通过包管理器安装(如sudo apt install net-tools
或sudo yum install net-tools
)。
基本用法:
直接输入ifconfig
或ifconfig -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
)
示例输出:
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 ethtool
或sudo yum install ethtool
)。
基本用法:ethtool -P <网卡名>
(-P
显示永久MAC地址)或ethtool <网卡名>
(查看完整信息)
示例输出:
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)
- 步骤:
- 点击右上角“设置”图标(齿轮状),进入“设置”界面;
- 选择“网络”选项,点击当前连接的网络(如有线或无线);
- 在展开的页面中找到“硬件信息”或“设备详情”,即可看到MAC地址(显示为“物理地址”或“MAC地址”)。
KDE Plasma桌面(如openSUSE、Kubuntu)
- 步骤:
- 打开“系统设置”,进入“连接”或“网络”模块;
- 选择当前活动的网络连接(如“有线连接1”),点击“编辑”;
- 在“身份验证”或“IPv4/IPv6”选项卡中,可查看MAC地址(标注为“MAC地址”)。
XFCE/LXDE桌面(如Xubuntu、Lubuntu)
- 步骤:
- 右键点击任务栏网络图标,选择“网络设置”或“连接信息”;
- 在弹出的窗口中,切换到“硬件”或“详细信息”标签页,即可显示MAC地址。
不同场景下的注意事项
- 多网卡环境:若系统有多个网卡(如eth0、wlan0、ens33等),需指定网卡名称查看,避免混淆,可通过
ip link
或ls /sys/class/net/
查看所有网卡名。 - 虚拟机MAC地址:虚拟机(如VMware、VirtualBox)的MAC地址通常由虚拟化平台生成,可能以特定前缀开头(如VMware为00:0C:29、00:50:56,VirtualBox为08:00:27)。
- 临时修改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:可通过以下方法区分:
- 使用
lshw
命令:安装lshw
(sudo apt install lshw
),执行sudo lshw -C network
,输出会显示网卡的硬件信息(如“product: VirtIO Ethernet Adapter”),结合MAC地址可确定设备类型。 - 查看USB设备信息:若为USB网卡,执行
lsusb | grep -i ethernet
,可查看USB设备厂商和型号,再结合ip addr
中的MAC地址对应。 - 观察网卡名称:通常主板集成网卡命名为
eth0
、ens33
等,USB网卡可能命名为eth1
、enx开头
(如enx00e04c360123
)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/27039.html