在 VirtualBox 中设置 DHCP 服务器/客户端配置的分步指南

ann*_*301 4 server networking dhcpd dhcp virtualbox-networking

我正在尝试在两台 VirtualBox 机器上实现 DHCP,两台机器都运行 Ubuntu 16.10(一台作为客户端,一台作为服务器),主机是 Windows 10。

我该怎么做呢?

由于我是初学者,因此将非常感谢分步教程。

Rav*_*ina 6

首先,我们应该确保我们的虚拟机能够连接到互联网,我们将通过在每台机器上启用 NAT 适配器(如果尚未启用)来实现这一点,而且我们的机器应该位于同一网络,因此,我们将创建一个仅主机网络,并通过向每台计算机添加一个新的仅主机适配器来将两台计算机添加到其中。

创建仅主机网络

在 VirtualBox 中,从file菜单中选择preferences,然后在 VirtualBox 首选项窗口中,选择网络,然后仅托管网络。毕竟,通过单击+标志添加一个新的仅主机网络。

在此输入图像描述

将我们的机器添加到同一网络

现在,对于两个 Ubuntu 虚拟机,右键单击每个虚拟机,选择settings,转到网络部分。确保Adapter 1处于活动状态并附加到Nat,单击Adapter 2,选中Enable Network Adapter并进行Attached to选择Host-Only adapter。单击“确定”保存这些设置。

在此输入图像描述

运行 DHCP 服务器

我们将使用它dnsmasq作为我们的 DHCP 服务器,它相当小并且足以满足我们的目的,因此要安装它,请运行:

sudo apt-get install dnsmasq
Run Code Online (Sandbox Code Playgroud)

然后我们应该启用 dnsmasq DHCP 功能,在此之前让我们通过运行以下命令来查看网络接口:

ifconfig -a
Run Code Online (Sandbox Code Playgroud)

我们应该得到类似的东西:

在此输入图像描述

enp0s3是或者第一个适配器,你还记得Nat接口吗?它已经有一个IP(10.0.2.15),我们与这个接口没有任何关系,我们只是创建它来获取互联网访问(如果需要安装东西等)。

enp0s8连接到我们vboxnet0刚刚在第一部分中创建的网络,我们应该使此接口列出 DHCP 请求和响应。

现在让我们回到启用 DHCP 服务器功能dnsmas,只需运行以下命令:

sudo nano /etc/dnsmasq.conf
Run Code Online (Sandbox Code Playgroud)

它将在编辑器dnsmasq中打开配置文件nano。我们应该取消注释一些行并将配置添加到这些行中:

interface=enp0s8
bind-interfaces
dhcp-range=192.168.100.10,192.168.100.20,24h
Run Code Online (Sandbox Code Playgroud)

您也可以将它们粘贴到此配置文件中,因为interface,我们应该使用enp0s8,我们刚刚讨论过,对吧?

dhcp-range我们要分配给我们的请求的范围:192.168.100.10192.168.100.20,租赁时间为24小时。

现在我们应该给我们的enp0s8接口一个IP地址,例如:

sudo ifconfig enp0s8 192.168.100.1
sudo ifconfig enp0s8 up
Run Code Online (Sandbox Code Playgroud)

您也可以编辑interfaces文件并为该接口分配静态IP。

毕竟我们应该启动dnsmasq守护进程:

sudo systemctl start dnsmasq.service
Run Code Online (Sandbox Code Playgroud)

客户

打开你的另一台 Ubuntu 机器,它应该默认安装了网络管理器,并且应该已经存在到该网络的连接。默认方法是使用 DHCP,因此您无需执行任何操作。只需启用新网络,名称应该是Wired Connection 2,完成后,您的接口将获得一个IP。

如果您查看网络信息,您可以看到该接口的 IP 地址位于我们在 DHCP 服务器中设置的范围内:

在此输入图像描述

您还可以运行sudo dhclient enp0s3, 来获取 enp0s3 接口的 IP。