Docs · 参考

网络

三种网络模式、端口转发,以及哪种需要 Apple 的 entitlement。

Modes

ModeWhat it gives the guest
natAn address on a private network, sharing your Mac's connection. The default, and what you want almost always.
host-onlyA network with the Mac and nothing else. No outbound internet.
bridged:en0An address on your real LAN, as though the guest were another machine on it.
1vm create dev --network nat
1vm set dev network.mode host-only
1vm set dev network.mode bridged:en0

NAT

1VM 引擎自带 first-party 用户态 NAT 栈——DHCP、DNS 和 TCP/UDP 转换—— 而不是委托外部网络守护进程。guest 自动获得地址,出站连接可用。

1vm ip <vm> 打印地址,1vm list 与状态一并显示。已启动但尚未完成 DHCP 的机器会报告为等待中,而不是假装有地址。

Port forwarding

从 Mac 访问 guest 中的服务:

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 访问,不能从网络其他机器访问。若需 guest 被其他机器访问,请 使用桥接网络。

桥接受 entitlement 限制

桥接网络需要 com.apple.vm.networking entitlement,Apple 按申请授予。 没有时,界面会显示不可用并给出原因,而不是隐藏或在启动时失败。这是 有意设计:消失的选项不会告诉你原因。

SSH

SSH 是一等路径,无需手动配置:

1vm ssh enable dev
1vm ssh config --install     # adds an Include line to ~/.ssh/config
ssh dev                      # plain ssh now resolves the machine name

1vm ssh trust dev 固定 guest 主机密钥,--relearn 在重建后重新固定。 若克隆体将与父机同时运行,使用 1vm clone dev test --rekey-ssh,避免 两台机器呈现相同主机密钥。