Linux VM'de MAC adresini değiştirmenin doğru yolu nedir?


13

Bir ubuntu VM'de (sanal kutu) MAC adresini değiştirmeye çalıştım, ancak bundan sonra önyükleme sırasında birçok hata attı ve sonra internet bağlantım yoktu.

Daha sonra arayüzün eth1 olarak yeniden adlandırıldığını gördüm, bu yüzden eth0'ı eth1'e değiştirmek için / etc / network / arayüzlerini düzenledim, yeniden başlattım (ağı nasıl yeniden başlatacağını bilmiyordum) ve önyükleme artık daha hızlıydı ve internet iyi çalıştı.

Ama şimdi her giriş yaptığımda, hiçbir şey söylemeyen 1 veya 2 hata mesajı alıyorum, sadece bunları bildirmek istersem bana soruyorlar.

Merak ediyordum, bu sorunları önlemek için MAC adresini değiştirmenin uygun bir yolu var mı?


1
Bir Mac adresinde, bir VM'de veya başka bir şekilde değiştirilmeyle ilgili bir dizi faktör vardır. Mac'i neden değiştirmek istediğinizi açıklayabilir misiniz, en iyi çözümü bulmanıza yardımcı olabilir ( meta.stackexchange.com/questions/66377/what-is-the-xy-problem )
Paul

@ Paul Farklı programların etkinliğinizi nasıl izlediğini, nasıl yapılacağını ve nasıl önleneceğini öğrenmeye çalışıyorum. Örn: IP, çerezler, tarayıcı parmak izi, vb. Şimdi bazı programların bir MAC adres değişikliğine nasıl yanıt verdiğini görmek istiyorum.
HappyDeveloper

Yanıtlar:


15

VirtualBox'ın gelişmiş ağ ayarlarında bunu yapıyorsanız, MAC adresini değiştirmek için büyük olasılıkla "doğru" yöntemi kullanıyorsunuzdur. Bununla birlikte, Zuul'un diğer cevabındaki gibi geçici bir değişiklik, MAC için çok fazla ek soruna neden olmadan değiştireceğinden, amaçlarınız için en iyisi olabilir - ancak yeniden başlatmadan kurtulamaz.

VirtualBox içinde değiştirmek elbette yeniden başlatma hayatta kalacak, ama karşılaştığınız sorun udev. Bu, donanıma bakan ve donanıma giren /dev(veya yapılması gerekenler) süreçtir . Varsayılan olarak yaptığı şeylerden biri, ağ arabirim kartları [nics] için kalıcı adları korumaya çalışmaktır. Bunun nedeni, birden fazla nics'e sahip olduğunuzda, her zaman aynı ethX adına sahip olmalarını istediğinizdir, böylece /etc/network/interfacesyapılandırmanız her önyüklemeyi doğru şekilde hedefler. İşletim sistemi her seferinde fiziksel olarak aynı noktada olmalarına güvenemez - örneğin onları hareket ettirebilirsiniz veya bazı sistemler fiziksel bağlantılarını her önyüklemede aynı sırayla rapor etmez.

Bu nedenle udevağ kartının MAC adresini temel alan kalıcılık kurallarını kullanır. Bilinen bir MAC adresine sahip eth1 için bir girişi varsa ve farklı bir MAC adresine sahip bir kart görünürse, arayüze farklı bir ethX cihaz adı tahsis edecektir.

Buna karşı koymak için sadece udevkuralları güncellemeniz gerekir . Düzenle:

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

ve mevcut MAC'inizle hattı arayın:

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

MAC adresini burada VirtualBox ayarlarında seçtiğiniz yeni adresle değiştirirseniz, sonraki önyüklemede aynı ethX dev numarasını tutacaktır.

En iyi dizi muhtemelen önce burada düzenlemek, ardından VM'yi kapatmak, sonra VB MAC ayarını düzenlemek ve ardından önyükleme yapmak olacaktır.


Dosyayı manuel olarak düzenlemek benim için işe yaramadı, ancak bu dosyayı tamamen kaldırabileceğinizi ve yeniden başlattıktan sonra otomatik olarak oluşturulduğunu hatırladım. Ve bu aslında çalıştı :) +1 dosya konumunu göstermek için.
Eduard Luca

@Paul O zaman neden bir Linux sistemini bir fiziksel makineden aynı tipte (ancak farklı MAC adresleri) diğerine klonlayabiliyorum ve böyle bir sorunla karşılaşamıyorum?
arney

1
@arney Bunun nedeni sadece MAC adresi değil, tamamen farklı bir NIC olması . Paul tarafından belirtilen dosyada, şunları görebilirsiniz: ATTR{dev_id}=="0x0". Bu farklı olmak zorunda.
MarioDS

@arney haklı olduğunu düşünüyorum Arney, eğer nic yoksa, udev kuralı uygulanmayacaktır. Bu yeni bir makine gibi. Hatalar olmadan söylemek zor. Ancak, kalıcılık kurallarının silinmesi udev ise yardımcı olacaktır.
Paul

8

MAC adresini ifconfig komutunu kullanarak 4 basit adımla değiştirebilirsiniz :

Bir terminal açın (klavye kısayolu: ctrl+ alt+ t)

  1. Geçerli mac adresini bulun:

    ifconfig | grep HWaddr
    
  2. Arabirimi kapatın ( eth0sonraki adımlar için olduğu varsayılarak ) :

    ifconfig eth0 down
    
  3. Yeni mac adresini ayarlayın:

    ifconfig eth0 hw ether 00:1E:68:35:FF:91
    
  4. İşaret, arabirimin etkinleştirilmesine neden olur:

    ifconfig eth0 up
    

Şimdi arayüz mac adresinizi tekrar kontrol edebilirsiniz:

ifconfig eth0 |grep HWaddr

Not: MAC adresiniz olarak herhangi bir 48 bit onaltılık adresi seçebilirsiniz.


Tamlık sağlamak için, 2. ve 3. adımları tek bir satırda birleştirebilirsiniz:

ifconfig eth0 down hw ether 00:00:00:00:00:01

@DownVoter: Cevabımda bir sorun varsa, yorum geliştirmeme izin verecek kadar uzun bir yol kat eder! Tks.
Zuul
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.