在Dian团队的第一个Task~

前期准备

安装 VMware

下载地址:https://www.nocmd.com/740.html
安装无脑下一步即可

安装 Ubuntu

镜像下载地址:https://cn.ubuntu.com/download
最新版的 VMware 支持 Ubuntu 的简易安装,所以在配置时直接填好主机名用户名密码就可以愉快的食用 Ubuntu 了

配置局域网

在虚拟网络编辑器中配置网关以及网段

在 VMware 主页面 编辑–》虚拟网络编辑器
单击箭头所指按钮,给编辑器提升权限以更改设置

更改虚拟网络编辑器设置

我们使用 NAT 模式,所以选择 VMnet8。(记住这个名称,稍后还会用到)
不勾选【使用本地 DHCP】服务这个复选框,因为我们要求固定 IP,DHCP 是动态分配 IP 的。
首先,我们将子网 IP 设置成我们需要的 IP 地址所在的网段,即 192.168.188.0,如图所示:

更改VMnet8子网IP

点击 NAT 设置。
我们将网关 IP 设置成我们需要的 IP 地址 192.168.188.2,如图所示:

更改VMnet8网关设置

然后再选择 Host-only 模式的网卡 VMnet1
同理,不勾选【使用本地 DHCP】服务这个复选框。
首先,我们将子网 IP 设置成我们需要的 IP 地址所在的网段,即 192.168.188.0,如图所示:

更改VMnet1子网IP

在控制面板中配置虚拟网卡 IP

在 VMware 中更改了虚拟网络之后,我们还需要去宿主机的网络控制面板中更改网络适配器,才能让我们的虚拟主机能够正常的上网
在控制面版中找到 VMware Network Adapter VMnet8,也就是我们之前记住的使用 NAT 模式的那张网卡
双击图标后,在弹出的窗口中单击属性–>双击 Internet 协议版本 4
将弹出的窗口设置成如图所示的亚子:

控制面板设置

到此,配置局域网的工作暂告一段落

打开三台虚拟机,进行最后的指向操作

对于充当路由器和 DNS 服务器的虚拟机 VM1

首先打开 VM1 的 IP 转发功能:

1
nano /etc/sysctl.conf

把 net.ipv4.ip_forward = 0 改成 1,或者是将注释符删去,如图所示:

![更改VM1 IP转发.png](https://cdn.jsdelivr.net/gh/Zam-0703/Pictures/img/更改VM1 IP 转发.png)

使用sysctl -p命令使改动生效。

然后再将用于与 VM2 和 VM3 通信的网卡手动分配下 IP
注意,此时一定要分清哪张网卡是工作在 NAT 模式下,用于与宿主机通信的;哪张是工作在 Host-Only 模式下,用于与两个虚拟机通信的。
所以在开始更改网卡配置之前,需要先执行ifconfig确定网卡的具体信息

从 ubuntu 从 17.10 开始,已经不再在/etc/network/interfaces 里配置 IP,即使配置了也不会生效,而是改成 netplan 方式 ,配置写在/etc/netplan/文件夹里或者类似名称的 yaml 文件里。因此,我们应先查看/etc/netplan 文件夹下的文件,来判断我们需要修改的是什么文件

1
2
cd /etc/netplan
ls

输出结果

从而确定下一步的命令为:sudo nano 01-network-manager-all.yaml

经过我的甄别,确定网卡 ens38 是那张工作在 Host-Only 模式下的网卡、ens33 是那张工作在 NAT 模式下的网卡,于是乎按照任务要求,如图所示编辑两张网卡的配置:

更改netplan

之后运行命令netplan apply来应用这一设置

到这里,对 VM1 的操作就告一段落

对于 VM2 和 VM3

照葫芦画瓢,首先执行ifconfig确定网卡的具体信息,再更改 netplan 的配置信息。
具体操作过程与 VM1 大差不差,就直接放按着任务要求配置好的 netplan 了。

VM2 netplan

VM3 netplan

然后就可以实现 VM1,VM2,VM3 三台机器的互 ping

对 VM2 与 VM3 进行 NAT 转换

但是,经过上述的操作,VM2 与 VM3 却不能 ping 通 VM1 的网关和公网。有句话说得好,不能连公网的主机和咸鱼没啥区别。因此,我们需要用 iptables 实现 NAT 转换,使得 B 和 C 能够访问(ping)A 的网关和公网。

具体的 NAT 操作过程示例,可以参照这篇 blog 中 SNAT 部分,再根据具体的环境配置 iptables 的参数:https://www.zsythink.net/archives/1764

在此次任务中,命令为:

1
sudo iptables -t nat -A POSTROUTING -s 10.1.2.0/24 -j SNAT --to-source 192.168.188.128

执行之后就可以在 VM2 与 VM3 两台“内网”机器中愉快的连上公网了~

遇到的问题

  • 1.netplan apply 时遇到格式错误

    错误原因:YAML 文件对格式的要求非常严格。在冒号后少打一个空格都会导致文件读取错误。

解决方法:重新检查一遍 YAML 文件格式是否正确,有没有少打空格。并在之后多多注意格式问题

  • 2.在执行命令中多次出现 Permission Denied

    错误原因:因为这次任务中涉及到对网络配置等系统关键文件进行修改的操作,所以需要 su 权限才能进行命令的执行。

解决方法:在之后的命令行输入时,涉及到对系统文件、系统环境的修改时要记得加上 sudo。

不能因为 sudo 麻烦而直接使用 root 用户登录。不然没准哪天你就会不小心删库跑路

Task Over

然而还差 12h 工时……绝了


评论




博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Zam's Blog 作为主题,总访问量为
字数统计:47k 载入天数...载入时分秒...