MAC 地址生成器

生成随机 MAC 地址,可选格式、数量、单播/多播以及本地管理位。

按需生成随机 MAC。 以冒号、连字符、空格或 Cisco 点分格式生成一个或多个 MAC 地址,并可控制单播/多播与本地管理位。使用密码学随机,在浏览器内运行。

MAC 地址的结构

六个字节,两个部分

MAC 地址共 48 位,通常写成六个十六进制字节。前三个字节是组织唯一标识符(OUI),由 IEEE 出售给硬件厂商;后三个字节由厂商分配给具体设备。这就是 MAC 通常可以追溯到制造商的原因——OUI 是公开注册表,查询工具只是拿前三个字节去比对而已。

书写形式因生态而异,含义并无区别。冒号分隔(00:1a:2b:3c:4d:5e)是 Unix 和 IEEE 的惯例,连字符(00-1A-2B-3C-4D-5E)是 Windows 的显示方式,Cisco 则写成三组四位十六进制数字并用点分隔(001a.2b3c.4d5e)。三者编码的是完全相同的 48 位。

第一个字节里的两个标志位

第一个字节的最低两位根本不属于标识符本身。第 0 位区分单播与组播:0 表示这一帧发给单个接口,1 表示发给一组接口。这正是 01:00:5e:... 成为 IPv4 组播前缀、ff:ff:ff:ff:ff:ff 成为广播地址的原因——该位被置 1 了。

第 1 位是本地/全局标志。清零表示地址来自 IEEE 分配的 OUI;置 1 表示地址是本地分配的,不携带任何厂商含义。你自己生成的地址都应当把这一位置 1,这也是本工具生成的字节第二个十六进制位总是 2、6、A 或 E 的原因。省掉这一步,测试数据就可能与某个真实厂商的地址段撞车。

随机 MAC 及其影响

由于每一次 Wi-Fi 探测请求都会明文广播 MAC 地址,它一度成为跨场所追踪个人的便利抓手。如今的手机和笔记本默认对每个网络呈现不同的本地管理 MAC,并定期轮换。这挫败了被动追踪,但同时也打破了"MAC 是稳定设备标识"这一假设:基于 MAC 的白名单、DHCP 静态保留和强制门户会话,在面对现代客户端的网络中都需要重新设计。

这里生成的地址适合用于实验拓扑、虚拟机模板、测试数据和文档场景——你需要看起来合理、又保证不属于任何真实硬件的地址。

开源说明:使用 crypto.getRandomValues 与原生 JavaScript 实现,不依赖第三方库。

常见问题

「本地管理」是什么意思?
它会置位第一个八位组的次低位,表示该地址由你自行分配,而不是来自 IEEE 分配的厂商 OUI。凡是自己生成的地址都应该打开这个选项。
单播和组播有什么区别?
由第一个八位组的最低位决定。该位为 0 表示单播,寻址到单个接口;为 1 表示组播,会被投递给一组接口。
应该选哪种格式?
冒号分隔是 Linux 和通用网络场景的惯例,连字符在 Windows 上更常见,四位一组的点分形式则是思科的写法。三者底层字节完全相同。
生成的地址保证唯一吗?
不保证。它们来自密码学随机源,碰撞概率极低,但没有任何机制会与你的网络实际比对。大规模部署前请先自行核实。
可以用在真实网络上吗?
可以,适用于虚拟机、容器和测试接口,前提是打开本地管理位,这样才不会与厂商实际分配的地址冲突。
为什么需要生成 MAC 地址?
常见场景包括虚拟机和容器的批量部署、实验室与测试环境的固定装置,以及无线客户端出于隐私考虑的地址随机化。