Thay đổi địa chỉ MAC trong OS X Yosemite


34

Tôi thường thay đổi địa chỉ MAC của mình bằng các lệnh sau:

# Get a New MAC Address
openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
# Changing the MAC Address
sudo ifconfig en0 ether d4:33:a3:ed:f2:12

Khi tôi nhập:

ifconfig en0 |grep ether

Tôi vẫn nhận được địa chỉ MAC cũ :( - Ai có thể giúp đỡ? Tôi rất thích có một tập lệnh hoặc hệ thống để tự động thay đổi nó khi khởi động hệ thống.


3
Bạn đã thử SpaggerMAC ( pip install SpoofMAC) chưa? Điều này vẫn hoạt động trên Yosemite cho tôi.
L3viathan

Câu trả lời:


35

Một vấn đề có thể xảy ra là các MAC được tạo ngẫu nhiên sẽ thất bại một nửa thời gian. Byte đầu tiên của địa chỉ MAC cần phải chẵn (ví dụ: kết thúc bằng 0, 2, 4, 6, 8, A, C, E).

Vì vậy, ví dụ: 3b: 92: 22: cf: 55: 7e sẽ không hoạt động vì '3b' là số lẻ. Xem bài viết địa chỉ MAC của Wikipedia để biết chi tiết (chẵn = unicast, lẻ = multicast).

Để tránh vấn đề này, bạn có thể chỉnh sửa một chút lệnh sed-MAC ngẫu nhiên của mình để buộc nibble thứ hai thành 0.

openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/./0/2; s/.$//'

Kết hợp điều này với câu trả lời của hrbrmstr có hiệu quả với tôi:

sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport --disassociate
sudo ifconfig en0 ether $(openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/./0/2; s/.$//')
networksetup -detectnewhardware

2
Phương pháp này làm việc cho tôi. Điều này cần phải đi cao hơn trong danh sách câu trả lời.
Feng Huo

Một điều để làm cho nó ngắn hơn một chút: sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z; sudo ifconfig en0 ether a0$(openssl rand -hex 5 | sed 's/\(..\)/:\1/g'); networksetup -detectnewhardware Nó làm cho nó ít ngẫu nhiên hơn một chút.
Kevin Lyda

27

Bạn cần tách liên kết thiết bị trước khi thay đổi địa chỉ MAC. Đối với en0, nó sẽ là:

sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z
sudo ifconfig en0 ether d4:33:a3:ed:f2:12
networksetup -detectnewhardware

Tôi đã thử điều này, và nó vẫn không làm việc cho tôi.
Feng Huo

@FengHuo nó làm việc cho tôi, trên 10.11.2 (mặc dù tôi đã sử dụng một địa chỉ MAC khác nhau)
Mint

Hoạt động vào ngày 10.11.6
Paweł Szczur

2
Bạn chỉ làm cho kỳ nghỉ gia đình của chúng tôi thú vị hơn nhiều cho cha mẹ. Phải đưa Apple TV lên mạng của khách sạn đằng sau màn hình đăng nhập và giả mạo địa chỉ MAC có tác dụng quyến rũ :)
stevenhaddox

6

Ferros đã tạo ra một công cụ nút ngọt ngào để làm việc này https://github.com/feross/spagger

Anh ta cũng có phiên bản Python https://github.com/feross/SpoustMAC


5
Cài đặt node.js để làm một cái gì đó có thể được thực hiện bằng cách chạy đơn giản ifconfigcó vẻ như quá mức cần thiết ...
nohillside

2
Kiểu như đi mà không nói rằng đó là một giải pháp cho người dùng nút. Anh ta cũng có một phiên bản Python (được cài đặt sẵn trên máy Mac) github.com/feross/SpoustMAC
Tyler Buchea

ifconfigkhông phải là đa nền tảng; rằng "nút quá mức" hoạt động trên Windows, Linux và macOS. Plus $ spoof resetthì ngược lại, trong 2 từ.
fregante

4

Lệnh này hoạt động tốt với tôi, tập lệnh ngẫu nhiên tôi đã lấy từ câu trả lời này: https://serverfault.com/a/299564 từ MadHatter.

sudo ifconfig en0 ether $(perl -e 'for ($i=0;$i<5;$i++){@m[$i]=int(rand(256));} printf "02:%X:%X:%X:%X:%X\n",@m;') && sudo ifconfig en0 down && sudo ifconfig en0 up

1

Dùng cái này

sudo ifconfig en0 lladdr d4: 33: a3: ed: f2: 12

Xem trang hướng dẫn của ifconfig

người đàn ông ifconfig


0

Đây là đóng góp của tôi để thay đổi địa chỉ MAC của bạn: https://gist.github.com/vinyll/b511159cce2d25edafe78403749088ca

#/bin/sh

# Instructions:
# 1. Copy this script locally and run the following `chmod +x mac-address-spoofer.sh`
# 2. Later, run the following: `./mac-address.spoofer.sh` and see your MAC address changing.

echo "origin MAC address: " `sudo ifconfig en0 ether | grep ether`
sudo ifconfig en0 ether `openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'`
echo "new MAC address: " `sudo ifconfig en0 ether | grep ether`

-1

Những công việc này!

Các bước:

  1. Lấy địa chỉ MAC của Apple TV của bạn và viết nó xuống. Nó được tìm thấy trong Cài đặt mạng.

  2. Lấy địa chỉ MAC của MacBook (phiên bản hệ điều hành Yosemite). Nhập "ifconfig" trong cửa sổ terminal. Nó sẽ nằm trong phần "En0".

  3. Cắt / Dán đoạn sau (thay thế chữ X bằng địa chỉ MAC Apple TV của bạn) vào cửa sổ tạm thời:

đổi MAC OSX thành Apple TV MAC

sudo / System / L Library / PrivateFrameworks / Apple80211.framework / Resource / airport -z

sudo ifconfig en0 ether XX: XX: XX: XX: XX: XX

Networksetup -detectnewhardware

  1. Nhập mật khẩu của bạn nếu được nhắc và lặp lại bước 3, nếu cần **

  2. Kết nối lại với khách sạn không dây với MAC của bạn (không phải Apple TV) và chấp nhận các điều kiện dịch vụ.

  3. Cắt / dán đoạn sau vào cửa sổ terminal (thay thế chữ Y bằng địa chỉ MAC OSX của bạn)

thay đổi địa chỉ MAC trở lại ban đầu

sudo / System / L Library / PrivateFrameworks / Apple80211.framework / Resource / airport -z

sudo ifconfig en0 ether YY: YY: YY: YY: YY: YY

Networksetup -detectnewhardware

  1. Kết nối với khách sạn không dây với Apple TV của bạn.

1
Làm thế nào điều này liên quan đến vấn đề được mô tả trong câu hỏi?
nohillside

-1
sudo ifconfig en0 ether `openssl rand -hex 5|perl -nE '$s.=join":",/../g}{say"02:$s"'`&& sudo ifconfig en0 down && sudo ifconfig en0 up

Tôi thông minh hơn nhiều :)


Điều gì làm cho câu trả lời của bạn thông minh hơn? Không thông minh hơn có nghĩa là gì trong bối cảnh này?
Michael Ozeryansky
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.