当您在 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 中自动获取的 IP 地址已遵照新配置文件中的规则
请注意在升级 VMware Workstation 之前备份 dhcpd.conf
文件,VMware Workstation 升级时可能会删除旧的 dhcpd.conf
。
参考资料#