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下如何解压.z文件?

    在Linux系统中,.z文件是由早期的compress工具压缩生成的文件格式,其压缩算法基于LZ77,虽然现在更常见的压缩格式是.gz(gzip)或.bz2(bzip2),但在处理一些遗留系统或历史数据时,仍可能遇到.z文件,解压.z文件需要使用特定的工具,本文将详细介绍Linux下解压.z文件的多种方法、注意……

    2025年8月28日
    5300
  • 如何安全高效编辑Linux文件?

    命令行编辑器(适用于远程/无图形界面)Vi/Vim(高效专业)打开文件: vim 文件名 # 新建或编辑现有文件基础操作:按 i 进入编辑模式(底部显示 — INSERT –)方向键移动光标,直接修改内容保存与退出:按 Esc 返回命令模式输入 :wq 保存并退出(:w 仅保存,:q! 强制退出不保存)实用……

    2025年7月16日
    6900
  • Linux端口占用?快速解决强制绑定问题

    释放被占用的端口(强制解除占用)当端口被其他进程占用时,需终止占用进程:查找占用进程sudo lsof -i :端口号 # 如 sudo lsof -i :80# 或sudo netstat -tulnp | grep :端口号输出中记录 PID(进程ID),终止进程sudo kill -9 PID # 强制终……

    2025年7月19日
    5800
  • Linux C如何输入整形变量?

    在Linux C程序中,输入整形变量是常见的操作,主要通过标准输入函数实现,以下是几种常用方法的详细说明,包括函数用法、注意事项及示例代码,使用scanf函数直接输入scanf是C标准库中最常用的输入函数,通过格式控制符%d(或其他修饰符)读取整形数据,其基本语法为:int scanf(const char……

    2025年8月25日
    5500
  • Linux生成密码有哪些方法?如何确保密码安全?

    在Linux系统中,生成密码是系统管理、用户配置、服务安全等场景中的常见需求,无论是创建新用户、设置数据库访问凭证,还是配置API密钥,都需要生成高强度且随机的密码,Linux提供了多种命令行工具和方法,可满足不同复杂度和安全性的需求,本文将详细介绍几种常用的Linux密码生成方式,包括基础命令组合、专业工具及……

    2025年10月6日
    3000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信