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

文章目录

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

powershell 复制代码
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 关闭防火墙

powershell 复制代码
systemctl disable firewalld
reboot

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

2.2 不存在ens33

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

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

powershell 复制代码
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

powershell 复制代码
vim /etc/resolv.conf

namerserver配置为网关地址

2.3 设置主机名

powershell 复制代码
vim /etc/sysconfig/network

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

复制代码
NETWORKING=yes
HOSTNAME=KBDCT-TEST

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

powershell 复制代码
vim /etc/hostname

如果该文件无信息,则填入主机名即可;

如果有信息,则确认主机名是否正确。

2.4 重启虚拟机

powershell 复制代码
service network restart //重启网卡
reboot //重启虚拟机

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

powershell 复制代码
systemctl status network

发现网卡状态是dead。

此时输入:

powershell 复制代码
systemctl start network
systemctl status network

证明网卡服务是正常的,只是没有启动,所以需要配置网卡服务的开机自启动。

2.5 网卡服务开机自启动

2.5.1 rc.local

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

powershell 复制代码
vi /ect/rc.local

在文件中输入以下信息:

复制代码
systemctl start network

2.5.2 授予权限

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

powershell 复制代码
sudo chmod +x /etc/rc.local
reboot

3 连接测试

此时可以直接使用外部的远程连接工具连接虚拟机,此处以finalshell为例:


总结

关键点在于:

(1)VMware的配置;

(2)虚拟机的网卡配置,包含存在和不存在ens33两种情况的解决方案。

相关推荐
YuMiao3 小时前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
BingoGo1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
Sinclair3 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
JaguarJack3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
Rockbean4 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
茶杯梦轩4 天前
CompletableFuture 在 项目实战 中 创建异步任务 的核心优势及使用场景
服务器·后端·面试