在Linux系统中,查询网卡的MAC地址(物理地址)是网络配置和故障排查的常见需求,MAC地址是网卡的唯一硬件标识符,由12位十六进制数表示(如 00:1A:2B:3C:4D:5E
),常用于网络权限控制、设备识别或DHCP绑定,以下是多种专业、可靠且经过验证的查询方法,适用于所有主流Linux发行版(Ubuntu、CentOS、Debian等)。
方法1:使用 ip link
命令(推荐)
步骤:
- 打开终端(快捷键
Ctrl+Alt+T
)。 - 输入命令:
ip link show
- 在输出中:
- 找到你的网卡名称(如
eth0
、enp0s3
或wlan0
)。 - 在对应网卡信息的第二行,
link/ether
后的一串字符即为MAC地址(如00:0c:29:8f:1a:2b
)。
- 找到你的网卡名称(如
示例输出:
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:8f:1a:2b brd ff:ff:ff:ff:ff:ff
优势:ip
命令是现代Linux网络配置的标准工具,取代了旧版 ifconfig
,支持所有新内核系统,输出简洁准确。
方法2:使用 ifconfig
命令(传统方式)
步骤:
- 终端输入:
ifconfig -a
- 在网卡信息中查找
ether
字段(旧版本可能显示HWaddr
)。
注意:
部分新系统需安装 net-tools
包(通过 sudo apt install net-tools
或 sudo yum install net-tools
启用)。
方法3:通过系统文件直接读取
MAC地址信息存储在系统文件中,无需依赖外部命令:
cat /sys/class/net/网卡名/address
操作示例:
# 再读取指定网卡的MAC地址(如 eth0) cat /sys/class/net/eth0/address
输出:00:0c:29:8f:1a:2b
适用场景:
脚本自动化或无网络工具的最小化系统。
方法4:使用 ethtool
(查询物理网卡信息)
适用于需要验证网卡硬件属性的场景:
sudo ethtool -P 网卡名
示例:
sudo ethtool -P eth0
输出:Permanent address: 00:0c:29:8f:1a:2b
注意:
需安装 ethtool
包(sudo apt install ethtool
)。
方法5:通过 dmesg
日志(排查历史记录)
查看内核启动时记录的网卡信息:
dmesg | grep -i mac
输出示例:[ 2.304455] e1000 0000:00:03.0 eth0: (MAC: 00:0c:29:8f:1a:2b)
安全提示
- 保护MAC地址:避免公开泄露,防止被用于网络欺骗。
- 临时修改:可通过
sudo ip link set dev eth0 address 00:11:22:33:44:55
临时修改(重启失效),用于网络测试。
总结建议
场景 | 推荐方法 |
---|---|
快速查看当前MAC地址 | ip link show |
脚本调用 | 读取 /sys/class/net/ 文件 |
验证硬件永久地址 | ethtool -P |
旧版系统兼容 | ifconfig -a |
引用说明基于 Linux 内核文档(kernel.org)及以下命令的
man
手册页(通过man ip
、man ifconfig
可查看):
ip
命令来自iproute2
工具集(官方仓库)ifconfig
来自net-tools
项目(开源地址)- 系统文件路径参考 Linux 内核 ABI 文档(
/sys/class/net/
)
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5115.html