1. 为什么突然要找MAC地址它到底是个什么东西先说个我最近碰到的事。有朋友搬家后换了光猫家里台式机怎么都上不了网叫了宽带师傅上门。师傅进路由器后台看了一眼随口问了一句你之前是不是绑定过MAC地址朋友一脸懵完全不知道我在说什么。后来一查果然是旧路由器里设置过MAC过滤只允许原来那台电脑的网卡接入。新光猫换了新的无线网卡自然被挡在门外。这就是MAC地址在日常网络里最典型的一个用途它是网卡在局域网里唯一的身份证。MAC地址全称叫Media Access Control Address中文通常翻译成物理地址或硬件地址。它由12位十六进制字符组成每两个字符一组用冒号或者短横线分隔比如A4:5E:60:9D:21:8C这种。前6位是网卡厂商的编号也叫OUI由IEEE统一分配后面6位是厂商自己给网卡编的序列号。理论上每一块网卡出厂时烧录的MAC地址都是全球唯一的。为什么说理论上因为实际场景里有一堆例外比如虚拟机、双网卡设备、甚至手动改MAC地址的情况后面我会专门展开讲。但无论如何在绝大多数家用和企业网络环境里MAC地址就是网络设备身份的判定依据。查看MAC地址的需求远不止上面那个被过滤的场景。我归纳了一下最常遇到的几种情况大概是这样的公司或学校开启了MAC白名单认证新设备要登记MAC才能上网。路由器里想给某台设备固定分配一个IP需要先把设备的MAC填进去。家里网络莫名其妙卡顿想确认有没有陌生设备蹭网。网络排查时报障客服或运维会先让你提供MAC地址。换电脑之后想把旧设备的绑定关系迁移到新设备上。以上任何一种场景都会逼着你学会查看MAC地址这个基本操作。而且这个操作在不同操作系统里方法还不一样甚至在同一系统里也有图形界面和命令行两种完全不同的路径。这篇文章我就把Windows和macOS上最常见的两种方式都整理出来一种是适合普通用户的图形界面操作另一种是适合日常玩机、装系统、做运维的人更偏爱的命令行方式。两种各有优劣学会了灵活用能省不少事。2. 方式一图形界面查看适合不想碰命令行的普通用户先说最直观的方式——通过系统设置界面查看。这种方法的好处是所见即所得不需要记任何命令鼠标点几下就能看到结果特别适合家里长辈或者刚接触电脑的朋友。2.1 Windows系统从设置里看干净又直观Windows 10和Windows 11的操作路径几乎一样区别只在于设置界面改了一点布局。我以Windows 11为例讲一遍Windows 10用户找对应的入口就行。第一步按键盘上的Win I组合键打开系统设置窗口。第二步点击左侧菜单里的网络和 Internet然后选择高级网络设置。在这个页面里你能看到当前连接的网络适配器列表包括以太网也就是插网线的有线网卡、WLAN也就是连Wi-Fi的无线网卡还有可能存在的一些虚拟网卡。第三步点击你要查看的网络适配器类型比如WLAN或以太网然后找到查看此网卡的属性或直接查看物理地址(MAC)这一项。Windows 11里适配器详情页会直接列出硬件属性里面就有一行写着物理地址(MAC)后面对应的那串字符就是你要找的MAC地址。如果用的是Windows 10路径稍微有点绕设置 - 网络和 Internet - 查看网络属性也会看到同样的信息。或者更老一点的路径是控制面板 - 网络和共享中心 - 更改适配器设置双击正在使用的网卡图标在弹出的状态窗口里点详细信息同样能看到物理地址。这两种路径的区别是前者在系统设置里直接汇总展示后者走的传统控制面板流程。不管走哪条路结果都一样看到的都是当前这块网卡的物理地址。2.2 macOS系统在系统设置里看同样不需要动命令行MacBook用户查看MAC地址的图形界面操作也很简单。以macOS Ventura及之后版本为例第一步点击左上角苹果图标选择系统设置。第二步左侧找到并点击网络右侧会显示当前的网络连接方式。如果你用的是Wi-Fi就点击Wi-Fi那一项右侧的详细信息按钮如果你是插网线或接显示器网口就点以太网右侧的详细信息。第三步在弹出的网络详情界面里选择硬件标签页就能看到MAC地址一栏后面跟着的就是这块网卡对应的MAC地址。这里特别提醒一下MacBook的Wi-Fi芯片通常是和蓝牙集成在同一颗芯片上的所以你在系统信息里偶尔能看到好几个MAC地址头几位相同的情况这是同一厂商不同功能的网卡别搞混了。2.3 图形界面看MAC的局限你可能看了一串没用的虚拟地址图形界面方式虽然简单但它有一个隐蔽的坑它默认只显示当前正在连接网络的那块网卡的物理地址。这句话怎么理解举个真实例子——我之前给一台笔记本做网络调试这台机器同时插着USB转网线转换器又连着家里Wi-Fi还装了VMware虚拟机。当我想查这台电脑的MAC地址时系统设置里只显示了当前优先联网的那个接口但实际这台机器至少有四五个MAC地址有线网口的、无线网卡的、USB网卡的、虚拟网卡的甚至蓝牙网卡也有自己的MAC。所以在跟别人报MAC地址之前一定要先确认对方要的是哪个网卡的地址是有线口的MAC还是Wi-Fi的MAC。如果对方说你把电脑MAC给我多半是要当前联网状态的地址这种情况用图形界面看没问题。但如果对方说把以太网适配器MAC给我而你又正在用Wi-Fi上网图形界面下就不一定好找这时候命令行反而更清楚。3. 方式二命令行查看玩机老手更喜欢的快路径如果说图形界面是看得到就行那命令行方式就是既看得到还能看全。它最大的优势是一次性列出所有网络适配器的MAC地址有线、无线、虚拟网卡一目了然不用在一个个界面里来回翻。另外在一些场景比如远程排查、服务器安装、无桌面系统里图形界面根本不存在命令行就是唯一选择。3.1 Windows命令行getmac和ipconfig /all各有用处Windows系统查看MAC地址最常用的命令有两个分别是getmac和ipconfig /all。两者都能查MAC地址但侧重点不同。先介绍getmac。这个命令很简单直接在命令提示符CMD或PowerShell里输入getmac /v回车之后会列出当前系统的物理适配器信息包括连接名和物理地址两列。加/v参数是为了显示更详细的信息比如适配器名称不加也能用只是显示内容更简洁。再来看ipconfig /all。打开命令提示符输入ipconfig /all这个命令会输出大量网络配置信息包括每个网卡的IP地址、子网掩码、默认网关、DNS以及物理地址。输出结果长这样我简单模拟一下无线局域网适配器 WLAN: 物理地址. . . . . . . . . . . . : A4-5E-60-9D-21-8C IPv4 地址 . . . . . . . . . . . : 192.168.1.104 默认网关. . . . . . . . . . . . : 192.168.1.1 以太网适配器 以太网: 媒体状态. . . . . . . . . . . . : 媒体已断开连接 物理地址. . . . . . . . . . . . : D8-BB-C1-XX-XX-XX两种命令怎么选我个人习惯是这样只是单纯想查MAC地址用来登记绑定用getmac干净利落。同时在排查网络问题、需要了解IP地址和网关信息用ipconfig /all一步到位。还有一个小细节Windows显示MAC地址默认用短横线分隔A4-5E-60-9D-21-8C而路由器后台和很多网络文档里习惯用冒号分隔A4:5E:60:9D:21:8C两者本质上是同一个东西录入的时候格式带不带分隔符、用哪种分隔符系统一般会自动识别不必为此纠结。3.2 macOS和Linux的通用命令ifconfig与ip linkmacOS和Linux用户查看MAC地址最经典的命令是ifconfig。在终端里输入ifconfig输出结果里en0Mac的Wi-Fi网卡、en1有线或其它、eth0Linux的有线网卡等接口下都会有一行ether a4:5e:60:9d:21:8cether后面的这串字符就是该接口的MAC地址。macOS里通常en0是Wi-Fi接口但有时候也会因为系统版本和硬件差异出现en0是有线网口的情况所以别死记en0Wi-Fi要看接口名称对应的设备类型。如果你的系统里没有ifconfig某些新版Linux发行版默认不装可以用ip命令ip link或者更精确一点只看某个接口的信息ip link show en0输出里的link/ether一栏就是MAC地址。这个ip命令在较新的Linux系统里是标配macOS上也支持只不过在macOS上ip命令某些参数和Linux不太完全一样所以日常查询我还是优先用ifconfig。3.3 为什么说命令行查到的更可靠这里说的可靠不是指显示的数值本身更准确而是指它展示的信息更完整、更利于判断。命令行会把所有网络接口都列出来包括物理网卡、虚拟网卡、已断开连接的适配器。图形界面恰恰相反——它为了界面简洁默认只展示正在使用的接口。举个典型场景朋友新买的电脑连不上办公室Wi-FiIT让查一下无线网卡MAC做准入登记。结果用户在设置界面看到的是走有线网络的网卡地址登了几个小时都报错。最后用命令行一查才发现在一堆接口里找到了正在连Wi-Fi的那个。这种问题在混用多种网络方式的笔记本用户身上很常见。另外命令行方式在远程操作时也有不可替代的优势。比如你用SSH远程连接一台服务器或者在Windows上通过PowerShell远程管理另一台机器你没有任何图形界面可看唯一能依赖的就是命令。3.4 Windows下更快的取巧方法不用翻屏直接复制命令行虽然高效但Windows的cmd窗口有个痛点窗口默认大小摆在那里ipconfig /all的输出一多MAC地址容易滚出视野范围。这时候可以加一个管道操作直接过滤出物理地址ipconfig /all | findstr /R 物理地址或者PowerShell风格的写法Get-NetAdapter | Select-Object Name, MacAddress后者会输出一个干净的表格式列表左边是网卡名称右边是MacAddress比ipconfig /all从一大堆文本里找要舒服得多。要是你觉得每次打这么长一串命令麻烦还可以这么干Get-NetAdapter | Format-Table -AutoSize这些都算是日常小技巧学会了能节省不少来回复制粘贴的时间。特别是我这种经常给远程用户报MAC地址的远程过去先跑一行命令比让用户在界面里一步步找要省太多事。4. 拿到MAC地址以后串起来的几个高频疑问和坑只看地址本身并不难难的是弄明白自己看到的到底是什么。这里我把热搜里大家常困惑的几个点汇总一下结合踩过的坑一起说。4.1 以00:0C:29开头的MAC地址基本都是虚拟机这是个很有意思的识别技巧。如果你在网卡列表里看到一个MAC地址以00:0C:29开头或者00-0C-29这种格式十有八九是VMware创建的虚拟网卡不是真实的物理硬件。为什么会这样前面说过MAC地址前6位是厂商OUI。VMware的公司OUI就包含00:0C:29、00:50:56、00:05:69这几个段位。所以只要前6位对上这几个值基本可以断定是虚拟机。同类的判断规则还有VirtualBox生成的虚拟网卡常见08:00:27前缀Docker容器虚拟接口有时候会占用02:42:ac等前缀。看到这些编号就别再纠结我这台电脑怎么这么多网卡了它们本来就是软件模拟出来的。我自己的经历很典型——有次在群里帮人排查一个电脑有两个MAC地址的问题截图发过来我一眼看到00:0C:29开头的那块网卡再一问果然装了VMware Workstation。如果不知道这个OUI的规律你很容易把虚拟网卡的MAC当成真实网卡报给IT白折腾半天。4.2 MAC地址能被改那查到的还有意义吗既然MAC地址是网卡出厂的身份证为什么有人能随便改网上甚至有一堆修改教程。这里要分清楚概念在Windows系统里你可以在设备管理器 - 网络适配器 - 属性 - 高级选项卡里找到网络地址或本地管理的地址选项手动填一串新的MAC值。但这里填的值只影响操作系统向外部宣告的MAC并不会真的改写网卡芯片里烧录的固件值。换句话说这是软件层面的伪装不是硬件层面的修改。这种方式在某些场景下是有用的比如运营商光猫绑定了旧设备MAC更换路由器后需要把旧MAC克隆到新设备上再比如公司网络只允许某台已登记设备接入你临时想用另一台设备可以先改一下MAC再连。但要注意改MAC属于本地管理行为一旦操作不当比如填写非法字符、长度不对网卡可能会暂时无法正常工作恢复方式是把网络地址重新设回不存在或未配置状态。那么问题来了既然MAC能改查到的地址还可靠吗答案是查到的地址是网卡当前向系统申报的MAC在绝大多数正常环境下它就是真实且唯一的。会去篡改MAC的人属于少数特殊需求而且一旦改了改完之后再查到的地址确实和出厂值就不一样了。这时如果你想查物理硬件真正的MAC在Windows里可以用Get-NetAdapter -Name 以太网 | Get-NetAdapterAdvancedProperty但这条命令显示的是当前生效的属性不一定还原出厂烧录值。真要还原一般用bcdedit或第三方工具配合网卡驱动操作超出了本文范围。反正记住一点对普通用户来说当前系统显示的MAC就是你需要上报的那个地址对搞网络的人来说改MAC更像是一种调试手段而不是破解安全的途径。4.3 光猫改桥接时为什么要核对MAC地址光猫改桥接这几个字在热搜里很常见它跟MAC地址有什么关联我解释一下。运营商提供的光猫通常自带路由功能光猫的WAN口和运营商设备之间是有MAC绑定的。当你想把光猫改成桥接模式用自己的路由器来拨号上网时运营商设备侧可能仍然识别原来光猫的MAC地址。如果你的新路由器MAC和旧光猫对不上拨号可能一直失败表现为宽带连接错误 651或678。解决办法就是在路由器里找到MAC地址克隆或修改WAN口MAC的功能把原来光猫的MAC填进去。这时候你就得先知道旧光猫的MAC是多少。很多光猫底部标签直接印着MAC但有些型号外壳上写的和实际WAN口MAC并不完全一致最稳妥的办法是进光猫后台在WAN口状态或设备信息里查看。这也算查看MAC地址这个基础操作在实际网络故障里最值钱的一个应用场景。4.4 vSphere里的混杂模式MAC地址更改伪传输又是什么如果你是搞虚拟化网络的人对这个话题肯定不陌生。vSphere虚拟交换机的安全策略里有一组选项混杂模式、MAC地址更改、伪传输它们和虚拟机的MAC地址行为直接相关。先说混杂模式。它决定虚拟交换机是否允许虚拟机网卡接收不是发给自己的流量。在正常模式下虚拟交换机会根据目标MAC地址把流量精确投递给对应的虚拟机。一旦开启混杂模式就是告诉交换机甭管目标MAC是谁只要经过全都收。做网络抓包、安全分析、搭建虚拟化防火墙比如用vyOS或OPNsense做虚拟防火墙的时候必须开启这个选项否则虚拟防火墙收不到别人的数据包功能直接瘫痪。再说MAC地址更改。它对应的情况就是虚拟机的操作系统或应用主动修改了网卡的MAC地址。如果这个策略设置为接受虚拟交换机就会按修改后的MAC地址进行转发决策而不是固执地只认虚拟机配置文件里登记的那个MAC。举个例子虚拟机里做了MAC克隆如果交换机策略没放开流量就会断。最后是伪传输。它管的是虚拟机发出的数据包里的源MAC地址是否能和虚拟网卡本身配置的不一致。在一些NAT、负载均衡的应用场景里数据包源地址可能经过改写这时就必须允许伪传输。这三个策略在很多连不上网的虚拟化事故里都是祸根。你可以把虚拟交换机和物理交换机类比物理交换机的端口安全功能如果发现端口上出现了不该出现的MAC会直接断开端口或丢弃流量。vSphere里这三个开关就承担了同类职责只是策略粒度更细可以分别控制接收、目的MAC、源MAC。如果你在ESXi里建了一台虚拟机配置好IP之后发现怎么都ping不通网络又不通先别急着查防火墙看看虚拟交换机安全策略里那三项是不是被设置成了拒绝或隐藏尤其你改过虚拟机网卡MAC的话十有八九是这里拦住了。5. 查MAC这件事我最后想说的实操心得说了这么多最后分享几条我在实际工作中养成的小习惯都是踩过不少坑换来的。第一查MAC地址前先确认用途。是登记Wi-Fi白名单就确认当前正在用的无线网卡MAC是排查有线网络就找以太网的MAC。不要拿到一个地址就报动手前花两秒钟想清楚后面能省几小时沟通成本。第二查MAC地址时尽量用命令行方式。虽然图形界面简单但命令行能一次性列出全部网卡我几乎每次远程帮人看都是让对面敲一行ipconfig /all或getmac一屏信息里直接定位比引导对方点开设置一层层找要快得多。给小白远程指导时甚至可以让他们直接说输出文本不用自己分辨哪个是哪个。第三看到00:0C:29这类特殊前缀的MAC地址不要马上当成问题设备先想想机器上是不是装了VMware、VirtualBox这类虚拟化软件。有时候多出来的网卡并不是什么后门或病毒只是虚拟机软件在安装时顺手创建的虚拟适配器。第四如果改了MAC地址之后网卡掉线不要慌。先在设备管理器里把网络地址改回不存在或未配置重启网卡即可恢复正常。绝大多数改MAC导致断网的案例原因都是填了一个非法字符或者格式不对搞到系统无法正确识别网卡属性。第五备份好关键设备的MAC。家里路由器、光猫、打印机的MAC建议记下来存到手机备忘录里。等到某天网络出问题、需要换设备配网的时候这份名单能省去很大的排查工作量。我自己就吃过一次亏光猫坏了换新结果宽带绑定的是旧光猫MAC客服要我提供旧设备MAC没有记录最后折腾了一晚上才恢复。查看MAC地址是个入门级技能但它连接着网络准入、设备识别、故障排查、虚拟化安全一系列进阶问题。把基础操作弄扎实遇到实际问题时就不容易慌。希望这篇内容对你有用。
