自学内容网 自学内容网

详解:CentOS 7 NAT模式的网络配置

打开虚拟机发现并没有网络选项 

一、解决虚拟机ping通主机 

解决方法1: 启动VMware NAT Service

(1)首先查看主机的ip地址,win+R打开搜索框,输入cmd 

(2)输入ipconfig查看网络配置信息 
ipconfig
(3)找到  VMware Network Adapter VMnet8: IPv4 地址的ip地址

(4)接着在虚拟机的终端使用ping命令,看是否能通主机,结果是网络不可达 

 (5)使用win+R输入services.msc 查看主机的服务

(6) 找到VMware NAT Service 并启动服务

(7)回到虚拟机,发现网络连接选项出来了 

(8)点击进行连接即可

(9)如果出现了这个标志说明成功连接网络 

 (10)进入虚拟机的终端再次进行ping命令,发现可以连通主机


解决方法2:打开公用配置文件的入站连接

如果虚拟机还是不能ping通主机可能被主机的防火墙拦截了。 

(1)打开主机的控制面板,如果桌面没有的可以直接搜

(2)点击系统和安全 

(3)点击 Windows Defender 防火墙 

(4)点击高级设置 

(5)点击Windows Defender 防火墙属性

(6)将公共配置文件的入站连接改为允许 

(7)改成允许,点击应用并确定 

(8)最后回到虚拟机看是否能ping通主机 


解决方法3:关闭防火墙

如果虚拟机还是不能ping通主机,可以试试直接关闭防火墙

(1)点击启用或关闭选项

(2)点击关闭再确定 

(3)最后回到虚拟机看是否能ping通主机  


二、解决主机ping通虚拟机

(1)打开终端输入ifconfig命令查看虚拟机的网络配置信息(主要是查看虚拟机的ip地址)

ifconfig

 (2)打开主机终端,使用ping命令看是否能ping通虚拟机 

如果出现以下问题:

#注意:如果你用下面的方式查找虚拟机的ip地址可能是错误的!!!

结果如下: 

解决方法1:网络配置文件更改

(1)打开主机的控制面板,如果桌面没有的可以直接搜

(2)点击 网络和Internet 

(3)点击网络和共享中心 

(4)点击更改高级共享设置 

(5)点击所有网络 

(6)点击启动 后保存更改

(7)使用ping命令,发现主机可以连通虚拟机 


解决方法2:关闭虚拟机防火墙的命令

(1)打开虚拟机终端,输入systemctl stop firewalld.service //停止firewall
systemctl stop firewalld.service
 (2)输入:systemctl disable firewalld.service //禁止firewall开机启动
systemctl disable firewalld.service 
(3)检查虚拟机网卡:
1.先切换到目录:cd /etc/sysconfig/network-scripts/
cd /etc/sysconfig/network-scripts/
2.再查看: 
ls
3.找到一个ifcfg-ens开头的文件: 我的文件是ifcfg-ens33然后打开这个文件

 

4.使用vi / vim 编辑文件
vim ifcfg-ens33
 5.将ONBOOT=no改为yes ,这文件我之前修改过。

内容如下:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=466a31dc-3485-4d97-bcae-a3fd15fd2f5d
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.226.50
PREFIX=24
GATEWAY=192.168.226.2
DNS1=8.8.8.8
(4)使用ping命令,发现主机可以连通虚拟机  


注意可能出现的情况 !!!

(1)当你的电脑重启后,进入虚拟机如果出现如下图的情况:网络连接选项都没有!!!(天塌了)

别急!!!问题就是主机没有开启 VMware NAT Service 自启动!!!

(1)再次进入服务

(2) 找到 VMware NAT Service 先进行启动

(3) 单机鼠标右键选择属性

(4) 将手动启动类型改为自动

(5) 选择自动类型后点击应用再确定即可

(6)回到虚拟机,发现网络连接选项出来了 

(7)点击连接即可 


三、原理介绍

在NAT(网络地址转换)模式下,虚拟机能够连上网的原理涉及以下几个关键点:

1. NAT的工作原理

        NAT是一种网络地址转换技术,它允许一个网络中的多个设备共享一个公共IP地址访问外部网络。在NAT模式下,虚拟化软件在宿主机上创建了一个虚拟的NAT路由器,用于将虚拟机的私有IP地址转换为宿主机的公共IP地址。

2. 虚拟网络适配器

        虚拟机通过虚拟网络适配器(vNIC)与宿主机的虚拟网络交换机(如VirtualBox的VirtualBox Host-Only Network或VMware的VMnet8)连接。

3. 虚拟NAT设备

        在NAT模式下,宿主机的虚拟化软件会创建一个虚拟NAT设备,这个设备负责将虚拟机的私有IP地址转换为宿主机的公共IP地址,并管理数据包的转发。

以下是NAT模式下虚拟机连网的详细原理:

3.1 私有网络

        虚拟机被分配一个私有IP地址,这个地址通常来自一个专门为内部网络保留的IP地址范围,如RFC 1918地址(例如192.168.x.x, 10.x.x.x, 172.16.x.x等)。

3.2 虚拟NAT路由器
  • 源地址转换(SNAT):当虚拟机发送数据包到外部网络时,NAT路由器会修改数据包的源IP地址,将其从虚拟机的私有IP地址转换为宿主机的公共IP地址。
  • 端口映射:NAT路由器还会跟踪每个数据包的源端口,确保返回的数据包能够正确地转发回相应的虚拟机。
3.3 数据包传输流程

以下是虚拟机通过NAT模式发送和接收数据包的流程:

  1. 发送数据包

    • 虚拟机产生一个数据包,数据包的源IP地址是虚拟机的私有IP地址,目标IP地址是外部网络的一个地址。
    • 数据包首先被发送到虚拟网络适配器,然后到达宿主机的虚拟网络交换机。
    • NAT路由器接收到数据包后,修改数据包的源IP地址为宿主机的公共IP地址,并记录源端口和虚拟机的私有IP地址及端口的映射关系。
    • 修改后的数据包被发送到宿主机的物理网络适配器,并最终到达外部网络。
  2. 接收数据包

    • 外部网络返回的数据包的目标IP地址是宿主机的公共IP地址。
    • 宿主机的物理网络适配器接收到数据包后,根据目标端口查找之前建立的映射关系。
    • NAT路由器根据映射关系将数据包的目标IP地址和端口转换回虚拟机的私有IP地址和端口。
    • 数据包被转发到虚拟机的虚拟网络适配器,最终到达虚拟机。

4. DHCP服务

        在NAT模式下,通常还会有一个DHCP服务器为虚拟机自动分配IP地址、子网掩码、默认网关和DNS服务器地址。

5. 端口转发

        如果虚拟机需要提供网络服务,可以通过端口转发将宿主机的某个端口映射到虚拟机的特定端口,从而允许外部网络访问虚拟机上的服务。


虚拟机联网的详细过程: 

  1. 虚拟网络接口

    • 假设我们在宿主机上使用VirtualBox或VMware等虚拟化软件创建了一个虚拟机,并为该虚拟机分配了一个虚拟网络接口(通常是虚拟网卡)。
  2. NAT转换器

    • 宿主机上会运行一个NAT转换器,它负责将虚拟机的内部IP地址转换为主机的外部IP地址。

以下是具体的联网过程:

步骤1:虚拟机发起网络请求

  • 虚拟机内部的应用程序发起一个网络请求,比如尝试访问一个网站(例如 http://www.example.com)。

步骤2:虚拟机内部网络栈处理

  • 虚拟机的操作系统将请求发送到其网络栈,然后通过虚拟网络接口发出。

步骤3:NAT转换

  • NAT转换器接收到虚拟机的网络请求,它将虚拟机的内部IP地址(例如 192.168.56.101)和端口(例如 12345)转换为主机的对外IP地址(例如 203.0.113.1)和一个随机的高端口(例如 54321)。

步骤4:外部网络通信

  • 转换后的请求现在看起来像是从宿主机发出的。宿主机的网络栈将请求发送到外部网络。

步骤5:响应返回

  • 目标服务器(www.example.com)处理请求并返回响应。响应的目的地是宿主机的对外IP地址和端口(203.0.113.1:54321)。

步骤6:NAT转换器接收响应

  • 宿主机的网络栈接收到响应后,NAT转换器识别出这是之前虚拟机请求的响应。

步骤7:NAT转换器转发响应

  • NAT转换器将响应的目的地IP地址和端口转换回虚拟机的内部IP地址和端口(192.168.56.101:12345),然后将响应转发给虚拟机。

步骤8:虚拟机接收响应

  • 虚拟机的网络栈接收到响应,并将其传递给发起请求的应用程序。

        通过这个过程,虚拟机能够在NAT模式下访问外部网络,同时外部网络无法直接访问虚拟机,因为NAT转换器隐藏了虚拟机的内部网络结构,这为虚拟机提供了一定程度的安全保护。


原文地址:https://blog.csdn.net/2401_83418369/article/details/142996570

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!