我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux使用NetworkManager随机生成你的MAC地址

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux使用NetworkManager随机生成你的MAC地址

今时今日,无论在家里的沙发上,还是在外面的咖啡厅,只要打开笔记本电脑,连上 Wi-Fi,就能通过网络与外界保持联系。但现在的 Wi-Fi 热点们大都能够通过 每张网卡对应的唯一 MAC 地址 来追踪你的设备。下面就来看一下如何避免被追踪。
现在很多人已经开始注重个人隐私这个问题。个人隐私问题并不仅仅指防止他人能够访问到你电脑上的私有内容(这又是另一个问题了),而更多的是指 可追踪性(legibility),也就是是否能够被轻易地统计和追踪到。大家都应该 对此更加重视 。同时,这方面的底线是,服务提供者在得到了用户的授权后才能对用户进行追踪,例如机场的计时 Wi-Fi 只有在用户授权后才能够使用。
因为固定的 MAC 地址能被轻易地追踪到,所以应该定时进行更换,随机的 MAC 地址是一个好的选择。由于 MAC 地址一般只在局域网内使用,因此随机的 MAC 地址也不大会产生冲突 。

NetworkManager简介

NetworkManager由一个管理系统网络连接、并且将其状态通过D-BUS(是一个提供简单的应用程序 互相通讯的途径的自由软件项目,它是做为freedesktoporg项目的一部分来开发的。)进行报告的后台服务,以及一个允许用户管理网络连接的客户 端程序。
NetworkManager服务:NetworkManager - linux Networking made Easy
NetworkManager的优点:简化网络连接的工作,让桌面本身和其他应用程序能感知网络。
NetworkManager的后台服务:对于GNOME和Xfce那就是nm-applet工具,而对于KDE用户来说就是KNetworkManager。
早期版本的NetworkManager(早期称为NetworkMangler,即网络磨肉机)使用很不方便,但是现在其已经成为了一个强大的工具,让管理网络不再痛苦。

NetworkManager 新版本的改进和新功能

NetworkManager 新版本支持更多的的网络设备有关。从0.8.1开始增加了用于GSM、UMTS和CDMA卡等移动宽带设备ModemManager的支持。使用 ModemManager也有新的功能,比如信号强度显示和选择2G/3G模式的功能。还可以关掉漫游功能以避免产生额外的连接费用;
NetworkManager 0.8.1后还支持使用蓝牙,不仅支持个人区域网络(PAN)上网,也支持老的蓝牙拨号网络(DUN)协议。所有(或者说最多)支持的设备可以在wiki上找到;
NetworkManager支持IPv6的自动配置和静态IP;NetworkManager 新版本rUBJaBNSS还会带来IPv6的DHCP支持
NetworkManager 新版本增强设备以及协议的支持,NetworkManager 最新版有一个全新的漂亮的客户端界面。
命令行接口:NetworkManager 最新版的最大特征:命令行工具命令,一个NetworkManager的命令行接口。
NetworkManager有自己的CLI工具:nmcli。使用nmcli用户可以查询网络连接的状态,也可以用来管理。优点:原始;语法相对简单;在CLI中使用NetworkManager很容易掌握。

配置 NetworkManager

要将随机的 MAC 地址默认地用于所有的 Wi-Fi 连接,需要创建 /etc/NetworkManager/conf.d/00-macrandomize.conf 这个文件:


[device]
wifi.scan-rand-mac-address=yes
[connection]
wifi.cloned-mac-address=stable
ethernet.cloned-mac-address=stable
connection.stable-id=${CONNECTION}/${BOOT}

然后重启 NetworkManager :

systemctl restart NetworkManager

以上配置文件中,将 cloned-mac-address 的值设置为 stable 就可以在每次 NetworkManager 激活连接的时候都生成相同的 MAC 地址,但连接时使用不同的 MAC 地址。如果要在每次激活连接时也获得随机的 MAC 地址,需要将 cloned-mac-address 的值设置为 random。

设置为 stable 可以从 DHCP 获取相同的 IP 地址,也可以让 Wi-Fi 的 强制主页 (captive portal)根据 MAC 地址记住你的登录状态。如果设置为 random

,在每次连接的时候都需要重新认证(或者点击“我同意”),在使用机场 Wi-Fi 的时候会需要到这种 random 模式。可以在这篇 NetworkManager 的 博客文章 中参阅到有关使用 nmcli 从终端配置特定连接的详细说明。

使用 ip link 命令可以查看当前的 MAC 地址,MAC 地址将会显示在 ether 一词的后面


$ ip link
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: enp2s0: <NO-C

rUBJaBNSS

ARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000 link/ether 52:54:00:5f:d5:4e brd ff:ff:ff:ff:ff:ff 3: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000 link/ether 52:54:00:03:23:59 brd ff:ff:ff:ff:ff:ff

什么时候不能随机化 MAC 地址

在某些情况下确实需要能被追踪到。例如在家用网络中,可能需要将路由器配置为对电脑分配一致的 IP 地址以进行端口转发;再例如公司的雇主可能需要根据 MAC 地址来提供 Wi-Fi 服务,这时候就需要进行追踪。要更改特定的 Wi-Fi 连接,请使用 nmcli 查看 NetworkManager 连接并显示当前设置:


$ nmcli c | grep wifi
Amtrak_WiFi 5f4b9f75-9e41-47f8-8bac-25dae779cd87 wifi --
StaplesHotspot de57940c-32c2-468b-8f96-0a3b9a9b0a5e wifi --
MyHome e8c79829-1848-4563-8e44-466e14a3223d wifi wlp1s0
...
$ nmcli c show 5f4b9f75-9e41-47f8-8bac-25dae779cd87 | grep cloned
802-11-wireless.cloned-mac-address: --
$ nmcli c show e8c79829-1848-4563-8e44-466e14a3223d | grep cloned
802-11-wireless.cloned-mac-address: stable

这个例子在 Amtrak 使用完全随机 MAC 地址(使用默认配置)和 MyHome 的永久 MAC 地址(使用 stable 配置)。永久 MAC 地址是在硬件生产的时候分配到网络接口上的,网络管理员能够根据永久 MAC 地址来查看 设备的制造商 ID 。

更改配置并重新连接活动的接口:


$ nmcli c modify 5f4b9f75-9e41-47f8-8bac-25dae779cd87 802-11-wireless.cloned-mac-address random
$ nmcli c modify e8c79829-1848-4563-8e44-466e14a3223d 802-11-wireless.cloned-mac-address permanent
$ nmcli c down e8c79829-1848-4563-8e44-466e14a3223d
$ nmcli c up e8c79829-1848-4563-8e44-466e14a3223d
$ ip link
...

你还可以安装 NetworkManager-tui ,就可以通过可视化界面菜单来编辑连接。

当你走在路上时,你要留意周围的环境,并警惕可能的危险。同样,在使用公共互联网资源时也要注意你自己的可追踪性。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux使用NetworkManager随机生成你的MAC地址

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux使用NetworkManager随机生成你的MAC地址

今时今日,无论在家里的沙发上,还是在外面的咖啡厅,只要打开笔记本电脑,连上 Wi-Fi,就能通过网络与外界保持联系。但现在的 Wi-Fi 热点们大都能够通过 每张网卡对应的唯一 MAC 地址 来追踪你的设备。下面就来看一下如何避免被追踪。
2022-06-04

Linux自动生成MAC地址的方法有哪些

本篇内容介绍了“Linux自动生成MAC地址的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  Linux下生成MAC地址的方法有
2023-06-12

如何在Linux中使用Shell 生成随机数和随机字符串

本篇文章为大家展示了如何在Linux中使用Shell 生成随机数和随机字符串,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。什么是Linux系统Linux是一种免费使用和自由传播的类UNIX操作系统,
2023-06-09

使用numpy生成随机数的方法

numpy是一个在Python中非常常用的科学计算库,它提供了许多快速、高效的数值操作和数据处理函数。在numpy中,我们可以很方便地生成随机数。本文将介绍numpy中生成随机数的方法,并给出具体的代码示例。numpy中生成随机数的函数主
使用numpy生成随机数的方法
2024-01-26

使用numpy生成随机数的实用技巧

numpy生成随机数的实用技巧,需要具体代码示例随机数在数据科学和机器学习中有广泛的应用。在Python中,numpy是一个被广泛使用的数学库,提供了丰富的随机数生成函数。本文将介绍numpy库中生成随机数的实用技巧,并给出具体的代码示例
使用numpy生成随机数的实用技巧
2024-01-26

使用java怎么生成不同的随机数

这期内容当中小编将会给大家带来有关使用java怎么生成不同的随机数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3.
2023-06-14

使用numpy生成随机数的简易教程

教你使用numpy生成随机数numpy是Python的一个数学库,提供了丰富的数值处理函数和工具。其中一项常用功能是生成随机数的能力,这对于模拟实验、数据分析以及机器学习等领域非常有用。本文将向你介绍如何使用numpy生成随机数,并提供
使用numpy生成随机数的简易教程
2024-01-26

使用python3来生成安全的随机密码

最近1年自学了python,发现python的应用场景挺多,自己百度了加自己稍微修改,写了段可以随时生成指定长度的安全随机密码#C:\Python36#coding=utf-8import stringfrom random import
2023-01-31

使用Python生成随机密码的示例分享

生成随机密码这件事情用python来干确实相当的方便,优美的string方法加上choice简直是绝配 make_password.py###简单几行代码执行即可生成记不住的字符串###$ python make_passwd.pyDLrw
2022-06-04

虚拟机复制后启动前是如何重新生成网卡MAC地址的

虚拟机复制后启动前是如何重新生成网卡MAC地址的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 我们在使用虚拟机软件(如VMware Workstation、Virtua
2023-06-04

用Linux命令行生成随机密码的方法有哪些

这篇文章主要介绍“用Linux命令行生成随机密码的方法有哪些”,在日常操作中,相信很多人在用Linux命令行生成随机密码的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”用Linux命令行生成随机密码
2023-06-16

使用java在生成一个指定范围的随机整数

使用java在生成一个指定范围的随机整数?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web
2023-06-14

使用java怎么实现每次生成不重复的随机数

使用java怎么实现每次生成不重复的随机数?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3
2023-06-14

使用Go语言文档中的crypto/rand.Read函数生成随机数

使用Go语言生成随机数Go语言是一种现代化、简洁和高效的编程语言,提供了许多内置库,可用于生成随机数。其中,crypto/rand包提供了一系列函数来生成安全的随机数。在本文中,我们将通过使用crypto/rand包中的Read函数来生成随
使用Go语言文档中的crypto/rand.Read函数生成随机数
2023-11-04

如何使用Python生成基于马尔可夫链的伪随机文本

这篇文章给大家介绍如何使用Python生成基于马尔可夫链的伪随机文本,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先看一下来自Wolfram的定义马尔可夫链是随机变量{X_t}的集合(t贯穿0,1,...),给定当前
2023-06-02

使用C++实现工资管理中的随机教师信息生成功能

这篇文章主要介绍了使用C++实现工资管理中的随机教师信息生成功能,想要做一个教师工资管理系统,就必须得准备好数据,但是这些数据如果用手一行一行地敲,那么工作量是非常大的,因此,我就产生了用C语言实现直接生成大量的教师基本信息的想法,需要的朋友可以参考下
2023-05-19

java不同版本在多线程中使用随机数生成器的实现

本文主要介绍了java不同版本在多线程中使用随机数生成器的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-15

编程热搜

目录