在网络管理和服务器维护中,获取服务器的MAC地址(Media Access Control Address) 是一项基础且重要的任务,MAC地址是网络接口卡(NIC)的唯一硬件标识符,对于网络配置、安全策略制定、设备识别以及故障排查都至关重要,本文将详细介绍在Windows Server和Linux服务器两大主流操作系统上,如何通过命令行高效、准确地查看服务器的MAC地址。
为什么需要命令行?
- 高效直接: 命令行(CLI)是服务器管理的核心工具,无需图形界面(GUI),尤其适用于远程管理(如SSH、远程桌面)或无头服务器(Headless Server)。
- 自动化脚本: 命令行输出易于集成到脚本中,实现批量查询或自动化任务。
- 通用可靠: 无论服务器处于何种状态(只要命令行可用),该方法都有效。
重要提示:
- 权限要求: 执行这些命令通常需要管理员或root权限。
- 多网卡情况: 服务器通常有多个网络接口(物理网卡、虚拟网卡、管理口iLO/iDRAC/IPMI等),命令会列出所有接口的MAC地址,请根据接口描述(如名称、连接状态)识别目标网卡。
- 物理地址: MAC地址通常显示为
Physical Address
(Windows) 或ether
(Linux) 字段。
在 Windows Server 上查看 MAC 地址
Windows Server 提供了强大的命令行工具 ipconfig
和更现代的 Get-NetAdapter
(PowerShell)。
方法 1:使用 ipconfig
命令 (CMD)
-
打开命令提示符:
- 按下
Win + R
键,输入cmd
,然后按Enter
。 - 或者,在开始菜单搜索 “cmd” 或 “命令提示符”,右键选择“以管理员身份运行”(推荐,避免权限问题)。
- 按下
-
执行命令: 在打开的命令提示符窗口中,输入以下命令并按
Enter
:ipconfig /all
-
查找 MAC 地址:
-
命令会输出所有网络适配器的详细信息。
-
向下滚动,找到你关心的物理网络适配器(通常名称如 “Ethernet adapter Ethernet”, “Ethernet adapter 以太网” 等,注意区分虚拟适配器如 VMware, Hyper-V)。
-
在该适配器的信息块中,查找
物理地址
或Physical Address
这一行,后面跟着的XX-XX-XX-XX-XX-XX
(6组两位十六进制数,通常用连字符 分隔)就是该网卡的MAC地址。 -
示例输出片段:
Ethernet adapter Ethernet 0: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Intel(R) Ethernet Connection I217-LM Physical Address. . . . . . . . . : 00-1A-4B-XX-XX-XX <-- 这就是MAC地址 DHCP Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes Link-local IPv6 Address . . . . . : fe80::c1d3:4a1f:XXXX:XXXX%12(Preferred) IPv4 Address. . . . . . . . . . . : 192.168.1.100(Preferred) Subnet Mask . . . . . . . . . . . : 255.255.255.0 ...
-
方法 2:使用 Get-NetAdapter
命令 (PowerShell – 更现代推荐)
PowerShell 提供了更强大、面向对象的网络管理命令。
-
打开 PowerShell:
- 按下
Win + R
键,输入powershell
,然后按Enter
。 - 或者,在开始菜单搜索 “PowerShell”,右键选择“以管理员身份运行”(推荐)。
- 按下
-
执行命令: 在打开的 PowerShell 窗口中,输入以下命令并按
Enter
:Get-NetAdapter | Format-List Name, InterfaceDescription, MacAddress, Status, LinkSpeed
- 命令解释:
Get-NetAdapter
: 获取所有网络适配器的基本信息。| Format-List ...
: 将输出格式化为列表,并仅显示指定的属性(名称、描述、MAC地址、状态、连接速度),你可以根据需要增减属性。
- 命令解释:
-
查找 MAC 地址:
-
输出会清晰地列出每个适配器的关键信息。
-
直接查看
MacAddress
字段即可,MAC地址通常显示为XX-XX-XX-XX-XX-XX
格式。 -
示例输出片段:
Name : Ethernet0 InterfaceDescription : Intel(R) Ethernet Connection I217-LM MacAddress : 00-1A-4B-XX-XX-XX <-- 这就是MAC地址 Status : Up LinkSpeed : 1 Gbps Name : vEthernet (Default Switch) InterfaceDescription : Hyper-V Virtual Ethernet Adapter #2 MacAddress : 00-15-5D-XX-XX-XX Status : Up LinkSpeed : 10 Gbps
-
这个命令输出更简洁、信息更结构化,更容易找到所需信息。
-
在 Linux 服务器上查看 MAC 地址
Linux 提供了多种强大的命令行工具来查看网络信息,最常用的是 ip
和 ifconfig
(较老系统,部分新发行版可能默认不安装)。
方法 1:使用 ip link show
命令 (推荐)
ip
命令 (iproute2
包) 是现代 Linux 发行版管理网络的首选工具,功能强大且持续更新。
- 打开终端: 通过 SSH 登录服务器或直接在服务器控制台打开终端。
- 执行命令 (通常需要 root/sudo):
ip link show
或者,为了更聚焦于状态和信息(包括MAC):
ip -c -br link show
- 命令解释:
ip link show
: 显示所有网络链接(接口)的状态和信息。-c
: 彩色输出(更容易区分)。-br
: 以简洁的表格格式输出。
- 命令解释:
- 查找 MAC 地址:
- 在输出中,找到你关心的物理接口(名称通常如
eth0
,enp0s3
,ens192
,bond0
等,注意lo
是本地环回接口)。 ip link show
输出示例:1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT 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 mode DEFAULT group default qlen 1000 link/ether 00:1a:4b:xx:xx:xx brd ff:ff:ff:ff:ff:ff <-- `link/ether` 后面就是MAC地址
ip -c -br link show
输出示例 (更简洁):lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP> eth0 UP 00:1a:4b:xx:xx:xx <BROADCAST,MULTICAST,UP,LOWER_UP>
在简洁模式下,第三列 (
00:1a:4b:xx:xx:xx
) MAC 地址。- MAC 地址格式通常是
XX:XX:XX:XX:XX:XX
(6组两位十六进制数,用冒号 分隔)。
- 在输出中,找到你关心的物理接口(名称通常如
方法 2:使用 ifconfig
命令 (传统方法)
ifconfig
(net-tools
包) 是传统的网络配置工具,虽然仍在广泛使用,但许多现代最小化安装的 Linux 发行版可能默认不包含它,如果需要,通常可以通过包管理器安装(如 sudo apt install net-tools
for Debian/Ubuntu, sudo yum install net-tools
for RHEL/CentOS)。
- 打开终端。
- 执行命令:
ifconfig -a
-a
参数确保显示所有接口,包括未激活的。 - 查找 MAC 地址:
- 在输出中,找到目标物理接口(如
eth0
,enp0s3
)。 - 在该接口的信息块中,查找
ether
或HWaddr
这一行(不同版本可能不同),后面跟着的XX:XX:XX:XX:XX:XX
MAC 地址。 - 示例输出片段:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::c1d3:4a1f:XXXX:XXXX prefixlen 64 scopeid 0x20<link> ether 00:1a:4b:xx:xx:xx txqueuelen 1000 (Ethernet) <-- `ether` 后面是MAC地址 RX packets 123456 bytes 987654321 (987.6 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 654321 bytes 123456789 (123.4 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- 在输出中,找到目标物理接口(如
方法 3:查看 /sys
文件系统 (底层信息)
Linux 将所有设备信息暴露在 /sys
文件系统中,MAC 地址可以直接从对应网络接口的文件中读取。
- 确定接口名称: 使用
ip link show
或ls /sys/class/net
查看所有接口名称。 - 查看 MAC 地址文件: 使用
cat
命令查看对应接口的address
文件:cat /sys/class/net/eth0/address
将
eth0
替换为你的实际接口名。 - 输出: 命令会直接输出该接口的 MAC 地址,格式为
XX:XX:XX:XX:XX:XX
。00:1a:4b:xx:xx:xx
这种方法非常直接,特别适合在脚本中使用。
总结与关键要点
- Windows Server:
- 首选:PowerShell –
Get-NetAdapter | fl Name, MacAddress, InterfaceDescription, Status
(信息清晰结构化)。 - 经典:CMD –
ipconfig /all
(查找目标适配器的物理地址
/Physical Address
)。
- 首选:PowerShell –
- Linux Server:
- 首选:
ip link show
或ip -c -br link show
(查找目标接口的link/ether
或简洁输出第三列)。 - 传统:
ifconfig -a
(查找目标接口的ether
或HWaddr
行)。 - 脚本友好:
cat /sys/class/net/<接口名>/address
(直接读取文件)。
- 首选:
- 通用注意事项:
- 权限: 确保使用管理员 (Windows) 或 root/sudo (Linux) 权限执行命令。
- 识别接口: 服务器可能有多个接口(物理、虚拟、管理口),仔细核对接口名称和描述。
- MAC 格式: Windows 常用 分隔 (
XX-XX-XX-XX-XX-XX
),Linux 常用 分隔 (XX:XX:XX:XX:XX:XX
),本质相同。 - 唯一性: MAC 地址是网卡硬件级别的唯一标识(尽管虚拟化和某些技术可能改变或模拟它)。
- 用途: 用于网络配置(静态IP绑定)、交换机端口安全、设备识别、网络访问控制列表(ACL)、故障诊断等。
掌握这些命令行方法,将使你能够快速、准确地在任何 Windows 或 Linux 服务器上获取所需的 MAC 地址信息,这是服务器和网络管理员必备的基础技能。
引用与参考说明
- 本文所述命令基于 Windows Server 2012 R2 / 2016 / 2019 / 2022 和主流 Linux 发行版(如 RHEL/CentOS 7+, Ubuntu 18.04+, Debian 10+)的通用实践。
ipconfig
命令文档: Microsoft Windows Command-Line Documentation.Get-NetAdapter
Cmdlet 文档: Microsoft PowerShellNetAdapter
Module Documentation.ip
命令手册页 (man ip
): Linuxiproute2
package documentation.ifconfig
命令手册页 (man ifconfig
): Linuxnet-tools
package documentation (if installed).- Linux
/sys/class/net/
文件系统: Linux Kernel Documentation (sysfs).
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/16750.html