网络配置
常用的虚拟机软件有VMware workstations和VirtualBox等,在使用虚拟机时,VMware的网络连接问题十分基础而关键。本文介绍下关于VMware workstations网络连接的三种模式。
工作模式 | 虚拟网卡(虚拟交换机) | 介绍 |
---|---|---|
Host-Only(仅主机模式) | VMnet1 |
虚拟机只能与主机构成内部通信,无法对外网进行访问 |
Bridged(桥接模式) | VMnet0 |
仅一台虚拟机可以和宿主互通,并可以访问外网 |
NAT(网络地址转换模式) | VMnet8 |
多台虚拟机和物理主机之间都可以互相通信,虚拟机也可访问外网 |
打开VMware虚拟机,我们可以在选项栏的“编辑”下的“虚拟网络编辑器”中看到这三种模式:
在物理主机上对应的有VMware Network Adapter VMnet1
和VMware Network Adapter VMnet8
两块虚拟网卡,它们分别作用于仅主机模式与NAT模式下:
那为什么在物理机上没有VMware Network Adapter VMnet0
桥接模式的虚拟网卡呢?接下来来看一下这是为什么。在此之前先来看看“仅主机”模式下虚拟机主机访问百度的结果(无法访问):
桥接模式
什么是桥接模式?桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机IP地址需要与主机在同一个网段,如果需要联网,则网关与DNS需要与主机网卡一致。其网络结构如下图所示:
接下来,我们就来实际操作,如何设置桥接模式。
1、安装完Centos7虚拟系统之后,在开启系统之前,点击“编辑虚拟机设置”来设置网卡模式,选择“桥接模式”:
2、在VMware菜单栏中,“编辑->虚拟网络编辑器”,桥接模式使用的是vmnet0
虚拟交换机,有的打开之后可能看不到,点击下面的更改设置:
3、选择桥接模式并勾选对应的网卡,这一步非常关键,这里的这个下拉选项如果选错了那么是没有办法联网的,并且你的主机和虚拟机也会无法通信:
4、使用ipconfig /all
命令查询Windows物理主机无线WIFI网卡对应的IP地址和DNS服务器地址等信息:
5、以root权限进入网卡配置文件的存放路径/etc/sysconfig/network-scripts
,找到ifcfg-eth
文件并使用vi
命令准备进行编辑:
6、输入i
进入插入模式修改2个配置项,并在文件末尾添加以下5行配置行,然后按Esc
键+“:wq
”保存编辑并退出文件:
简单解释下相关配置项:
配置项 | 解释 |
---|---|
BOOTPROTO=static | 表示静态IP |
ONBOOT=yes | 表示是否开机启动, 要想网卡开机就启动或通过 systemctl restart network控制网卡,必须设置为 yes |
IPADDR | 自由指定虚拟机的IP地址,与物理主机保持同一网段即可 |
GATEWAY | 网关地址,与物理主机无线网卡的网关地址一致 |
NETMASK | 子网掩码,与物理主机无线网卡的子网掩码一致 |
NDS1、NDS2 | 域名解析服务器,没有这个配置,你的虚拟机访问的域名就无法被解析,只能通过IP来访问 |
7、最后使用命令systemctl restart network
重启网卡:
8、此时虚拟机即可连接外网,成功访问百度:
9、那主机与虚拟机之间的通信是否正常呢?我们就用远程工具Xshell
来测试一下,主机与虚拟机通信正常:
桥接模式配置简单,但如果你有大量虚拟机主机(如分布式集群)而你的网络环境是IP资源很缺少或对IP管理比较严格的话,那桥接模式就不太适用了。如果真是这种情况的话,可以用VMware的另一种网络模式:NAT模式。
NAT模式
在NAT模式中,主机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟交换机VMnet8
上,这样就实现了虚拟机联网。其网络结构如下图所示:
那么我们会觉得很奇怪,为什么需要虚拟网卡VMware Network Adapter VMnet8
呢?原来我们的VMware Network Adapter VMnet8虚拟网卡主要是为了实现主机与虚拟机之间的通信。在之后的设置步骤中,我们会加以验证,先来看看如何配置NAT模式:
1、使用ipconfig /all
命令查询Windows物理主机分配给VMnet8
虚拟网卡对应的IP地址信息:
2、设置虚拟机中NAT模式的选项,打开VMware,点击 “编辑” 菜单栏下的 “虚拟网络编辑器”,查看并设置NAT参数及DHCP参数:
3、将相应虚拟机的网络连接模式设置为NAT模式:
4、以root权限进入网卡配置文件的存放路径/etc/sysconfig/network-scripts
,找到ifcfg-eth(网卡名称各异)
文件并使用vi
命令准备进行编辑:
5、输入i
进入插入模式修改2个配置项,并在文件末尾添加以下5行配置行,然后按Esc
键+“:wq
”保存编辑并退出文件:
【补充】此处列举下公告DNS服务器地址列表:
6、最后使用命令systemctl restart network
重启网卡:
7、此时虚拟机即可连接外网,成功访问百度:
8、前面我们说过VMware Network Adapter VMnet8
虚拟网卡的作用是为了实现主机与虚拟机之间的通信,现在就来测试一下。在物理主机禁用VMbet8网卡,然后在Centos7主机中发现依然能访问百度:
9、上面虚拟机仍然能联通外网,说明确实不是通过VMware Network Adapter VMnet8
虚拟网卡,但是我们会发现VMnet8网卡被禁用后,远程连接工具Xshell将无法连接虚拟机了:
10、最后将VMware Network Adapter VMnet8
虚拟网卡启用,发现远程工具可以连接上虚拟机了:
这就是NAT模式,利用虚拟的NAT设备以及虚拟DHCP服务器来使虚拟机连接外网,而VMware Network Adapter VMnet8
虚拟网卡是用来让物理主机和虚拟机进行通信的。
【补充】扯一点闲话,上面这个过程中,物理机对VMware Network Adapter VMnet8
虚拟网卡的IP配置都是自动的(但是并不影响):
为了对整个NAT模式下的网络拓扑了解更清晰,我们也可以对其IP地址进行设置:
主机模式
Host-Only仅主机模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1
虚拟网卡连接VMnet1
虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。其网络结构如下图所示:
通过上图我们可以发现,在仅主机模式下,如果要使得虚拟机能联网,我们可以将主机网卡共享给VMware Network Adapter VMnet1
网卡,从而达到虚拟机联网的目的。接下来,我们就先来实际测试一下。
1、老规矩,先使用ipconfig /all
命令查询Windows物理主机分配给VMnet1
虚拟网卡对应的IP地址信息:
2、设置“虚拟网络编辑器”,可以查看并设置DHCP
的起始范围(VMware已根据物理机的IP配置为我们自动划分,保持默认即可):
3、设置Centos 7虚拟机为Host-Only
仅主机模式:
4、以root权限进入网卡配置文件的存放路径/etc/sysconfig/network-scripts
,找到ifcfg-eth(网卡名称各异)
文件并使用vi
命令准备进行编辑:
5、输入i
进入插入模式修改2个配置项,并在文件末尾添加以下3行配置行(网关地址可以不给,此处没用),然后按Esc
键+“:wq
”保存编辑并退出文件:
6、最后使用命令systemctl restart network
重启网卡:
7、此时虚拟机和物理机即可正常通讯,但是虚拟机无法访问外网:
8、接下来为了使得虚拟机在仅主机模式下也能联网,我们可以将物理主机的无线WIFI网卡共享**给VMware Network Adapter VMnet1
网卡:
9、接下来我们必须强制将VMnet1
的IP地址由自动获取改为192.168.92.1
,因为一会需要在虚拟机中将它指定为DNS服务器的地址:
10、在上面虚拟机中的网卡配置文件的基础上,添加一行DNS地址配置行:
11、重启网卡,然后虚拟机即可成功访问外网了:
以上就是关于VMware三种网络模式的工作原理及配置详解。
Xshell工具
Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。
Xshell的两个作用:
- Xshell是Windows下的软件,可以将你的Windows系统和你的Linux系统链接起来,让你在Windows系统下去操作你的Linux系统,不需要频繁去按ctrl+alt来释放鼠标;
- Xshell在渗透测试(或者主机远程运维)过程中可以在Windows界面下用来访问远端不同系统下的服务器,达到远程控制终端的目的。
Xshell的官网下载地址为:https://xshell.en.softonic.com/
,下面介绍下Xshell的简单使用。
1、打开Xshell,会自动带有一个本地shell,用于控制本地主机:
2、我们将连接Centos7虚拟机:
3、连接远程主机,可新建会话,输入IP地址、端口、主机账户、主机密码:
3、成功登录后即可远程操控主机: