ip link show显示的是当前生效mac地址,非出厂物理地址;查永久mac必须用sudo ethtool -p(大写p),读取网卡eeprom中不可修改的出厂地址,如permanent address: 00:11:22:33:44:55。

ip link show 显示的是当前生效的 MAC,不是物理出厂地址
很多人以为 ip link show 输出的 link/ether 后面那串就是“物理 MAC”,其实它只是当前内核正在使用的地址——可能已被 ip link set dev ens33 address xx:xx:xx:xx:xx:xx 临时改过。查配置文件、脚本或容器启动时读到的也都是这个值,但它不等于硬件身份证。
查永久 MAC 必须用 sudo ethtool -P,不是 -p
注意参数是大写 -P(--permanent),不是小写 -p(那是闪烁网卡灯的命令)。执行:
sudo ethtool -P ens33
输出形如:Permanent address: 00:11:22:33:44:55。这个值来自网卡 EEPROM,软件无法覆盖,是唯一可信的出厂地址。
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
- 不是所有网卡都支持:veth、macvlan、部分 Realtek 或 USB 网卡会返回
No data available - 某些 Intel 千兆卡驱动未实现该接口,可能返回全零
00:00:00:00:00:00 - 必须加
sudo,普通用户权限不足
/sys/class/net/xxx/address 和 ip link show 本质是一回事
cat /sys/class/net/ens33/address 读出来的和 ip link show ens33 里 link/ether 后面的值完全一致,都是当前生效地址。它快、轻量、无需解析,适合脚本,但别误以为它是“物理地址”。
- 普通用户可读,不需要 root
- 路径名不固定:现代系统多用
enp0s3、ens160这类可预测命名,别硬写eth0 - 虚拟设备(如
docker0、veth*)也有address文件,但它们没有物理 EEPROM
真正麻烦的不是“怎么查”,而是“查哪个网卡”
系统里常有多个接口:lo、wlan0、docker0、vethabc123……物理以太网卡通常名字以 en 开头(如 ens33、enp0s3),但得先确认。
- 快速列出真实候选:
ip -br link | grep -E '^en' | grep -v 'docker|veth|br-' - 更稳妥一点:
lspci -k | grep -A 3 -i ethernet看驱动绑定的设备名 - NetworkManager 管理的系统可用:
nmcli device show | grep general.hwaddr,但只反映 NM 当前管理的逻辑接口
查永久地址前,先确保你选对了那个插在主板 PCIe 插槽上的真实网卡——而不是容器桥接口或虚拟网卡。这点最容易被忽略,一错就全错。










