必须手动构建host-only封闭局域网:创建名为“nested-isolation”的host-only网络,禁用系统显示、设子网192.168.250.0/24、关ipv6 dhcp;虚拟机关机后仅绑定该网卡并禁用其余网卡;客户机内静态配置ip且清空路由;宿主侧禁用vnic并启用pf防火墙强化隔离。

要在Mac上用Parallels Desktop为虚拟机搭建完全独立、不与宿主或外网互通的嵌套虚拟网络,必须绕过默认的Shared和Bridged模式,手动构建仅主机(Host-Only)封闭局域网,并禁用所有外部路由能力。
创建专用Host-Only虚拟网络
打开Parallels Desktop → 顶部菜单栏【Parallels Desktop】→【偏好设置】→【网络】→ 点击左下角【+】号 → 选择【Host-Only】→ 命名为“Nested-Isolation”。
在新建网络配置中:【取消勾选“在系统偏好设置中显示”】——这一步关键,否则该虚拟网卡会暴露在macOS网络列表里,可能被误配或触发系统级路由;子网地址设为192.168.250.0,掩码255.255.255.0,起始IP填192.168.250.100,范围留32个地址足够;IPv4 DHCP服务器保持启用,但【务必关闭IPv6 DHCP】,避免某些Linux发行版因IPv6 RA自动配置意外获得外部可达地址。
点击【确定】完成创建。
为虚拟机绑定隔离网卡并禁用其他网络
关闭目标虚拟机(必须关机,不能挂起)→ 右键虚拟机 →【配置】→【硬件】→【网络】→ 点击【+】添加第二块网卡 →【源】下拉选择刚建的“Nested-Isolation” →【高级】中将网卡型号设为【Intel(R) PRO/1000 MT Desktop】(兼容性最好,避免virtio在无驱动时失联)。
回到第一块网卡 → 将【源】改为【不连接】 → 保存退出。这一步不可跳过:只要保留任何一块桥接或共享网卡,虚拟机就可能通过它逃逸出隔离网络。
虚拟机内部彻底断网配置
启动虚拟机 → 进入系统后立即执行以下操作:
方法一(Linux CentOS/RHEL系):
编辑/etc/sysconfig/network-scripts/ifcfg-eth0(以实际网卡名为准),将BOOTPROTO改为static,IPADDR设为192.168.250.10,NETMASK为255.255.255.0,删除GATEWAY行、DNS行、DEFROUTE行;运行systemctl restart network;再执行ip route flush table main,确保路由表只剩直连网段。
方法二(Windows 10/11):
打开【控制面板→网络和 Internet→网络连接】→ 右键“以太网 2”(对应新网卡)→【属性】→ 双击【Internet 协议版本 4 (TCP/IPv4)】→ 手动设置IP为192.168.250.11,子网掩码255.255.255.0,网关和DNS全部留空 → 确定后,在命令提示符中执行route -f清空所有路由。
验证:在虚拟机中执行ping 192.168.250.1(即PD自动分配给宿主侧vnic的地址),能通即表示Host-Only链路建立成功;再执行ping 8.8.8.8,应完全超时——这才是真正隔离状态。
强化宿主侧隔离策略
在Mac终端中执行:
sudo ifconfig vnic1 down(vnic1为PD为“Nested-Isolation”分配的虚拟网卡,可用ifconfig | grep vnic确认编号)→ 这步让宿主主动切断该网卡的收发能力,仅保留虚拟机侧单向通信基础。
接着运行:
sudo pfctl -ef /dev/stdin block on vnic1 all
pass on lo0 all
EOF
该规则永久禁止vnic1上任何进出流量(除回环外),从内核层堵死潜在旁路。
最后检查:在Mac上执行netstat -nr | grep vnic1,输出中不应出现任何指向该接口的有效路由项。











