VMware Workstation 通过 DHCP 分配静态 IP
其实 VMware 自带的 DHCP 服务器就是随处可见的 ISC DHCP 服务器(dhcpd)。每个 VMware 接口都有一份 dhcpd 配置,并且用户可以像配置普通 dhcpd 一样编写这些配置来自定义 dhcpd 的行为。在此篇教程中我将记述如何通过更改该 VMware 的 DHCP 配置文件来手动分配访客网卡的 IP 地址。

当您在 VMware 中安装了多台虚拟机,虚拟机的 IP 地址配置将会成为一个问题:进入每台虚拟机手动配置地址将会过于繁琐,而 VMware 自带的 DHCP 服务器的行为又无法在 GUI 中控制。

很多人可能不知道其实 VMware 自带的 DHCP 服务器就是随处可见的 ISC DHCP 服务器(dhcpd)。每个 VMware 接口都有一份 dhcpd 配置,并且用户可以像配置普通 dhcpd 一样编写这些配置来自定义 dhcpd 的行为。在此篇教程中我将记述如何通过更改该 VMware 的 DHCP 配置文件来手动分配访客网卡的 IP 地址。

VMware DHCP 配置文件

VMware 的配置文件可在系统的以下位置找到:

  • Linux: /etc/vmware/{接口名称}/dhcpd/dhcpd.conf
  • Windows: C:\ProgramData\VMware\vmnetdhcp.conf

例如,在我的 Linux 系统上,NAT 接口(vmnet8) 的 DHCP 文件就在 /etc/vmware/vmnet8/dhcpd/dhcpd.conf。该文件出厂大致内容如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 略:一些注释

###### VMNET DHCP Configuration. Start of "DO NOT MODIFY SECTION" #####
# 略:一些注释

# Written at: 10/17/2020 02:13:22
allow unknown-clients;
default-lease-time 1800;                # default is 30 minutes
max-lease-time 7200;                    # default is 2 hours

subnet 172.31.0.0 netmask 255.255.0.0 {
	range 172.31.128.0 172.31.255.254;
	option broadcast-address 172.31.255.255;
	option domain-name-servers 172.31.0.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 172.31.0.2;
	option routers 172.31.0.2;
}
host vmnet8 {
	hardware ethernet 00:50:56:C0:00:08;
	fixed-address 172.31.0.1;
	option domain-name-servers 0.0.0.0;
	option domain-name "";
	option routers 0.0.0.0;
}
####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######

现在如果我们想将一台 CentOS MAC 地址为(00:0C:29:BA:D4:48)的网卡绑定到 IP 地址 172.31.1.3,则只需要在该配置文件最后一行备注以下添加以下内容即可:

1
2
3
4
5
6
####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######

host centos {
    hardware ethernet 00:0C:29:BA:D4:48;
    fixed-address 172.31.1.3;
}

重启 vmware 服务(e.g., systemctl restart vmware)或者重启宿主之后该配置便会生效。当我们再次启动 CentOS 并用 DHCP 获取地址,就会发现 IP 地址已经和 DHCP 配置里写入的地址一致了。

CentOS
CentOS 中自动获取的 IP 地址已遵照新配置文件中的规则

请注意在升级 VMware Workstation 之前备份 dhcpd.conf 文件,VMware Workstation 升级时可能会删除旧的 dhcpd.conf

参考资料


最后修改于 2020-10-17