VMWare 虚拟机下以 NAT 模式联网的 Ubuntu 系统 IP 地址飘移问题解决

版权声明:本文为博主原创文章,未经博主允许不得转载哦 (ÒωÓױ) https://blog.csdn.net/u012814856/article/details/88036233

一、引言

作为 Linux 初学者的我,是使用 VMWare 虚拟机工具安装的 Ubuntu 18.04 系统。其中,为了实现 Ubuntu 系统联网,是通过 VMWare 的 NAT 模式上网的,也就是主机与虚拟机系统通过 VMWare 的 VMnet8 虚拟网卡通讯,利用主机网卡上网,从而达到了虚拟机系统的联网功能。

与 VMWare 的 NAT 模式上网详细信息,可以参看这篇博客 Vmware虚拟机三种网络模式详解

当我们经常使用 VMWare NAT 模式下虚拟的 Ubuntu 系统的时候,就会发现一个很奇怪的事实,那就是:

虚拟机 Ubuntu 的 IP 地址会在一段时间后变化。经常能够看到的是,一般在上次的 IP 地址的基础上加一个 1。

这样的 “IP 地址飘移” 现象,对于我们使用类似 XShell 等等远程终端软件来说是一个灾难:

因为我们总是需要跟着虚拟机 Ubuntu 系统的 IP 地址而修改远程终端软件的 IP 地址配置信息。

尽管这种修改是一件非常方便的事情,最多也就是打开虚拟机下的 Ubuntu 系统,输入一个 ip address 指令,查看下使用的网卡的新的 IP 地址,然后适配修改到远程终端软件上的 IP 地址配置即可。

但是!

有没有一种一劳永逸的方法,能够让 NAT 模式联网的 Ubuntu 虚拟机系统的 IP 地址不再进行变化呢?

这也就是本篇博客所探讨的主题。

ps: 本篇博客参考了许多博客内容,但是却没有任何一篇博客是完全能够指导解决该问题的(或多或少有些碰壁的地方),因为我决定写下这篇博客,将自己解决这个问题的方法记录下来,以飨遇到同样问题的读者。

参考博客如下:
VMWare虚拟机下为Ubuntu 配置静态IP(NAT方式)ping通主机
虚拟机中Ubuntu IP地址漂移问题解决(为Ubuntu配置固定IP地址)
为VMware虚拟机内安装的Ubuntu 16.04设置静态IP地址

二、明确修改内容

简单来说,我们只需要给虚拟机中的 Ubuntu 系统设置一个静态的 IP 地址就可以了。

既然要设置网络信息,那么我们就一定要知道,我们需要修改的网络信息有哪些。

1. 列表

这里我直接列出我最后往 /etc/network/interfaces 中添加的网络配置信息

auto ens33
iface ens33 inet static
address 192.168.138.200
netmask 255.255.255.0
gateway 192.168.138.2
dns-nameservers 192.168.138.2

也就是说,我们需要明确如下信息:

项目 含义 上述示例
网卡 想要修改的网卡 ens33
IP 地址 想要配置的静态 IP 地址 192。168.138.200
子网掩码 VMNet8 虚拟网卡的子网掩码 255.255.255.0
默认网关 VMNet8 虚拟网卡的默认网关 192.168.138.2
DNS 服务器地址 VMNet8 虚拟网卡的默认网关 192.168.138.2

2. 网卡

我们可以使用 ip address 指令查看 Ubuntu 所使用的网卡信息。这里我使用的是 ens33 网卡,因此这里要修改的自然就是 ens33 网卡。
1

3. IP 地址

VMWare NAT 模式下映射虚拟机的虚拟 IP 地址是在一个限定范围的约束下的,我们只需要指定一个位于这个范围内的 IP 地址即可。那么这个限定范围在哪里看呢?

我们打开 VMWare,通过编辑->虚拟网络编辑器,点开虚拟网络编辑器的界面:
2

然后点击 DHCP 设置,进入 DHCP 设置界面
3

这里的起始 IP 地址和结束 IP 地址就是这个限定范围,这里我选择了 192.168.138.200 作为指定的静态 IP 地址。

4. 子网掩码和默认网关

想要查看 VMNet8 虚拟网卡的信息,可以直接在宿主 Windows 系统中打开 cmd.exe,然后输入 ifconfig 查看 VMnet8 虚拟网卡的信息即可:
4

至此,我们已经可以填写出一开始列出的信息了,将其填充为自己适配的即可。

三、修改并适用

我们已经编写好了修改的网卡信息,现在就是将其写入到配置文件并且让其生效了。

1. 修改

$ sudo vi /etc/network/interfaces

加入我们第二步中编辑的内容并且保存。

2. 适用

我们需要重启 Ubuntu 的网卡

$ sudo /etc/init.d/networking restart

如果这种方式报错,首先检查是否输入内容拼写有误,如果没有,则还可以使用

$ sudo ifconfig ens33 down
$ sudo ifconfig ens33 up

如果还有问题,建议重启一下 Ubuntu 虚拟机系统,然后再行尝试下上述两个命令(我就是这么尝试出来的 T_T)。

3. 回滚

如果配置完之后,发现不能上网,并且重启系统后也是不能上网,那么我们还可以回滚回去。简单来说就是删去 /etc/network/interfaces 中我们添加的内容,然后重启 Ubuntu 网卡,然后再重启下系统就可以了。

四、总结

总的来说,解决 VMWare NAT 模式下联网的 Ubuntu 系统 IP 地址飘移问题的关键,就在于给它指定一个静态的 IP 地址,难点在于编写好其配置的信息。

如果过程中遇到网卡不能重启的问题,首先检查是否配置文件拼写错误,然后再尝试下不同的网卡重启命令,如果还不行,建议重启下系统再行尝试(我就是这么解决的 T_T 虽然有点莫名其妙),实在还不行,至少我们还可以回滚。

希望能够给遇到同样问题的朋友们一些帮助
To be Stronger:)

猜你喜欢

转载自blog.csdn.net/u012814856/article/details/88036233