服务器测评网
我们一直在努力

Linux查看网卡地址命令有哪些?不同场景下怎么选?

在Linux系统中,网卡地址(通常指MAC地址)是网络设备的硬件标识符,用于在网络中唯一标识网卡设备,掌握查看网卡地址的方法是系统管理和网络排查的基础技能,本文将详细介绍多种查看网卡地址的命令行方法,涵盖不同Linux发行版和常见场景,并解释相关参数与输出含义,帮助读者全面掌握这一技能。

Linux查看网卡地址命令有哪些?不同场景下怎么选?

使用 ip 命令查看网卡地址

ip 命令是Linux系统中强大的网络配置工具,取代了传统的 ifconfig 命令(在较新发行版中可能默认未安装),通过 ip linkip addr 可以快速查看网卡的MAC地址。

基本语法

ip link show  

ip addr show  

示例输出

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000    
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00  
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000    
    link/ether 00:1a:2b:3c:4d:5e brd ff:ff:ff:ff:ff:ff  
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000    
    link/ether 00:1c:23:45:67:89 brd ff:ff:ff:ff:ff:ff  

输出解析

  • eth0wlan0 分别为有线网卡和无线网卡的设备名。
  • link/ether 后跟随的即为MAC地址(如 00:1a:2b:3c:4d:5e),格式为6组十六进制数,用冒号分隔。
  • brd 为广播地址,默认为全 ff 的组合。

查看特定网卡的MAC地址

若只想查看某个网卡(如 eth0)的地址,可指定设备名:

ip link show eth0  

使用 ifconfig 命令查看网卡地址

ifconfig 是传统的网络配置工具,在CentOS 7之前的版本、Ubuntu 18.04及更早版本中默认可用,虽然逐渐被 ip 命令取代,但部分系统仍会使用。

基本语法

ifconfig  

查看所有网卡信息,或指定网卡名:

Linux查看网卡地址命令有哪些?不同场景下怎么选?

ifconfig eth0  

示例输出

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  
        ether 00:1a:2b:3c:4d:5e  txqueuelen 1000  (Ethernet)  
        RX packets 12345  bytes 1234567 (1.1 MiB)  
        RX errors 0  dropped 0  overruns 0  frame 0  
        TX packets 6789  bytes 987654 (964.5 KiB)  
        TX errors 0  dropped 0  overruns 0  carrier 0  collisions 0  

输出解析

  • ether 字段后即为MAC地址(如 00:1a:2b:3c:4d:5e)。
  • ifconfig 命令不可用,可通过包管理器安装,例如在Ubuntu/Debian中:
    sudo apt install net-tools  

    在CentOS/RHEL中:

    sudo yum install net-tools  

使用 ethtool 命令查看网卡地址

ethtool 是用于查询和设置网卡参数的工具,不仅能查看MAC地址,还能获取网卡速率、双工模式等详细信息。

基本语法

ethtool eth0  

示例输出

Settings for eth0:  
        Supported ports: [ TP ]  
        Supported link modes:   10baseT/Half 10baseT/Full  
                                100baseT/Half 100baseT/Full  
                                1000baseT/Full  
        Supported pause frame use: No  
        Supports auto-negotiation: Yes  
        Supported FEC modes: Not reported  
        Advertised link modes:  10baseT/Half 10baseT/Full  
                                100baseT/Half 100baseT/Full  
                                1000baseT/Full  
        Advertised pause frame use: No  
        Advertised auto-negotiation: Yes  
        Advertised FEC modes: Not reported  
        Speed: 1000Mb/s  
        Duplex: Full  
        Port: Twisted Pair  
        PHYAD: 0  
        Transceiver: internal  
        Auto-negotiation: on  
        MDI-X: off  
        Supports Wake-on: g  
        Wake-on: d  
        Current message level: 0x00000007 (7)  
                               drv probe link  
        Link detected: yes  
       Permanent MAC: 00:1a:2b:3c:4d:5e  

关键信息

  • Permanent MAC 字段显示网卡的永久MAC地址(通常与当前MAC地址一致,除非通过软件修改)。

安装 ethtool

若系统未安装,可通过包管理器安装:

# Ubuntu/Debian
sudo apt install ethtool  
# CentOS/RHEL
sudo yum install ethtool  

使用 sysfs 文件系统查看网卡地址

Linux内核通过 sysfs 虚拟文件系统暴露设备信息,网卡MAC地址也可通过直接读取系统文件获取,适合脚本编程或自动化场景。

查看路径

cat /sys/class/net/eth0/address  

示例输出

00:1a:2b:3c:4d:5e  

说明

  • 该方法仅显示纯MAC地址,无其他冗余信息,适合在Shell脚本中直接调用。
  • 若需查看所有网卡的MAC地址,可结合 ls 命令遍历 /sys/class/net/ 目录:
    for iface in /sys/class/net/*; do
        echo "$(basename $iface): $(cat $iface/address)"
    done

使用 nmcli 命令查看网卡地址(NetworkManager工具)

在Modern Linux发行版(如Ubuntu 20.04+、CentOS 8+)中,NetworkManager是主流的网络管理工具,nmcli 是其命令行接口,可查看网卡的MAC地址及网络配置。

Linux查看网卡地址命令有哪些?不同场景下怎么选?

基本语法

nmcli connection show  

查看所有网络连接,或指定连接名:

nmcli connection show "有线连接 1"  

示例输出

connection.id:                          eth0  
connection.uuid:                        12345678-1234-1234-1234-1234567890ab  
connection.type:                        802-3-ethernet  
connection.interface-name:              eth0  
mac-address:                            00:1A:2B:3C:4D:5E  

关键信息

  • mac-address 字段显示MAC地址(注意格式为全大写且无冒号,部分版本可能保留冒号)。

查看活跃网卡的MAC地址

nmcli device show eth0  

使用 lshwhwinfo 查看硬件级别的网卡信息

若需获取网卡更详细的硬件信息(如制造商、型号等),可使用 lshwhwinfo 工具,这些工具会列出包括MAC地址在内的硬件属性。

使用 lshw

sudo lshw -C network  

示例输出

*-network                 
       description: Ethernet interface  
       product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller  
       vendor: Realtek Semiconductor Co., Ltd.  
       physical id: 0.0  
       bus info: pci@0000:02:00.0  
       logical name: eth0  
       version: 06  
       serial: 00:1a:2b:3c:4d:5e  
       size: 1Gbit/s  
       capacity: 1Gbit/s  
       width: 64 bits  
       clock: 33MHz  

使用 hwinfo

sudo hwinfo --network  

安装工具

# Ubuntu/Debian
sudo apt install lshw hwinfo  
# CentOS/RHEL
sudo yum install lshw hwinfo  

常见问题与注意事项

  1. MAC地址格式:Linux中MAC地址通常显示为 XX:XX:XX:XX:XX:XX(十六进制,冒号分隔),部分工具可能显示为 或无分隔符(如 00-1A-2B-3C-4D-5E),本质相同。
  2. 虚拟网卡:虚拟机(如KVM、VMware)或容器(Docker、LXC)会生成虚拟网卡,其MAC地址可能是随机生成的或手动指定的,可通过上述方法区分物理与虚拟网卡。
  3. MAC地址修改:若发现MAC地址与硬件标识不符,可能是通过 macchanger 等工具临时修改,或虚拟网机的配置导致。
  4. 权限问题:部分命令(如 ethtoollshw)需要root权限执行,可通过 sudo 提升权限。

本文介绍了Linux系统中查看网卡地址的多种方法,包括 ipifconfigethtoolsysfsnmcli 及硬件信息工具 lshw/hwinfo,不同工具适用于不同场景:ipifconfig 适合快速查看;ethtoolsysfs 适合脚本自动化;nmcli 适合NetworkManager管理的系统;硬件信息工具则适合深度排查,熟练掌握这些方法,可有效提升网络管理效率,快速定位网卡相关问题。

赞(0)
未经允许不得转载:好主机测评网 » Linux查看网卡地址命令有哪些?不同场景下怎么选?