当前位置: 首页 > backend >正文

如何使用VMware创建一台Ubuntu机器

目录

一、ubuntu系统镜像下载

(1)选择合适的Ubuntu版本

(2)官方网站下载

二、VMware创建虚拟机

(1)准备工作(适配 Server 版需求)​​

(2)新建虚拟机

(3)安装Ubuntu系统

三、使用xshell连接该虚拟机

四、关于3种网络模式及公网访问

(1)三种网络模式介绍

(2)NAT模式+端口映射

(3)内网穿透


        在学习Linux网络之前,为了方便,本人一直使用的是阿里云服务器。一般情况下他是足够使用的,但是偶尔会出现卡顿,或者CPU资源占满而不得不去重启的问题。当然这些都能容忍,不过到了尝试百万连接的时候,由于仅仅是管理socket结构体就需要占用大量内存,而我的云服务器只有2G内存,是远远不够用的。不得已开始使用虚拟机,虚拟机是直接使用物理机的资源的,一般的笔记本都是16G、32G内存,匀出一部分给虚拟机还是能保证物理机的正常工作的。

        本文记录了如何在VMware创建虚拟机,并使用xshell连接虚拟机方便开发的全过程。然后解决了虚拟机被虚拟网卡VMnet8导致了无法被物理机等内网设备访问的问题。这里采取的是NAT模式+端口映射的方式。

一、ubuntu系统镜像下载

        要搭建ubuntu虚拟机,首先要获取官方的系统镜像文件(iso文件),这是确保系统稳定性和安全性的第一步。

(1)选择合适的Ubuntu版本

Ubuntu 有多个版本,不同版本适用场景不同:​

  • Ubuntu Desktop(桌面版):适合个人用户,提供图形化界面,操作直观,适合日常办公、学习和开发环境搭建。​
  • Ubuntu Server(服务器版):无图形化界面,占用资源少,适合搭建服务器,如 Web 服务器、数据库服务器等,适合有一定 Linux 基础的用户。​

        建议选择长期支持版(LTS),如 Ubuntu Server 22.04 LTS,该版本官方提供 5 年的安全更新和技术支持,稳定性更强,避免频繁升级系统带来的麻烦。

        此外,需确认镜像架构为64 位(amd64),当前主流服务器与个人电脑均支持该架构,32 位(i386)版本已逐步淘汰,官方仅对部分旧版提供有限支持。        

(2)官方网站下载

  1. 访问 Ubuntu Server 官方下载页(https://ubuntu.com/download/server),页面默认展示最新 LTS 版本(如 “Ubuntu Server 22.04 LTS”),点击 “Download” 按钮进入下载界面。​
  • 直接下载:点击 “Download 64-bit PC (AMD64) server install image”,通过浏览器直接下载,适合网络稳定的环境,文件大小约 2.5GB(Ubuntu Server 22.04 LTS)。​
  • Torrent 下载:若网络波动大或下载速度慢,点击 “Alternative downloads” 下的 “Torrent” 链接,使用 BitTorrent 客户端(如迅雷、qBittorrent)下载,能通过 P2P 加速提升成功率。

        如果下载较慢也可以使用清华大学镜像源Index of /ubuntu-releases/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror、阿里云镜像源等。因为我们直接在官网下载需要经过国际网络,而这些镜像源是在国内的,速度较快。

二、VMware创建虚拟机

(1)准备工作(适配 Server 版需求)​​

  • 已安装 VMware Workstation Pro(16.x 及以上版本,支持最新 Ubuntu Server),安装时需勾选 “VMware 网络服务”“VMware DHCP 服务” 组件,确保网络配置功能正常。​
  • 硬件最低配置:主机内存≥4GB(建议为虚拟机分配 2GB 及以上,若需运行 Docker 等服务,建议分配 4GB)、空闲硬盘空间≥20GB(推荐 50GB 及以上,Server 版虽占用低,但服务数据需预留空间)、CPU 支持虚拟化技术(Intel VT-x/AMD-V,需在 BIOS 中开启,否则虚拟机无法启动)。​
  • 提前关闭主机防火墙临时拦截(如 Windows Defender、360 安全卫士),避免安装过程中 VMware 组件被屏蔽。

(2)新建虚拟机

(3)安装Ubuntu系统

如果没有网络很有可能是下面这儿没有启动,在物理机中找到“服务”程序。

三、使用xshell连接该虚拟机

        因为直接使用vmware的界面来进行编程,多少有点丑陋,而xshell则可以根据需求自己修改字体、背景颜色等等。使用起来更加方便。

注意,以后在使用xshell的时候,必须保证该虚拟机已经在vmware中开启了,因为xshell只是通过ssh和该虚拟机进行通信,但是本体还是在vmware中的。

四、关于3种网络模式及公网访问

(1)三种网络模式介绍

        在Vmware中,虚拟机有3种常见的网络模式,要先搞清楚他们的区别,才能明白为什么NAT模式只能用于客户端,为什么桥接模式+静态IP可以做服务端。

NAT模式:

虚拟机通过主机的网络上网,相当于主机是虚拟机的路由器。

特点:虚拟机可以访问互联网,但局域网里的其他设备(比如同一网络的另一台电脑、手机)找不到这台虚拟机。适合 “只想让虚拟机上网,不需要被外部访问” 的场景(比如单纯用虚拟机下载东西、更新系统)。

NAT模式图:

桥接模式

虚拟机直接 “插” 入主机所在的局域网,和主机、手机、其他电脑处于同一网段

特点:局域网里的所有设备都能找到这台虚拟机,也能互相访问。适合 “需要把虚拟机当服务器,让局域网其他设备远程连接(比如 SSH 登录、网页访问)” 的场景。

桥接模式图:

仅主机模式

虚拟机只能和 “主机”网络通信,连不上互联网,也看不到局域网其他设备。适合 “完全封闭的内网测试”(比如本地开发调试,不需要联网)。

Server 版常见需求:由于我们的需求是要让虚拟机作为 “服务端”,被局域网里的其他设备(比如自己的电脑、同学 / 同事的设备)远程管理,所以优先选 桥接模式 + 静态 IP(静态 IP 能让虚拟机的 IP 固定,方便后续每次远程连接)但是这种方式由于我身处校园网,尝试了后发现失败了。于是发现了另外一种方式NAT模式+端口映射

(2)NAT模式+端口映射

NAT模式+端口映射图:

注意:这里虚拟网卡其实也相当于完成了虚拟路由器的功能,他会记录一个NAT表,和实际的路由器类似。

  1. 打开 VMware,选中要配置的虚拟机,点击 “编辑虚拟机设置”。
  2. 选择 “网络适配器”,确保网络连接模式是 “NAT 模式”(这种模式下,虚拟机可以通过宿主机上网,且便于配置端口映射)。
  3. 点击 “NAT 设置” 按钮。
  4. 在 “端口转发” 区域,点击 “添加”。
    • “主机端口”:设置物理机上要开放的端口,比如要让外网访问虚拟机的 Web 服务(默认 80 端口),可以设置主机端口8888。
    • “虚拟机 IP 地址”:在虚拟机系统里,通过命令(如 Linux 的ifconfig、Windows 的ipconfig)查看虚拟机的内网 IP(比如192.168.122.100)。
    • “虚拟机端口”:虚拟机内服务对应的端口,Web 服务就是80。这里我设置的是8888
    • 填写好后保存,这样物理机的8888端口就会转发到虚拟机的8888端口。​​​​​​​

        当你做好了上述的所有操作后,开始验证端口是否映射成功了。        

发现连接成功,此时说明端口映射成功。

(3)内网穿透

        在上面的场景下,实际实现的是在同一个路由器下的内网访问。当内网中的其他设备访问物理机的内网IP+端口号8888的时候,会被物理机递交给VMnet8这个虚拟网卡,然后由他转交给虚拟机的8888端口。

        其实在这里,已经可以仅用内网设备尝试TCP百万并发了。如果你只想快速学习百万并发的场景,可以不用继续看了。

        于是问题变成了外网如何访问物理机。关于这个问题,我在后面一篇文章会使用frp这种成熟的内网穿透工具实现。

http://www.xdnf.cn/news/19504.html

相关文章:

  • Shell脚本实用技巧集锦:从时间判断到系统监控
  • 【数据可视化-104】安徽省2025年上半年GDP数据可视化分析:用Python和Pyecharts打造炫酷大屏
  • HTTP/2 多路复用
  • 网络流量分析——熟悉Wireshark
  • 时序数据库国产的有哪些?
  • ​​--flush-logs 的作用:刷新 MySQL 的日志文件(主要是二进制日志 binlog)​
  • 解析简历重难点与面试回答要点
  • 【开题答辩全过程】以 健身爱好者饮食管理小程序为例,包含答辩的问题和答案
  • LeetCode82删除排序链表中的重复元素 II
  • 力扣hot100 | 堆 | 215. 数组中的第K个最大元素、347. 前 K 个高频元素、128. 最长连续序列
  • 《架构师手记:SpringCloud整合Nacos实战·一》
  • Transformer的并行计算与长序列处理瓶颈总结
  • 可编辑115页PPT | 某纸制品制造企业数字化转型战略规划项目建议书
  • 【实验protocol分享】了解流式细胞术
  • 串口通讯个人见解
  • 软考中级【网络工程师】第6版教材 第4章 无线通信网 (下)
  • matlab扫雷小游戏
  • 艾莉丝努力练剑的创作纪念日:星河初启,牧梦长空
  • 企业级主流日志系统架构对比ELKK Stack -Grafana Stack
  • pyside6小项目:进制转换器
  • 【OpenFeign】基础使用
  • Kubernetes一网络组件概述
  • Java比较器
  • 如何在 vscode 上用 git 将项目 push 到远程仓库 and 常用Git 命令
  • 剧本杀小程序系统开发:重塑社交娱乐新生态
  • 【开题答辩全过程】以 基于Spring Boot的房屋租赁系统的设计与实现为例,包含答辩的问题和答案
  • 神经网络1——sklearn的简单实现
  • leetcode笔记
  • 20.29 QLoRA适配器实战:24GB显卡轻松微调650亿参数大模型
  • 堡垒机(跳板机)入门指南:构建更安全的多服务器运维架构