专栏首页张戈的专栏Linux :MAC 地址克隆方法

Linux :MAC 地址克隆方法

摘 要

虽然 MAC 地址由厂商指定,但用户可以改变它,这就是传说中的“MAC 地址欺骗”。你可能会疑惑,弄这个有什么用?好吧,玛思阁举个例子,比如,电信宽带的PP拨号很多时候就是绑定MAC地址的,换一台电脑可能就会拨号失败,这时候的解决办法就是在新机器上克隆已绑定的那个MAC地址即可! 一般大部分人仅知道如何对Windows系统的网卡进行克隆,而本文将向大家展示在 Linux 上进行 MAC 地址克隆的方法。

虽然 MAC 地址由厂商指定,但用户可以改变它,这就是传说中的“MAC 地址欺骗”。你可能会疑惑,弄这个有什么用?好吧,玛思阁举个例子,比如,电信宽带的 PP 拨号很多时候就是绑定 MAC 地址的,换一台电脑可能就会拨号失败,这时候的解决办法就是在新机器上克隆已绑定的那个 MAC 地址即可!

一般大部分人仅知道如何对 Windows 系统的网卡进行克隆,而本文将向大家展示在 Linux 上进行 MAC 地址克隆的方法。

网卡生产商在每一张网卡(NIC)在出厂时都会在上面刻上一个 48 位的全球唯一标识符(GUID,例如 08:4f:b5:05:56:a0),这串 GUID 就是网卡的 MAC 地址,用于确定一张网卡的身份。MAC 地址的高 24 位叫 OUI(Organizationally Unique Identifier 组织唯一标示符),是为网卡设置 MAC 地址的组织的标识符,这样一来,不同组织设置的 MAC 地址就不会冲突了。(译注:实际生产中,并不是每个网络设备都有不同的 MAC 地址,有时候地址空间不足,生产商会给发往不同地区国家的产品中用相同的地址空间。)

虽然 MAC 地址由厂商指定,但用户可以改变它,这就是传说中的“MAC 地址欺骗”。本文将向大家展示如何在 Linux 上玩 MAC 地址欺骗。

为什么要玩 MAC 地址欺骗?

想要理由?这里就给几个比较有技术含量的理由。 一些网络供应商会通过绑定你家路由器上的 MAC 地址来验证你的身份,这个时候如果你的路由器坏了,你怎么办?你可以暂时把你的电脑的 MAC 地址改成你家路由器的 MAC 地址,让你的 ISP 重新将你连入外网。(译注:有这种事情么?)

很多 DHCP 服务器会依赖 MAC 地址来分配 IP 地址。如果你想换一个分配给你的 IP 地址,你可以改改你的 MAC 地址。这样一来,你不必等着 DHCP 服务器给你重新分一个 IP 地址,而是马上就能得到一个新的。

除了技术原因外,这里也有一些比较正当的理由来说明你为什么需要改变你的 MAC 地址:为了隐私、为了安全,你要把你真正的 MAC 地址隐藏起来。不像处在 ISO 模型第三层的 IP 地址会经常变来变去,你的 MAC 地址可不会改变。在你说我多疑之前,请确定你知道你的隐私到底是什么东西。有一个入侵手段叫 piggybacking,黑客会在公共 WiFi 网络下伪装成你的 MAC 地址,并且在你不在场的时候伪装成你的身份进行黑客活动。

怎么临时性地改变 MAC 地址?

你可以在 Linux 运行的时候改变 MAC 地址。需要注意的是当 MAC 地址转换的那一会时间,你的网络会掉线。当电脑重启时 MAC 地址又会变回原来的。下面介绍几种方法来改变你的 MAC 地址。

方法一:iproute2

$sudo ip link set dev eth0 down
$sudo ip link set dev eth0 address 00:00:00:00:00:01
$sudo ip link set dev eth0 up

方法二:macchanger

macchanger 这个命令可以让你把 MAC 地址改成不同生产厂商的序列号。

在 Debian,Ubuntu 或 Linux Mint 下安装 macchanger:

$sudo apt-get install macchanger

在 Fedora 下安装 macchanger:

$ sudo yum install macchanger

在 CentOS 或 RHEL 下安装 macchanger:

$ wget http://ftp.club.cc.cmu.edu/pub/gnu/macchanger/macchanger-1.6.0.tar.gz 
$ tar xvfvz macchanger-1.6.0.tar.gz
$ cd macchanger-1.6.0
$ ./configure
$ make
$ sudo make install

下面给出一些 macchanger 的高级使用例子。使用 macchanger 你不必再手动禁用、启用你的网卡。

仅仅改变 MAC 地址:

$ sudo macchanger --mac=00:00:00:00:00:01 eth0

在保证 OUI 一致的情况下为 MAC 设置一个随机地址:

$ sudo macchanger -e eth0

为 MAC 设置一个完全随机的地址:

$ sudo macchanger -r eth0

获取所有网卡的 MAC 地址,然后只列出指定的厂商(比如 Juniper):

$ macchanger -l | grep -i juniper

 显示一块网卡原来的 MAC 地址和伪装的 MAC 地址:

$ macchanger -s eth0
Current MAC: 56:95:ac:ee:6e:77 (unknown)
Permanent MAC: 00:0c:29:97:68:02 (Vmware, Inc.)

如何永久性地改变 MAC 地址?

如果你想在系统重启后还保持伪装 MAC 地址,你需要编辑配置文件。比如你想改变 eth0 的 MAC 地址,按以下方法搞起:

在 Fedora,CentOS 或 RHEL 下:

$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
MACADDR=00:00:00:00:00:0

或者你可以建一个开机启动的脚本放在 /etc/NetworkManager/dispatcher.d 目录下,前提是你使用 Network Manager 管理你的网络。这里假设你已经装了 macchanger,脚本内容如下:

$ sudo vi /etc/NetworkManager/dispatcher.d/000-changemac
#!/bin/bash
case "$2" in
up)
macchanger --mac=00:00:00:00:00:01 "$1"
;;
esac
$ sudo chmod 755 /etc/NetworkManager/dispatcher.d/000-changemac

在 Debian,Ubuntu 或 Linux Mint 下:

新建一个开机启动脚本,放在 /etc/network/if-up.d/ 目录下:

$ sudo vi /etc/network/if-up.d/changemac
#!/bin/sh
if [ "$IFACE" = eth0 ]; then
  ip link set dev "$IFACE" address 00:00:00:00:00:01
fi
$ sudo chmod 755 /etc/network/if-up.d/changemac

via: http://xmodulo.com/2014/02/spoof-mac-address-network-interface-linux.html

译者:bazz2 校对:wxy

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【玩转腾讯云】妈妈再也不用担心我记不住密码啦!

    在我们的生活和工作当中,会用到非常多的网络应用,因为并不是每个应用都能用类似QQ/微信一键登录的方式来绑定账号,所以也就有了非常多的账号密码,记密码成为了让我们...

    张戈
  • WordPress评论滑动/拉链解锁myQaptcha代码版及部署方法

    虽然博客取消了文章页面评论,仅剩下留言板的评论,但张戈还是要尽力做到尽善尽美,将用户体验做到极致!在防止垃圾评论的同时,尽量让评论变得更加简单快捷。 于是就想到...

    张戈
  • 分享两种圣诞节雪花特效JS代码(网站下雪效果)

    今天是圣诞节,首先,张戈在这里祝所有朋友节日快乐! 虽然我对圣诞节并不感冒,不过既然是公开的博客,那还是搞搞气氛吧!测试了网上找的几个代码,下面分享一下我个人比...

    张戈
  • 看完让你彻底理解 WebSocket 原理,附完整的实战代码(包含前端和后端)

    最近有同学问我有没有做过在线咨询功能。同时,公司也刚好让我接手一个 IM 项目。所以今天抽时间记录一下最近学习的内容。本文主要剖析了 WebSocket 的原理...

    nnngu
  • ORACLE ——数据操纵语言(DML)

    DDL即Data Definition Language,翻译过来叫做数据定义语言,顾名思义,就是用来定义数据库的对象的,我们在上次推送中讲解了这个概念,希望大...

    DataScience
  • 不学好数学也想当数据科学家?不存在的

    大数据文摘
  • Spring归纳小结

    如果说有什么框架是Java程序员必然会学习、使用到的,那么Spring肯定是其中之一。本篇博客,将根据博主在日常工作中对Spring的使用做一个系统的归纳小结。

    用户2890438
  • Spring归纳小结

    如果说有什么框架是Java程序员必然会学习、使用到的,那么Spring肯定是其中之一。本篇博客,将根据博主在日常工作中对Spring的使用做一个系统的归纳小结。

    Java团长
  • Flutter lesson 5: Flutter组件之基础组件(一)

    说明:在介绍Widget的出后可能会涉及到一些属性,例如 Color, EdgeInsets等等。我会在其中穿插的说明,以后遇到这样的问题就不会再次说明。

    踏浪
  • 步骤6 - WebSocket服务器把请求的响应结果推送给webshop

    首先,WebSocket 仍然是作为TCP客户端接收从Orchestra发送过来的数据:

    Jerry Wang

扫码关注云+社区

领取腾讯云代金券