介绍

VMWare Fusion中,虚拟机的网口使用NAT模式时,获取到的IP地址是通过DHCP动态分配的,不是固定分配的。每次开机虚拟机网口IP都有可能变动,SSH登录时每次要去查看,太不方便。
找了下如何设置固定IP的方法,记录如下。

在如下环境中可以设置成功:

  • MacOS Version: 10.14.4 (18E226)
  • Vmware Fusion Version: 10.1.5 (10950653)

步骤

1. 获取虚拟主机的MAC地址

默认安装下,所有的虚拟主机的Image都存放在~/Documents/Virtual\ Machines.localized/下,以名为CentOS 7 64bit的虚拟机为例。获取命令为:

1
cat ~/Documents/Virtual\ Machines.localized/CentOS\ 7\ 64bit.vmwarevm/CentOS\ 7\ 64bit.vmx | grep generatedAddress

找到对应网口的MAC地址, 本文中要绑定的网口ethernet0的MAC地址为00:0C:29:23:6E:CC

2. 设置静态IP

打开配置文件/Library/Preferences/VMware\ Fusion/vmnet8/dhcpd.conf, vmnet8是VMWare用来设置NAT的虚拟网口,在MacOS下使用命令ifconfig可以看到该虚拟网口。

在配置文件中可以看到DHCP的IP池为192.168.187.128 ~ 192.168.187.254(每个机器可能不同,以实际显示的为准)

1
2
3
4
5
6
7
8
9
10
subnet 192.168.187.0 netmask 255.255.255.0 {
range 192.168.187.128 192.168.187.254;
option broadcast-address 192.168.187.255;
option domain-name-servers 192.168.187.2;
option domain-name localdomain;
default-lease-time 1800; # default is 30 minutes
max-lease-time 7200; # default is 2 hours
option netbios-name-servers 192.168.187.2;
option routers 192.168.187.2;
}

设置静态IP,需要避免使用DHCP的IP池中的IP段,也别使用网段的前几个IP,以防和VM管理IP起冲突,比如192.168.187.1,192.168.187.2就是默认被Fusion占用的。
此处以选取192.168.187.100为例。在配置文件末尾添加

1
2
3
4
host CentOS7_64bit{
hardware ethernet 00:0C:29:23:6E:CC;
fixed-address 192.168.187.100;
}

注意: 没有相关知识,不要擅自去修改DO NOT MODIFY SECTION之间的内容, 而是将自定义的配置添加到末尾。

3. 退出VMware Fusion

修改的配置,需要重启VMware Fusion才能生效。关闭所有虚拟机,Command + Q 退出VM Fusion。

4. 检验设置

重启VMware Fusion, 再启动虚拟机CentOS 7 64bit,可以看到MAC地址为00:0c:29:23:6e:cc的网口ens33的IP地址就是设定的192.168.187.100.

1
2
3
4
5
6
7
8
9
10
11
12
# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.187.100 netmask 255.255.255.0 broadcast 192.168.187.255
inet6 fe80::1092:5557:4eb5:9694 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:23:6e:cc txqueuelen 1000 (Ethernet)
RX packets 143 bytes 17120 (16.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 114 bytes 15575 (15.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
...
#

Reference

留言