web-dev-qa-db-ja.com

Linux VMでMACアドレスを変更する適切な方法は?

Ubuntu VM(virtualbox))でMACアドレスを変更しようとしましたが、その後、起動中に多くのエラーが発生し、インターネットに接続できませんでした。

次に、インターフェースの名前がeth1に変更されたのを確認したので、/ etc/network/interfacesを編集してeth0をeth1に変更し、リブートして(ネットワークを再起動する方法がわからなかった)、起動が速くなり、インターネットが正常に機能するようになりました。

しかし、ログインするたびに、何も言わない1つまたは2つのエラーメッセージが表示され、報告するかどうかを尋ねるだけです。

これらの問題を回避するためにMACアドレスを変更する適切な方法はありましたか?

13
HappyDeveloper

VirtualBoxの高度なネットワーク設定でMACアドレスを変更している場合は、「正しい」方法を使用してMACアドレスを変更している可能性があります。ただし、Zuulによる他の回答のような一時的な変更は、あまり多くの問題を引き起こさずにMACを変更するため、目的に最適な場合がありますが、再起動後は無効になります。

VirtualBoxで変更しても、もちろん再起動後も存続しますが、直面している問題はudevにあります。これは、ハードウェアを確認し、そのハードウェアを/dev(または他に実行する必要があるもの)に設定するプロセスです。デフォルトで行うことの1つは、ネットワークインターフェイスカード[nics]の永続的な名前を維持することです。これは、複数のNICがある場合、それらが常に同じethX名を持ち、/etc/network/interfaces構成が起動ごとに適切なNICをターゲットにするようにするためです。 OSは、物理的に毎回同じ場所にいるだけでそれらに依存することはできません。たとえば、それらを移動したり、システムによっては、起動するたびに同じ順序で物理接続を報告しなかったりします。

そのため、udevは、ネットワークカードのMACアドレスに基づく永続化ルールを使用します。既知のMACアドレスを持つeth1のエントリがあり、カードが別のMACアドレスで表示される場合、インターフェイスに別のethXデバイス名を割り当てます。

これに対抗するには、udevルールを更新するだけです。編集:

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

そして、現在のMACの行を探します。

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アドレスをVirtualBox設定で選択した新しいアドレスに変更すると、次回の起動時に同じethX開発番号が保持されます。

最善の順序は、まずここで編集してからVMをシャットダウンし、次にVB MAC設定を編集してから起動することです。

15
Paul

ifconfig を使用して、4つの簡単な手順でMACアドレスを変更できます。

端末を開きます(キーボードショートカット: ctrlaltt

  1. 現在のMACアドレスを見つけます。

    ifconfig | grep HWaddr
    
  2. インターフェイスをシャットダウンします (それがeth0次のステップ)

    ifconfig eth0 down
    
  3. 新しいMACアドレスを設定します。

    ifconfig eth0 hw ether 00:1E:68:35:FF:91
    
  4. フラグにより​​、インターフェースがアクティブ化されます。

    ifconfig eth0 up
    

これで、インターフェースのMACアドレスを再確認できます。

ifconfig eth0 |grep HWaddr

注:MACアドレスとして48ビットの16進アドレスを選択できます。


完全を期すために、ステップ2と3を1行に組み合わせることができます。

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