Mac下使用OrbStack运行Ubuntu并开启局域网访问
目前 OrbStack 还不支持桥接网络(GitHub Issue #342),导致局域网内的其他设备无法直接访问虚拟机。本文通过配置静态路由和 PF 防火墙规则来解决这个问题。
操作步骤
1. 创建 Ubuntu 虚拟机
使用 OrbStack 命令行工具创建 Ubuntu 虚拟机:
1 | orb create ubuntu |
2. 查看虚拟机网段信息
通过 SSH 连接到虚拟机并查看网络配置:
1 | ssh [username]@ubuntu@orb |
执行 ifconfig 或 ip addr 命令,获取虚拟机的 IP 地址。例如:
1 | eth0: 192.168.139.116 |

3. 配置路由器静态路由
在路由器中添加静态路由规则,将虚拟机网段的流量转发到 macOS 主机。
以爱快(iKuai)路由器为例:
- 进入 网络设置 → 静态路由
- 添加路由规则:
- 目的地址:
192.168.139.0 - 子网掩码:
255.255.255.0 - 网关:
192.168.0.8(macOS 主机的局域网 IP)
- 目的地址:

4. 开启 macOS IP 转发
方式一:临时配置(重启后失效)
启用 macOS 的 IP 转发功能:
1 | sudo sysctl -w net.inet.ip.forwarding=1 |
方式二:永久配置(推荐)
- 创建或编辑配置文件:
1 | sudo vim /etc/sysctl.conf |
- 添加以下内容:
1 | net.inet.ip.forwarding=1 |
- 保存后,配置会在系统重启后自动加载。重启系统后可以使用上述验证命令检查是否生效。
验证是否开启成功:
1 | sudo sysctl net.inet.ip.forwarding |
输出结果应为:
1 | net.inet.ip.forwarding: 1 |

5. 查看 macOS 网桥接口
查看 macOS 在虚拟机网段 192.168.139.0/24 上使用的网络接口:
1 | ifconfig |
找到对应的网桥接口,例如 bridge100。

6. 配置 PF 防火墙规则
macOS 使用 PF (Packet Filter) 作为防火墙,需要配置 NAT 规则以实现网络转发。
方式一:临时配置(重启后失效)
1 | echo "nat on bridge100 from any to 192.168.139.0/24 -> (bridge100)" | sudo pfctl -f - && sudo pfctl -e |
方式二:永久配置(推荐)
- 编辑 PF 配置文件:
1 | sudo vim /etc/pf.conf |
- 在
nat-anchor和rdr-anchor规则之后添加以下内容:
1 | ... |
- 应用配置:
1 | sudo pfctl -f /etc/pf.conf |
- 启用 PF 规则:
1 | sudo pfctl -e |
- 验证规则是否生效:
1 | sudo pfctl -s nat |

7. 验证局域网访问
在局域网内的其他设备上执行 ping 命令,测试是否能够访问虚拟机:
1 | ping 192.168.139.116 |
如果收到响应,说明配置成功。

总结
通过以上步骤,我们成功实现了在 macOS 上使用 OrbStack 运行 Ubuntu 虚拟机,并通过配置静态路由和 PF 防火墙规则,使局域网内的其他设备能够直接访问虚拟机。这对于开发测试、服务部署等场景非常实用。
注意事项
- 请根据实际情况修改 IP 地址和网络接口名称
- 永久配置需要确保 PF 规则在系统重启后自动加载
- 如果遇到访问问题,请检查路由器、macOS 防火墙和虚拟机防火墙的配置