如何通过 NAT 模式连接VMware虚拟机以及存在和不存在ens33文件的解决方案

2023-11-02 17:20

本文主要是介绍如何通过 NAT 模式连接VMware虚拟机以及存在和不存在ens33文件的解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 1 VMware配置
    • 1.1 打开vmvare虚拟网络编辑器
    • 1.2 取消使用本地DHCP
    • 1.3 NAT设置
  • 2 虚拟机的配置
    • 2.1 存在ens33
      • 2.2.1 修改ifcfg-ens33文件
        • 2.2.1.1 为什么设置BOOTPROTO=static?
        • 2.2.1.2 如何选择使用static还是dhcp?
      • 2.2.2 关闭防火墙
    • 2.2 不存在ens33
      • 2.1 设置IP地址、子网掩码和网关
      • 2.2 设置DNS
      • 2.3 设置主机名
      • 2.4 重启虚拟机
      • 2.5 网卡服务开机自启动
    • 2.5.1 rc.local
    • 2.5.2 授予权限
  • 3 连接测试
  • 总结


前言

NAT 模式
NAT 模式就是让虚拟机借助 NAT (网络地址转换)功能,通过宿主机来访问外部网络。
本文在保证虚拟机的网络可以查到ip的情况下,让宿主机通过远程连接工具连接到虚拟机。


1 VMware配置

该配置的目的是:检查Linux虚拟机的网络连接模式,确保它是NAT模式

1.1 打开vmvare虚拟网络编辑器

在VMware界面,点击编辑==>虚拟网络编辑器
在这里插入图片描述

1.2 取消使用本地DHCP

选择VMnet8(NAT模式),取消勾选使用本地DHCP服务,若使用DHCP服务的话,会动态分配IP。
在这里插入图片描述
注:如果此处未选择DHCP服务,那么在ems33中建议配置BOOTPROTO=static。如果配置BOOTPROTO=dhcp则会产生ens33无法获取ip的现象,该现象在开机时,可以获取ip地址,但是过一段时间会无法连接。

1.3 NAT设置

1.2设置完成后,点击NAT模式(与虚拟机共享主机的IP地址)==>NAT设置。
在这里插入图片描述

解释如下:
192.168.79.0 //所表示的网段IP
255.255.255.0 //所表示的是子网掩码
192.168.79.2 //为网关地址,我们在设置虚拟机的IP时,不能使用0、2这几个地址。


2 虚拟机的配置

打开虚拟机,准备配置设置虚拟机IP、网关、DNS和主机名。
首先需要确认本机是否存在ens33文件,如果存在连接就比较简单:

2.1 存在ens33

2.2.1 修改ifcfg-ens33文件

vim /etc/sysconfig/network-scripts/ifcfg-ens33
一般需要修改以下三个选项:
BOOTPROTO=static
NETMASK=255.255.255.0
ONBOOT=yes 
2.2.1.1 为什么设置BOOTPROTO=static?
因为在虚拟机1.2的配置中,取消了dhcp服务器,已经无法动态分配地址。如果配置BOOTPROTO=dhcp则会产生ens33无法获取ip的现象,该现象在开机时,可以获取ip地址,但是过一段时间会无法连接。
2.2.1.2 如何选择使用static还是dhcp?

static:虚拟机较少,可以选择自己去分配。
dhcp:需要处理大量虚拟机,或者不想自己去分配ip。

2.2.2 关闭防火墙

systemctl disable firewalld
reboot

然后用远程工具就可以直接连接了!

2.2 不存在ens33

需要手动配置就比较麻烦一些,过程如下所示:

2.1 设置IP地址、子网掩码和网关

vim /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
BOOTPROTO=static
IPADDR=192.168.79.129
GETWAY=192.168.79.2
NETMASK=255.255.255.0
ONBOOT=yes 

解释如下:
DEVICE=ens33 //网络设备的名称
BOOTPROTO=static //网络分配方式为静态
IPADDR=192.168.79.129 //设置的IP地址
NETMASK=255.255.255.0 //子网掩码
GATEWAY=192.168.79.2 //网关
ONBOOT=yes //指系统启动时是否激活网卡
注:除了修改配置外,还需要禁用NetworkManager,可以参考这篇文章:Linux Centos7安装后,无法查询到IP地址,无ens0,只有lo和ens33的解决方案

2.2 设置DNS

vim /etc/resolv.conf

在这里插入图片描述

namerserver配置为网关地址

2.3 设置主机名

vim /etc/sysconfig/network

在该文件中写入以下配置:

NETWORKING=yes
HOSTNAME=KBDCT-TEST

主机名为:[root@后面的名称]

vim /etc/hostname

如果该文件无信息,则填入主机名即可;
如果有信息,则确认主机名是否正确。

2.4 重启虚拟机

service network restart //重启网卡
reboot //重启虚拟机

此时有可能出现一个问题,使用查询网卡状态

systemctl status network

在这里插入图片描述
发现网卡状态是dead。
此时输入:

systemctl start network
systemctl status network

在这里插入图片描述
证明网卡服务是正常的,只是没有启动,所以需要配置网卡服务的开机自启动。

2.5 网卡服务开机自启动

2.5.1 rc.local

设置开机自启动方式有很多,此处选择修改rc.local的方式。

vi /ect/rc.local

在文件中输入以下信息:

systemctl start network

在这里插入图片描述

2.5.2 授予权限

加入上述启动命令后,使用chmod提升文件权限,并重启虚拟机。

sudo chmod +x /etc/rc.local
reboot

3 连接测试

此时可以直接使用外部的远程连接工具连接虚拟机,此处以finalshell为例:
在这里插入图片描述


总结

关键点在于:
(1)VMware的配置;
(2)虚拟机的网卡配置,包含存在和不存在ens33两种情况的解决方案。

这篇关于如何通过 NAT 模式连接VMware虚拟机以及存在和不存在ens33文件的解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/332106

相关文章

C#文件复制异常:"未能找到文件"的解决方案与预防措施

《C#文件复制异常:未能找到文件的解决方案与预防措施》在C#开发中,文件操作是基础中的基础,但有时最基础的File.Copy()方法也会抛出令人困惑的异常,当targetFilePath设置为D:2... 目录一个看似简单的文件操作问题问题重现与错误分析错误代码示例错误信息根本原因分析全面解决方案1. 确保

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

SpringBoot3匹配Mybatis3的错误与解决方案

《SpringBoot3匹配Mybatis3的错误与解决方案》文章指出SpringBoot3与MyBatis3兼容性问题,因未更新MyBatis-Plus依赖至SpringBoot3专用坐标,导致类冲... 目录SpringBoot3匹配MyBATis3的错误与解决mybatis在SpringBoot3如果

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

C++ vector越界问题的完整解决方案

《C++vector越界问题的完整解决方案》在C++开发中,std::vector作为最常用的动态数组容器,其便捷性与性能优势使其成为处理可变长度数据的首选,然而,数组越界访问始终是威胁程序稳定性的... 目录引言一、vector越界的底层原理与危害1.1 越界访问的本质原因1.2 越界访问的实际危害二、基

C#和Unity中的中介者模式使用方式

《C#和Unity中的中介者模式使用方式》中介者模式通过中介者封装对象交互,降低耦合度,集中控制逻辑,适用于复杂系统组件交互场景,C#中可用事件、委托或MediatR实现,提升可维护性与灵活性... 目录C#中的中介者模式详解一、中介者模式的基本概念1. 定义2. 组成要素3. 模式结构二、中介者模式的特点

Python 字符串裁切与提取全面且实用的解决方案

《Python字符串裁切与提取全面且实用的解决方案》本文梳理了Python字符串处理方法,涵盖基础切片、split/partition分割、正则匹配及结构化数据解析(如BeautifulSoup、j... 目录python 字符串裁切与提取的完整指南 基础切片方法1. 使用切片操作符[start:end]2

python连接sqlite3简单用法完整例子

《python连接sqlite3简单用法完整例子》SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置,:本文主要介绍python连接sqli... 目录1. 连接到数据库2. 创建游标对象3. 创建表4. 插入数据5. 查询数据6. 更新数据7. 删除

Linux部署中的文件大小写问题的解决方案

《Linux部署中的文件大小写问题的解决方案》在本地开发环境(Windows/macOS)一切正常,但部署到Linux服务器后出现模块加载错误,核心原因是Linux文件系统严格区分大小写,所以本文给大... 目录问题背景解决方案配置要求问题背景在本地开发环境(Windows/MACOS)一切正常,但部署到