Cara yang tepat untuk mengubah alamat MAC di VM linux?

13

Saya mencoba mengubah alamat MAC di VM ubuntu (virtualbox), tetapi setelah itu melemparkan banyak kesalahan saat boot, dan kemudian saya tidak memiliki koneksi internet.

Kemudian saya melihat bahwa antarmuka diubah menjadi eth1, jadi saya mengedit / etc / network / interfaces untuk mengubah eth0 ke eth1, reboot (tidak tahu cara me-restart jaringan), dan boot sekarang lebih cepat dan internet bekerja dengan baik.

Tetapi sekarang setelah setiap kali saya masuk, saya mendapatkan 1 atau 2 pesan kesalahan yang tidak mengatakan apa-apa, mereka hanya bertanya apakah saya ingin melaporkannya.

Jadi saya bertanya-tanya, apakah ada cara yang tepat untuk mengubah alamat MAC, untuk menghindari masalah ini?

HappyDeveloper
sumber
1
Ada sejumlah faktor yang terlibat dalam mengubah alamat mac, dalam VM atau sebaliknya. Bisakah Anda menjelaskan mengapa Anda ingin mengganti mac, mungkin membantu menemukan solusi terbaik ( meta.stackexchange.com/questions/66377/what-is-the-xy-problem )
Paul
@ Paul Saya mencoba mempelajari bagaimana berbagai program melacak aktivitas Anda, bagaimana melakukannya, dan bagaimana menghindarinya. Misalnya: IP, cookie, sidik jari peramban, dll. Sekarang saya ingin melihat bagaimana beberapa program merespons perubahan alamat MAC.
HappyDeveloper

Jawaban:

15

Anda sangat mungkin menggunakan metode "benar" untuk mengubah alamat MAC, jika Anda melakukan ini dalam pengaturan jaringan lanjutan di VirtualBox. Namun, perubahan sementara seperti pada jawaban lain oleh Zuul mungkin yang terbaik untuk tujuan Anda, karena itu akan mengubah MAC tanpa menyebabkan terlalu banyak masalah tambahan - namun itu tidak akan selamat dari reboot.

Mengubahnya di VirtualBox tentu saja akan selamat dari reboot, tetapi masalah yang Anda hadapi adalah udev. Ini adalah proses yang melihat perangkat keras dan mengatur perangkat keras itu /dev(atau apa pun yang mungkin perlu dilakukan). Salah satu hal yang dilakukan secara default adalah mencoba mempertahankan nama yang persisten untuk kartu antarmuka jaringan [nics]. Ini karena ketika Anda memiliki banyak nics, Anda ingin mereka selalu memiliki nama ethX yang sama, sehingga /etc/network/interfaceskonfigurasi Anda menargetkan nic yang tepat setiap boot. OS tidak dapat mengandalkan mereka hanya secara fisik di tempat yang sama setiap kali - Anda dapat memindahkannya misalnya, atau beberapa sistem tidak melaporkan koneksi fisik mereka dalam urutan yang sama setiap boot.

Jadi udevgunakan aturan kegigihan berdasarkan alamat MAC kartu jaringan. Jika memiliki entri untuk eth1 dengan alamat MAC yang diketahui dan sebuah kartu muncul dengan alamat MAC yang berbeda, itu akan mengalokasikan nama perangkat ethX yang berbeda ke antarmuka.

Untuk mengatasi ini, Anda hanya perlu memperbarui udevaturan. Sunting:

vi /etc/udev/rules.d/70-persistent-net.rules

dan cari baris dengan MAC Anda saat ini:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="11:22:33:44:55:66", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Jika Anda mengubah alamat MAC di sini ke yang baru yang Anda pilih dalam pengaturan VirtualBox, maka itu akan mempertahankan nomor etX dev boot berikutnya.

Urutan terbaik mungkin adalah mengeditnya di sini terlebih dahulu, kemudian mematikan VM, lalu mengedit pengaturan VB MAC, kemudian boot.

Paul
sumber
Mengedit file secara manual tidak berhasil untuk saya, tetapi saya ingat pernah membaca bahwa Anda dapat menghapus file ini bersama-sama dan setelah mem-boot ulang, itu dihasilkan secara otomatis. Dan itu benar-benar bekerja :) +1 untuk menunjukkan lokasi file.
Eduard Luca
@ Paul Mengapa kemudian, bahwa saya dapat mengkloning sistem Linux dari satu mesin fisik ke jenis lain yang sama (tetapi alamat MAC berbeda) dan tidak mengalami masalah seperti itu?
arney
1
@arney Saya pikir itu karena NIC yang berbeda sama sekali, tidak hanya perubahan alamat MAC. Dalam file yang disebutkan oleh Paulus, Anda dapat melihat: ATTR{dev_id}=="0x0". Ini pasti berbeda.
MarioDS
@arney Saya pikir Anda benar Arney, jika nic tidak ada, maka aturan udev tidak akan diterapkan. Ini sama seperti jika itu adalah mesin baru. Tanpa kesalahan itu sulit dikatakan. Tetapi menghapus aturan kegigihan akan membantu jika itu udev.
Paul
8

Anda dapat mengubah alamat MAC dengan 4 langkah sederhana menggunakan ifconfig :

Buka terminal (pintasan keyboard: ctrl+ alt+ t)

  1. Temukan alamat mac saat ini:

    ifconfig | grep HWaddr
    
  2. Matikan antarmuka (dengan asumsi eth0untuk langkah selanjutnya) :

    ifconfig eth0 down
    
  3. Setel alamat mac baru:

    ifconfig eth0 hw ether 00:1E:68:35:FF:91
    
  4. Bendera menyebabkan antarmuka diaktifkan:

    ifconfig eth0 up
    

Sekarang Anda dapat memeriksa kembali alamat mac antarmuka Anda:

ifconfig eth0 |grep HWaddr

Catatan: Anda dapat memilih alamat heksadesimal 48 bit sebagai alamat MAC Anda.


Untuk tujuan kelengkapan, Anda dapat menggabungkan langkah 2 dan 3 menjadi satu baris:

ifconfig eth0 down hw ether 00:00:00:00:00:01
Zuul
sumber
@DownVoter: Jika ada masalah dengan jawaban saya, komentar akan sangat membantu saya memperbaikinya! Tks.
Zuul