我正在尝试在两台 VirtualBox 机器上实现 DHCP,两台机器都运行 Ubuntu 16.10(一台作为客户端,一台作为服务器),主机是 Windows 10。
我该如何做呢?
由于我是一名初学者,因此如果能提供一步一步的教程我将非常感激。
答案1
首先,我们应该确保我们的虚拟机能够连接到互联网,我们将通过在每台机器上启用 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
然后我们应该启用 dnsmasq DHCP 功能,在此之前,让我们通过运行以下命令来查看网络接口:
ifconfig -a
我们应该得到类似这样的结果:
enp0s3
是第一个适配器,您还记得 Nat 接口吗?它已经有一个 IP(10.0.2.15),我们与此接口没有任何关系,我们只是创建它以便在安装东西时需要访问 Internet,等等。
enp0s8
连接到我们vboxnet0
在第一部分中刚刚创建的网络,我们应该使这个接口列出 DHCP 请求并对其做出响应。
现在让我们重新启用 DHCP 服务器功能dnsmas
,只需运行以下命令:
sudo nano /etc/dnsmasq.conf
它将dnsmasq
在编辑器中打开配置文件nano
。我们应该取消注释一些行,并将我们的配置添加到这些行中:
interface=enp0s8
bind-interfaces
dhcp-range=192.168.100.10,192.168.100.20,24h
您也可以将它们粘贴到这个配置文件中,因为interface
,我们应该使用enp0s8
,我们刚才讨论过,对吧?
这dhcp-range
是我们想要分配给请求的范围:192.168.100.10
到,192.168.100.20
租赁时间为24
小时。
现在我们应该为我们的enp0s8
接口指定一个 IP 地址,例如:
sudo ifconfig enp0s8 192.168.100.1
sudo ifconfig enp0s8 up
您也可以编辑interfaces
文件并为该接口分配一个静态 IP。
毕竟我们应该启动dnsmasq
守护进程:
sudo systemctl start dnsmasq.service
客户
打开你的另一台 Ubuntu 机器,它应该默认安装了网络管理器,并且应该已经建立了到该网络的连接。默认方法是使用 DHCP,因此你什么都不用做。只需启用新网络,名称应为Wired Connection 2
,完成后,你的接口将获得一个 IP。
如果您查看网络信息,您会发现此接口具有我们在 DHCP 服务器中设置的范围内的 IP:
您也可以运行sudo dhclient enp0s3
,来获取 enp0s3 接口的 IP。
答案2
首次安装dhcp server
sudo apt install isc-dhcp-server
然后选择接口卡就可以dhcp server
了。
sudo nano /etc/default/isc-dhcp-server
# Defaults for isc-dhcp-server initscript
# sourced by /etc/init.d/isc-dhcp-server
# installed at /etc/default/isc-dhcp-server by the maintainer scripts
#
# This is a POSIX shell fragment
#
# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf).
#DHCPD_CONF=/etc/dhcp/dhcpd.conf
# Path to dhcpd's PID file (default: /var/run/dhcpd.pid).
#DHCPD_PID=/var/run/dhcpd.pid
# Additional options to start dhcpd with.
# Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead
#OPTIONS=""
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0"
在这种情况下,nic 是eth0
配置子网
sudo nano /etc/dhcp/dhcpd.conf
评论全部及以上都放这个
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.xxx 192.168.0.xxx;
option routers 192.168.0.x;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option domain-name-servers xxx.xxx.xxx.xxx;
default-lease-time 86400;
max-lease-time 86400;
}
重启服务
sudo service isc-dhcp-server restart
对于客户来说,通过 选择汽车配置就足够了dhcp
。
尝试。