ネットワーク
3 つのネットワークモード、ポート転送、Apple から entitlement が必要なモード。
モード
| モード | ゲストに与えるもの |
|---|---|
nat | プライベートネットワーク上のアドレス。Mac の接続を共有。デフォルトでほぼ常にこれ。 |
host-only | Mac だけのネットワーク。外向きインターネットなし。 |
bridged:en0 | 実 LAN 上のアドレス。ゲストが LAN 上の別マシンのように見える。 |
1vm create dev --network nat
1vm set dev network.mode host-only
1vm set dev network.mode bridged:en0
NAT
1VM エンジンはファーストパーティのユーザーモード NAT スタック — DHCP、DNS、TCP/UDP 変換 — を同梱し、外部ネットワークデーモンに委譲しない。ゲストは自動でアドレスを取得し、外向き接続はそのまま動く。
1vm ip <vm> がアドレスを出力し、1vm list は状態と一緒に表示。起動済みだが DHCP 未完了のマシンは、ないアドレスを装わず待機中と報告。
ポート転送
Mac からゲスト内のサービスへ到達:
1vm set dev portForwards.add tcp:2222:22
1vm set dev portForwards.add tcp:8080:80
1vm set dev portForwards.remove tcp:8080:80
形式は protocol:hostPort:guestPort。1VM エンジンの転送は loopback のみ — Mac から到達可能で、ネットワーク全体からは不可。他マシンからゲストへ到達したい場合は bridged を使う。
bridged は entitlement 必須
bridged には com.apple.vm.networking entitlement が必要で、Apple が申請に応じて付与。なければ bridged は UI で理由付きで利用不可と表示され、非表示や起動時失敗にはしない。意図的: 消えるオプションは理由を教えない。
SSH
SSH は手設定ではなくファーストクラスの経路:
1vm ssh enable dev
1vm ssh config --install # ~/.ssh/config に Include 行を追加
ssh dev # 通常の ssh でマシン名が解決
1vm ssh trust dev でゲスト host key を固定。--relearn で再構築後に再固定。親と同時に動くクローンには 1vm clone dev test --rekey-ssh で同一 host key を避ける。