| この記事の要点 |
|
概要
本記事では、各 OS で MACアドレス を確認する方法と、ソフトウェアで MAC アドレスを変更する方法、そして近年のプライバシー機能である MAC アドレスのランダム化について扱います。MAC アドレスは NIC に焼き込まれた識別子ですが、OS のドライバ層で送信時の MAC を書き換えられるため、表示される値と「焼き込み値」が必ずしも一致しないことを理解しておくと混乱を避けられます。MAC の内部構造は アドレッシング・識別子 配下の関連項目を参照してください。
仕組み
NIC には製造時に書き込まれた MAC アドレス (バーンインアドレス) がありますが、OS は NIC ドライバを通じて送信フレームの送信元 MAC を任意の値に上書きできます。これを MAC スプーフィング (MAC アドレス変更) と呼びます。変更は揮発的で、再起動やドライバ再読み込みで元の値に戻るのが一般的です。永続化するには各 OS のネットワーク設定 (NetworkManager, netplan, systemd-networkd など) に記述します。
また、スマートフォンや最近の PC は、Wi-Fi のアクセスポイントごとに異なるランダムな MAC を提示する「ランダム MAC アドレス」機能を標準で備えています。これは、店舗や公共 Wi-Fi が MAC アドレスを使って利用者の移動を追跡 (トラッキング) するのを防ぐためのプライバシー保護機能です。ランダム化された MAC は U/L ビットが立ったローカル管理アドレスになります。
実用例
# ===== 確認 =====
# 【Linux】
ip link show # link/ether の値が MAC
ip -br link # 簡潔表示
ifconfig eth0 | grep ether # net-tools が入っていれば
# 【Windows (cmd / PowerShell)】
getmac /v
ipconfig /all # 「物理アドレス」欄
Get-NetAdapter | Select-Object Name,MacAddress # PowerShell
# 【macOS】
ifconfig en0 | grep ether
networksetup -getmacaddress en0
# ===== 変更 (スプーフィング) =====
# 【Linux】IF を落として MAC を書き換えて戻す
sudo ip link set dev eth0 down
sudo ip link set dev eth0 address 02:11:22:33:44:55
sudo ip link set dev eth0 up
# 元の焼き込み値に戻す
sudo ip link set dev eth0 address $(ethtool -P eth0 | awk '{print $3}')
# 専用ツール macchanger を使う場合
sudo macchanger -r eth0 # ランダムな MAC に
sudo macchanger -p eth0 # 元に戻す
# 【macOS】
sudo ifconfig en0 ether 02:11:22:33:44:55
スマホでのランダム MAC は OS の Wi-Fi 設定画面 (iOS なら「プライベート Wi-Fi アドレス」、Android なら「ランダム MAC を使用」) で SSID ごとに ON/OFF を切り替えます。
主な用途
- トラブルシュート/検証: 別端末になりすまして DHCP の挙動や MAC フィルタの動作を検証する。
- プライバシー保護: 公共 Wi-Fi でのトラッキングを避けるため MAC をランダム化する。
- NIC 交換時の互換維持: 旧 NIC の MAC を新 NIC に設定し、MAC に紐づくライセンスや DHCP 予約を引き継ぐ。
- 機器の棚卸し確認: 各 OS で MAC を確認し、ネットワーク機器台帳と突き合わせる。
OS 別コマンドの比較
| OS | 確認 | 変更 |
|---|---|---|
| Linux | ip link show / ifconfig | ip link set dev IF address ... / macchanger |
| Windows | getmac /v / ipconfig /all | デバイスマネージャの詳細設定 (NetworkAddress) |
| macOS | ifconfig en0 / networksetup | ifconfig en0 ether ... |
注意点
- 変更は揮発的: ip link での変更は再起動で消える。永続化は NetworkManager/netplan 等の設定ファイルに書く。
- ローカル管理ビットを立てる: 任意に設定する MAC は
02:始まりのようにローカル管理アドレスにするのが作法。既存機器の MAC と衝突させない。 - 悪用との線引き: MAC 変更は MAC フィルタの回避や他端末へのなりすましにも使える。自分の管理する機器・許可された検証に限る。
- DHCP 予約への影響: MAC を変えると DHCP の固定割り当てや認証が外れ、IP が変わったり接続できなくなることがある。
- ランダム化で MAC フィルタが効かない: 端末側のランダム MAC が ON だと、許可リスト方式の MAC フィルタで弾かれる。必要なら該当 SSID だけ OFF にする。
関連リンク
子ページはありません
- MACアドレスの構造
- MACアドレスフィルタリング
- MACアドレスの確認・変更方法
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Git pushした変更の取消し|revert・履歴変更と保護の注意点 2026-10-15 23:49:01
- Gitでローカルを戻す前に|reset・restoreの違いと退避範囲 2026-10-15 23:49:01
- Git rebaseの使い方|対象範囲・競合解決・pushの判断 2026-10-15 22:50:59
- Git pullの使い方|取込み先・ff-only・競合とstashの注意点 2026-10-15 22:50:59
- Git pushの使い方|送信先・タグ・force-with-leaseの条件 2026-10-15 22:12:47
- Git remoteの設定・確認・削除|SSH URLとfetch/pushの違い 2026-10-15 22:12:47
- Gitリモートリポジトリの作成|初回push・既存履歴・mirrorの注意 2026-10-15 15:48:16
- Gitのuser.name・user.email設定|local/global・確認と過去履歴の注意 2026-10-15 15:30:07
- LinuxにGitをインストール|配布元・初期設定・TLSと認証の確認 2026-10-15 15:30:06
- Git導入と初回push|Linuxサーバー・Windows/macOS・SSH設定 2026-10-15 14:51:54
- Db2のCREATE INDEX|索引定義・INCLUDEと実行計画の確認 2026-10-15 14:10:22
- Db2の自動採番|IDENTITY・ID取得とRESTARTの注意点 2026-10-15 14:10:22
- 【DB2】特定スキーマの全テーブルの全カラム情報を取得する方法 2026-10-15 13:53:15
- Db2のシーケンスとIDENTITYの違い|採番とカタログの確認SQL 2026-10-15 13:53:15
- Db2で複数カラムをUPDATEする方法|SET・WHEREと更新前の値 2026-10-15 13:53:15