从 DHCP 更改为静态但无法解析名称

从 DHCP 更改为静态但无法解析名称

我刚刚在带有 NAT 的 VirtualBox 上安装了 Debian 9.6 amd64。我必须将网络设置从 DHCP 更改为静态,并使用 /30 的网络掩码,因为这是我的任务。因此,我按照几篇文章将我的 /etc/network/interface 更改为如下形式:

allow-hotplug enp0s3
iface enp0s3 inet static
     address 10.0.0.41
     netmask 255.255.255.252 // Because I have to a set a netmask of /30
     gateway 10.0.0.0
     broadcast 10.0.0.43
     gateway 10.0.0.1
     dns-nameserver 10.0.0.1 8.8.8.8
     dns-domain acme.com
     dns-search acme.com

但重新启动网络服务后,我仍然遇到名称解析暂时失败的情况,并且无法获取任何要安装的内容。

EDIT1:我重置了所有内容以在仍使用 DHCP 时查看我的原始 IP 和接口,结果ip a如下:

1: lo:
   inet 127.0.0.1/8 scope host lo
2: enp0s3:
   inet 10.0.2.15/24 brd 10.0.2.255 scope global enp0s3

答案1

如果您必须使用网络掩码 255.255.255.252 (a /30),则子网中只有两个有效 IP 地址。其中一个将分配给您的服务器 (10.0.0.41),另一个必须是路由器,即您的默认网关。因此,您应该输入以下配置:

gateway 10.0.0.42

话虽如此,你正在 Virtualbox 上运行它。Virtualbox 通常使用内部 /24 网络。你认为你为什么必须使用 /30?

由于您在 VirtualBox 机器上使用 NAT,因此虚拟机连接到内部网络(参见上一条评论),而 VirtualBox 是 DHCP 服务器。也许您的物理机器需要网络管理员提供静态 IP 地址,但在本地 VirtualBox 网络上的本地机器上,您可以做任何您想做的事情。

听起来你对网络的理解并不那么深刻(无意冒犯)。也许有关你的设置和要求的更多信息可以让我们更好地帮助你。

编辑:

由于您坚持使用 /30 网络,因此您应该在 VirtualBox 中创建一个。否则 VirtualBox 将假定使用 /24 网络,并且它将提供一个默认网关,该网关的 IP 地址无法供您的虚拟机访问。有关详细信息,请查看虚拟网络文档

VBoxManage natnetwork add --netname exercise1 --network "10.0.0.40/30" --enable
VBoxManage natnetwork start --netname exercise1

要为服务添加端口转发,请使用以下命令:

VBoxManage natnetwork modify --netname exercise1 \
    --port-forward-4 "ssh:tcp:[]:2222:[10.0.0.42]:22"

最后,您必须修改虚拟机的设置并将其连接到这个新创建的名为“exercise1”的网络。在虚拟机内部,您必须更新接口配置和/etc/resolv.conf

相关内容