Loading... # 关于Mac VMware自定义IP地址网段 VMware Fusion 网络默认使用了 “172.16” 或者 “192.168” 开头的地址段,图形界面无法直接修改。 本文写作时基于 Fusion 11 版本,Fusion 12、13 版本同样适用。 ## 一、了解 VMware Fusion 中的网络类型 (1022264) 可用于虚拟机的网络类型有三种。每种网络类型都由其自身用途、行为和功能。 注意:`使用错误的网络类型或配置设置可能会导致出现不良行为。` ### 1.1、桥接模式网络连接 如果您的 Mac 位于以太网、无线网或 FireWire 网络中,则使用桥接网络连接通常是使您的虚拟机可以访问该网络的最简单方法。使用桥接网络连接,虚拟机将显示为与 Mac 相同的物理以太网网络中的其他计算机。 使用桥接网络连接的虚拟机可能会使用在该虚拟机桥接到的网络上提供的任何服务 (sysin),其中包括文件服务器、打印机和网关。同样,配置有桥接网络连接的任意物理主机或其他虚拟机可以使用虚拟机上的资源,就好像该虚拟机是同一个网络中的物理计算机。 桥接网络适配器称为 vmnet0。在 Fusion 3.x 及更高版本中,该适配器使用 vmnet-bridge 和 vmnet-netifup 服务。 ### 1.2、仅主机型网络 - vmnet1 当使用此类型的网络连接时,虚拟机将连接到虚拟专用网络中的 Mac,这在 Mac 以外通常不可见。在同一个 Mac 中配置有仅主机网络的多个虚拟机将位于同一个网络中,并且互相可见。 仅主机网络适配器称为 vmnet1。在 Fusion 3.x 及更高版本中,该适配器使用 vmnet-dhcpd 服务。 ### 1.3、网络地址转换 (NAT) 网络 - vmnet8 如果要使用 Mac 拨号网络连接的方法将虚拟机连接到 Internet 或其他 TCP/IP 网络,或者无法向虚拟机提供 Mac 的网络中的 IP 地址,则此类型通常是使您的虚拟机可以访问网络的最简单方法。此类型还允许虚拟机访问 Mac 已连接到的 VPN。 虚拟机在外部网络中没有自己的 IP 地址。相反,会在 Mac 中设置单独的专用网络。虚拟机从 VMware 虚拟 DHCP 服务器中获取该网络上的地址。除非虚拟机启动连接,否则无法直接通过除 Mac 以外的任意计算机或网站连接该虚拟机。 NAT 网络适配器称为 vmnet8。在 Fusion 3.x 及更高版本中,该适配器使用 vmnet-natd、vmnet-dhcpd 和 vmnet-netifup 服务。 ## 二、自定义网络 IP 地址段 VMware Fusion 有三个网络配置文件:`networking、dhcpd.conf 和 nat.conf`。 ### 2.1、全局: ``` /Library/Preferences/VMware\ Fusion/networking ``` ### 2.2、vmnet1: ```css /Library/Preferences/VMware\ Fusion/vmnet1/dhcpd.conf ``` ### 2.3、vmnet8: ```css /Library/Preferences/VMware\ Fusion/vmnet8/dhcpd.conf /Library/Preferences/VMware\ Fusion/vmnet8/nat.conf ``` > 本文仅以修改默认网络为例 (sysin),也可以在新建网络进行自定义:“VMware Fusion” > “偏好设置…” > “网络” > “+”,默认第一个自定义网络名称为 vmnet2 对应配置文件位于 /Library/Preferences/VMware\ Fusion/vmnet2/ 下。 ## 三、修改 IP 地址段步骤如下: > 本文写作时,在 VMware Fusion 11.5 版本中测试通过,现在同样适用于版本 12 系列。 ### 3.1、停止 vmnet 网络服务 执行命令: ```css sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cli --stop ``` > 备注:这步是可选的,直接下一步也可以。 ### 3.2、修改 networking 配置文件 ```css sudo vi /Library/Preferences/VMware\ Fusion/networking ``` > 示例:将 vmnet1 中的 IP 段修改为 192.168.1.0,将 vmnet8 中的 IP 段修改为 10.10.1.0 > > 默认 IP 地址段因版本差异有所不同。 ```css VERSION=1,0 answer VNET_1_DHCP yes answer VNET_1_DHCP_CFG_HASH 305D3393C78096F94C8C979DF2321B14BEE94AB1 answer VNET_1_HOSTONLY_NETMASK 255.255.255.0 answer VNET_1_HOSTONLY_SUBNET 172.16.178.0 # 修改为 192.168.1.0(注意:默认值有一定随机性) answer VNET_1_VIRTUAL_ADAPTER yes answer VNET_8_DHCP yes answer VNET_8_DHCP_CFG_HASH DE662EAB01380DE3338128A859C717A8F863F3CF answer VNET_8_HOSTONLY_NETMASK 255.255.255.0 answer VNET_8_HOSTONLY_SUBNET 172.16.24.0 # 修改为 10.10.1.0(注意:默认值有一定随机性) answer VNET_8_NAT yes answer VNET_8_VIRTUAL_ADAPTER yes ``` ### 3.3、配置网络 ```css sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cli --configure ``` > vmnet-cli 将根据上述修改的地址段自动修改 dhcpd.conf 和 nat.conf 中的 IP 地址。 查看 dhcpd.conf 和 nat.conf 配置文件: ```css cat /Library/Preferences/VMware\ Fusion/vmnet1/dhcpd.conf cat /Library/Preferences/VMware\ Fusion/vmnet8/dhcpd.conf cat /Library/Preferences/VMware\ Fusion/vmnet8/nat.conf ``` `可以看到配置已经修改成功。` > NAT 网关的 IP 为 x.x.x.2,定义在 /Library/Preferences/VMware\ Fusion/vmnet8/nat.conf 配置文件中。 > > Fusion 12.0 开始 NAT 网关的 IP 变更为 x.x.x.1,更加符合使用习惯。 > > 经测试 Fusion 12.1 NAT 网关 IP 同样为 x.x.x.1,但是比较遗憾,Fusion 12.2 又修改为 .2。这降导致 12.0 和 12.1 配置的 VM 无法访问外部网络。 > > Fusion 13.0 NAT 网关 IP 为 .2。 ### 3.4、启动网络服务 ``` sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cli --start ``` 验证 ```css ifconfig # 仅限旧版 macOS 可显示 ``` 可以看到 vmnet1 和 vmnet8 的 IP 地址已经更改成功。 6. 虚拟机重新获取配置 虚机如果是手动配置的 IP,直接修改即可。 虚机如果是 DHCP,可以直接重启 VMware Fusion 或者虚拟机系统,也可以直接在虚拟机中重新获取地址,比如 Linux 命令行中执行 sudo dhclient -v -r eth0 ,eth0 为对应网卡。 ------------- 参考地址: https://sysin.org/blog/change-vmware-fusion-networking/ https://zhuanlan.zhihu.com/p/138325930 最后修改:2024 年 01 月 24 日 © 允许规范转载 打赏 赞赏作者 赞 咱们谁跟谁,用不着~