ip link命令怎么用?

在Linux系统中,查看网卡的MAC地址(即物理地址)是网络配置和故障排查的基础操作,MAC地址是网卡的唯一硬件标识符,由12位十六进制数组成(如00:1A:2B:3C:4D:5E),常用于网络绑定、设备识别或安全策略,以下是多种可靠的方法,适用于所有主流Linux发行版(如Ubuntu、CentOS、Debian等):
ip 命令是新一代网络工具,取代了旧的 ifconfig,功能更全面:

ip link show
  • 输出示例
    1: lo: <LOOPBACK> ... link/loopback 00:00:00:00:00:00  
    2: eth0: <BROADCAST> ... link/ether 00:1a:2b:3c:4d:5e
  • 关键字段
    • link/ether 后紧跟的即是MAC地址(如 00:1a:2b:3c:4d:5e)。
  • 查看指定网卡
    ip link show eth0 | grep link/ether | awk '{print $2}'

方法2:使用 ifconfig 命令(传统方式)

若系统未预装,可通过 net-tools 包安装(sudo apt install net-toolssudo yum install net-tools):

ifconfig
  • 输出示例
    eth0: ... ether 00:1a:2b:3c:4d:5e ... 
  • 关键字段ether 后为MAC地址。
  • 仅显示MAC地址
    ifconfig eth0 | grep ether | awk '{print $2}'

方法3:通过 /sys 文件系统(无需安装工具)

Linux内核通过虚拟文件系统 /sys 暴露硬件信息:

cat /sys/class/net/eth0/address
  • 直接输出00:1a:2b:3c:4d:5e
  • 适用场景:脚本自动化或精简环境(如Docker容器)。

方法4:使用 ethtool 工具(查看永久MAC地址)

某些网卡支持动态MAC地址(如虚拟化环境),ethtool 可查看硬件固化的永久地址:

sudo ethtool -P eth0
  • 输出示例Permanent address: 00:1a:2b:3c:4d:5e
  • 注意:需安装 ethtool 包(sudo apt install ethtoolsudo yum install ethtool)。

方法5:通过 nmcli(NetworkManager用户适用)

若系统使用NetworkManager管理网络:

nmcli device show eth0 | grep GENERAL.HWADDR
  • 输出示例GENERAL.HWADDR: 00:1A:2B:3C:4D:5E

常见问题解答(FAQ)

  1. 为什么MAC地址显示为 ff:ff:ff:ff:ff:ff
    通常表示网卡未激活或驱动异常,尝试启用网卡:

    sudo ip link set eth0 up
  2. 如何区分多个网卡?
    使用 ip linkls /sys/class/net/ 列出所有网卡名称(如 eth0wlan0)。

  3. MAC地址被随机化(如Wi-Fi)?
    某些系统(如NetworkManager)默认启用”cloned MAC”以保护隐私,关闭方法:

    nmcli connection modify "Your-WiFi-Name" wifi.cloned-mac-address permanent
  4. 虚拟机或容器中MAC地址不一致?
    虚拟网卡的MAC由宿主机分配,通过 virsh edit 虚拟机名 或容器配置查看真实值。


注意事项

  • 权限要求:除 /sys 外,其他命令可能需要 sudo 权限。
  • 一致性ip linkifconfig 显示当前生效的MAC地址,ethtool 显示硬件固化地址。
  • 临时修改:MAC地址可通过 sudo ip link set dev eth0 address 00:11:22:33:44:55 临时更改(重启失效)。

引用说明基于Linux内核文档(kernel.org/doc)、iproute2 官方手册(man7.org/linux/man-pages/man8/ip.8.html)及NetworkManager文档(developer.gnome.org/NetworkManager)综合整理,确保信息准确可靠。

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

(0)
酷番叔酷番叔
上一篇 2025年6月23日 22:29
下一篇 2025年6月23日 22:51

相关推荐

  • Linux下FLTK环境配置如何快速上手?

    在Linux中启动FLTK需三步:安装开发库,编写FLTK程序源码,最后编译链接并运行生成的可执行文件。

    2025年7月28日
    1500
  • Linux如何一键设置DNS提速?所有发行版适用

    DNS的作用与配置原理DNS(域名系统)将域名(如 www.example.com)转换为IP地址,Linux通过以下文件管理DNS:/etc/resolv.conf:存储DNS服务器地址(临时修改可能被覆盖),/etc/systemd/resolved.conf:systemd系统的永久配置,网络配置文件:如……

    2025年7月23日
    1700
  • Linux如何直接运行exe程序?

    使用Wine兼容层(轻量级方案)原理:Wine(Wine Is Not an Emulator)通过将Windows API调用实时转换为Linux系统能理解的指令,实现跨平台运行,无需安装完整Windows系统,安装步骤(以Ubuntu为例):启用32位架构支持(64位系统需执行):sudo dpkg –a……

    2025年6月18日
    3400
  • 为什么别人效率比你高?

    选择Linux发行版新手推荐:Ubuntu LTS、Linux Mint、Fedora Workstation进阶选择:Debian、openSUSE、Arch Linux(需技术基础)权威建议:访问DistroWatch查看实时排名和特性对比硬件兼容性检查确认CPU架构(x86_64为标准64位)显卡要求:N……

    2025年8月5日
    2100
  • 如何远程连接Linux电脑?详细步骤与方法指南

    远程连接Linux电脑是日常运维、开发和管理中的常见需求,主要通过SSH(安全外壳协议)实现命令行访问,或通过VNC(虚拟网络计算)实现图形界面远程操作,本文将详细介绍这两种主流方式的配置步骤、工具使用及安全注意事项,帮助用户高效、安全地远程管理Linux系统,通过SSH实现命令行远程连接SSH是Linux远程……

    2025年8月27日
    1400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信