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


13

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

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

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

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


1
VMアドレスなどのMACアドレスの変更には、多くの要因が関係しています。あなたは、MACを変更したい理由、それが最善の解決策(見つけるのを助けるかもしれない説明することができmeta.stackexchange.com/questions/66377/what-is-the-xy-problem
ポール

@ポールさまざまなプログラムがあなたの活動を追跡する方法、それを行う方法、およびそれを避ける方法を学ぼうとしています。例:IP、Cookie、ブラウザフィンガープリントなど。次に、いくつかのプログラムがMACアドレスの変更にどのように応答するかを確認します。
HappyDeveloper

回答:


15

VirtualBoxの高度なネットワーク設定でこれを行う場合、「正しい」方法を使用して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 dev番号が保持されます。

最初にここで編集してからVMをシャットダウンし、次にVB MAC設定を編集してから起動するのがおそらく最良のシーケンスです。


ファイルを手動で編集してもうまくいきませんでしたが、このファイルをすべて削除でき、再起動後に自動的に生成されることを読んだことを思い出しました。そして、それは実際に働いた:)ファイルの場所を示すために+1。
エデュアルドルカ

@Paulなぜ、ある物理マシンから同じタイプ(ただし、異なるMACアドレス)の別のマシンにLinuxシステムのクローンを作成でき、そのようなトラブルに遭遇しないのですか?
アーニー

1
@arneyこれは、MACアドレスが変更されるだけでなく、まったく異なるNICであるためだと思います。Paulが言及しているファイルでは、次のことがわかりますATTR{dev_id}=="0x0"。これは異なるはずです。
マリオDS

@arneyあなたが正しいアーニーだと思う、nicが存在しない場合、udevルールは適用されません。これは、新しいマシンの場合と同じです。エラーがなければ、言うのは難しいです。ただし、udevの場合、永続性ルールを削除すると役立ちます。
ポール

8

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

ターミナルを開きます(キーボードショートカット:ctrl+ alt+ t

  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

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


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

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

@DownVoter:私の答えに問題がある場合、コメントを改善するためにコメントは大いに役立ちます!Tks。
ズール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.