Home System Tutorial LINUX How to Randomize Your WiFi MAC Address in Ubuntu 16.04

How to Randomize Your WiFi MAC Address in Ubuntu 16.04

Mar 09, 2024 am 10:43 AM
linux linux tutorial Red Hat linux system linux command linux certification red hat linux linux video

Ubuntu 16.04 下随机化你的 WiFi MAC 地址的方法

The flaw of this design is the uniqueness. The unchanged MAC address can be used to track you. Connected to Starbucks WiFi? OK, noticed. On the London Underground? Record that too.

If you have ever entered your real name on a WiFi verification page, you have associated yourself with this MAC address. Without carefully reading the licensing terms of service, you could assume that free WiFi at airports is profiting from the sale of so-called “customer analytics data” (your personal information). For sale to hotels, restaurants, and anyone who wants to get to know you.

I didn't want the information to be logged and sold to multiple companies, so I spent a few hours coming up with a solution.

MAC address may not always be the same

Fortunately, a pseudo MAC address can be randomly generated without disconnecting the network.

I want to randomly generate my MAC address, but there are three requirements:

  1. MAC addresses are different in different networks. This means that my MAC address at Starbucks and on the London Underground network are not the same, making it impossible to tie my activity across different service providers.
  2. The MAC address needs to be changed frequently so no one on the network knows I'm the same person who passed here 75 times last year.
  3. The MAC address should remain unchanged throughout the day. When the MAC address changes, most networks will disconnect you and then have to go to a verification page to log in again - which is annoying.
OperationNetwork Manager

My first attempt was to use a tool called macchanger, but it failed. Because Network ManagerNetworkManager will restore the default MAC address according to its own settings.

I learned that Network Manager 1.4.1 or above can automatically generate random MAC addresses. If you are using Ubuntu version 17.04, you can do this based on this configuration file. But this doesn't quite meet my three requirements (you have to be between the two options randomrandom and stablestable Choose one, but there is no option to keep it the same for one day)

Because I am using Ubuntu 16.04 and the network manager version is 1.2, I cannot directly use the new feature of the higher version. Maybe the network manager has some randomization method support, but I didn't succeed. So I wrote a script to achieve this.

Fortunately, Network Manager 1.2 allows emulation of MAC addresses. You can see the option ‘Edit Connection’ in the connected network.

Network Manager also supports hooking - any script located in /etc/NetworkManager/dispatcher.d/pre-up.d/ will be executed before the network connection is established.

Assign randomly generated pseudo MAC address

I want to generate new random MAC address based on network ID and date. We can use the network manager's command line tool nmcli to display all available networks:

ifconfig
> nmcli connection
NAME UUID TYPE DEVICE
Gladstone Guest 618545ca-d81a-11e7-a2a4-271245e11a45 802-11-wireless wlp1s0
DoESDinky 6e47c080-d81a-11e7-9921-87bc56777256 802-11-wireless --
PublicWiFi 79282c10-d81a-11e7-87cb-6341829c2a54 802-11-wireless --
virgintrainswifi 7d0c57de-d81a-11e7-9bae-5be89b161d22 802-11-wireless --
Copy after login

Because each network has a unique identifier (UUID), to implement my plan, I concatenated the UUID and date together, and then used MD5 to generate the hash value:

ifconfig
# eg 618545ca-d81a-11e7-a2a4-271245e11a45-2017-12-03
> echo -n "${UUID}-$(date +%F)" | md5sum
53594de990e92f9b914a723208f22b3f -
Copy after login

The generated result can replace the last eight bytes of the MAC address.

It is worth noting that the first byte 02 means that this address is self-specified. In fact, the first three bytes of the real MAC address are determined by the manufacturer, for example b4:b6:76 represents Intel.

It is possible that some routers will reject the MAC address they specify, but I have not encountered this situation.

Every time you connect to a network, this script will use nmcli to specify a randomly generated pseudo MAC address.

Finally, I checked the output of ifconfig and I found that the MAC address HWaddr had become a randomly generated address (simulating Intel's) instead of my real MAC address.

> ifconfig
wlp1s0 Link encap:Ethernet HWaddr b4:b6:76:45:64:4d
inet addr:192.168.0.86 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::648c:aff2:9a9d:764/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12107812 errors:0 dropped:2 overruns:0 frame:0
TX packets:18332141 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:11627977017 (11.6 GB) TX bytes:20700627733 (20.7 GB)
Copy after login
script

The complete script can also be viewed on Github.

Update: Use your own designated MAC address to avoid conflict with the real Intel address. Thanks @_fink


The above is the detailed content of How to Randomize Your WiFi MAC Address in Ubuntu 16.04. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1666
14
PHP Tutorial
1273
29
C# Tutorial
1252
24
Linux Architecture: Unveiling the 5 Basic Components Linux Architecture: Unveiling the 5 Basic Components Apr 20, 2025 am 12:04 AM

The five basic components of the Linux system are: 1. Kernel, 2. System library, 3. System utilities, 4. Graphical user interface, 5. Applications. The kernel manages hardware resources, the system library provides precompiled functions, system utilities are used for system management, the GUI provides visual interaction, and applications use these components to implement functions.

How to check the warehouse address of git How to check the warehouse address of git Apr 17, 2025 pm 01:54 PM

To view the Git repository address, perform the following steps: 1. Open the command line and navigate to the repository directory; 2. Run the "git remote -v" command; 3. View the repository name in the output and its corresponding address.

How to run java code in notepad How to run java code in notepad Apr 16, 2025 pm 07:39 PM

Although Notepad cannot run Java code directly, it can be achieved by using other tools: using the command line compiler (javac) to generate a bytecode file (filename.class). Use the Java interpreter (java) to interpret bytecode, execute the code, and output the result.

How to run sublime after writing the code How to run sublime after writing the code Apr 16, 2025 am 08:51 AM

There are six ways to run code in Sublime: through hotkeys, menus, build systems, command lines, set default build systems, and custom build commands, and run individual files/projects by right-clicking on projects/files. The build system availability depends on the installation of Sublime Text.

What is the main purpose of Linux? What is the main purpose of Linux? Apr 16, 2025 am 12:19 AM

The main uses of Linux include: 1. Server operating system, 2. Embedded system, 3. Desktop operating system, 4. Development and testing environment. Linux excels in these areas, providing stability, security and efficient development tools.

laravel installation code laravel installation code Apr 18, 2025 pm 12:30 PM

To install Laravel, follow these steps in sequence: Install Composer (for macOS/Linux and Windows) Install Laravel Installer Create a new project Start Service Access Application (URL: http://127.0.0.1:8000) Set up the database connection (if required)

git software installation git software installation Apr 17, 2025 am 11:57 AM

Installing Git software includes the following steps: Download the installation package and run the installation package to verify the installation configuration Git installation Git Bash (Windows only)

How to use sublime shortcut keys How to use sublime shortcut keys Apr 16, 2025 am 08:57 AM

Sublime Text provides shortcuts to improve development efficiency, including commonly used (save, copy, cut, etc.), editing (indentation, formatting, etc.), navigation (project panel, file browsing, etc.), and finding and replacing shortcuts. Proficiency in using these shortcut keys can significantly improve Sublime's efficiency.

See all articles