VMware虚拟机全栈开发环境搭建指南:从Ubuntu到PyTorch实战
1. 项目概述:从零到一构建你的专属开发沙盒
每次接手一个新项目,或者想学习一门新技术,最头疼的是什么?对我而言,就是“环境搭建”。不同的项目依赖不同的库、不同的系统版本、不同的配置,直接在物理机上折腾,很容易把系统搞得一团糟,甚至出现“装了这个,那个就挂了”的尴尬局面。这时候,一个隔离、纯净、可随时重置的虚拟机环境就成了开发者和学习者的救星。
“Intv_AI_MK11辅助VMware虚拟机环境搭建与配置”这个项目,本质上就是一份高度定制化的“环境构建手册”。它不仅仅教你如何安装一个VMware虚拟机,更重要的是,它围绕一个具体的应用场景——可能是为某个AI项目(从标题中的“AI”推测)、嵌入式开发(从“MK11”可能联想到的微控制器)或综合性的开发环境——来规划整个虚拟机的软硬件配置。这就像给你一套毛坯房的钥匙,然后附上一份详细的装修指南,告诉你哪里该放工作台(开发工具),哪里该接水管(环境变量),哪里该布电线(依赖库),最终打造出一个即开即用的专业工作室。
对于初学者,它能帮你绕过无数坑,快速获得一个可运行的环境,把精力集中在学习核心内容上;对于有经验的开发者,它提供了一种环境标准化和知识沉淀的方法,确保团队协作或项目复现时的一致性。接下来,我将以构建一个典型的、用于AI模型开发与前后端联调的Linux虚拟机环境为例,拆解其中的每一个环节,分享我踩过的坑和总结出的最佳实践。
2. 核心需求解析与方案设计
在动手之前,盲目安装是最低效的做法。我们必须先想清楚,这个虚拟机到底要用来干什么?只有明确了目标,后续的所有选型和配置才有依据。
2.1 目标场景定义
从标题和关联热词来看,这个环境很可能服务于一个集成度较高的项目,比如一个包含AI模型推理、Web服务、数据库的综合应用。因此,我们的虚拟机需要满足以下核心需求:
- 隔离与纯净性:提供一个与宿主机完全隔离的沙盒环境,避免污染宿主机系统,也方便随时快照、回滚。
- 开发环境完备:需要支持Python(PyTorch/TensorFlow)、C/C++、Java、Node.js、数据库(如MySQL)等多种语言的开发和调试。
- AI框架支持:能够顺利安装和运行主流的AI框架,如PyTorch,这通常对GPU驱动、CUDA版本有特定要求。
- 工具链集成:集成必要的开发工具,如VS Code、Git、Maven、Docker(可选)等,提升开发效率。
- 网络与性能:需要稳定的网络连接用于下载包和部署服务,同时分配足够的CPU、内存和磁盘资源以保证流畅运行。
2.2 核心组件选型与理由
基于上述需求,我们做出如下关键选择:
- 虚拟化平台:VMware Workstation Pro。相比VirtualBox,VMware在性能(特别是I/O和图形)、与宿主机融合(如共享文件夹、拖放文件)以及快照管理上更为稳定和强大。Workstation Pro提供了更丰富的虚拟网络配置和硬件模拟选项,适合复杂的开发环境搭建。
- 客户机操作系统:Ubuntu 22.04 LTS。LTS(长期支持)版本能提供长达5年的稳定更新,避免了频繁升级带来的兼容性问题。Ubuntu拥有最广泛的社区支持和软件生态,几乎任何开发工具都能找到对应的安装指南或PPA源。
- AI框架:PyTorch。目前学术界和工业界应用最广泛的框架之一,生态繁荣,安装相对友好(尤其是通过Conda)。我们将以此为例配置AI环境。
- 集成开发环境:Visual Studio Code。轻量、跨平台、插件生态极其丰富,通过Remote-SSH或直接安装在虚拟机内,都能获得优秀的开发体验。
这个组合(VMware + Ubuntu + PyTorch + VS Code)构成了一个非常经典且强大的全栈开发环境基底,足以应对绝大多数研发场景。
3. VMware虚拟机创建与基础配置详解
这是整个项目的基石,一步错可能导致后续步步维艰。我将详细说明每个步骤背后的考量。
3.1 VMware Workstation的安装与初始设置
首先,从VMware官网下载Workstation Pro的安装程序。安装过程基本是“下一步”到底,但有几个地方需要注意:
- 增强型键盘驱动程序:建议安装。它能更好地处理国际键盘和功能键,在虚拟机与宿主机切换时体验更佳。
- 安装位置:建议不要安装在C盘默认路径,尤其是如果你的C盘空间紧张。虚拟机镜像文件通常会很大,后续我们也会将虚拟机文件存放到非系统盘。
安装完成后,首次运行建议进行一项关键设置:修改默认虚拟机存放路径。在“编辑” -> “首选项” -> “工作区”中,将“虚拟机的默认位置”更改到一个空间充足的磁盘分区(如D:\VMware\)。这能避免所有新建的虚拟机都堆在C盘用户目录下。
3.2 创建新的Ubuntu虚拟机
- 选择安装来源:点击“创建新的虚拟机”,选择“典型(推荐)”,然后指向你下载好的Ubuntu 22.04 LTS的ISO镜像文件。VMware会自动检测到这是Ubuntu Linux。
- 命名与位置:给你的虚拟机起个有意义的名字,例如“Dev_AI_Ubuntu22.04”。位置就选择刚才设置好的默认路径,或者手动指定一个子文件夹。
- 硬件资源分配:这是影响性能的关键步骤。
- 处理器:根据宿主机核心数,通常分配2-4个核心。如果你的宿主机是8核,分配4核给虚拟机可以获得很好的性能,同时不影响宿主机其他工作。
- 内存:至少分配4GB(4096 MB)。如果宿主机内存有16GB或以上,分配8GB是更舒适的选择。运行AI训练或大型IDE时,内存不足会直接导致卡顿甚至崩溃。
- 磁盘:选择“创建新虚拟磁盘”。大小建议至少40GB,并选择“将虚拟磁盘拆分成多个文件”。单一文件虽然性能可能略有优势,但拆分文件更便于迁移和备份(例如通过移动硬盘拷贝)。磁盘类型用默认的SCSI即可。
- 网络适配器:默认的“NAT模式”最适合大多数开发场景。它让虚拟机共享宿主机的IP上网,虚拟机可以访问外网,宿主机也可以直接访问虚拟机的服务(需配置端口转发),同时虚拟机与宿主机处于同一个虚拟子网内,互相可以ping通,非常方便。
注意:分配资源不是越多越好。过度分配会导致宿主机资源紧张,两者都卡。一个实用的原则是,确保宿主机在虚拟机运行时,仍有足够资源保持自身流畅运行。
- 自定义硬件(高级选项):在最后一步点击“自定义硬件”,这里有几个重要设置:
- 显示器:将“加速3D图形”勾选上。这对于运行带有图形界面的应用、或者未来需要做可视化调试时有帮助。
- 处理器:确认“虚拟化Intel VT-x/EPT或AMD-V/RVI”选项已勾选。这对于在虚拟机内再运行容器(如Docker)或某些需要硬件虚拟化支持的应用至关重要。
- USB控制器:如果后续需要连接USB设备(如开发板、加密狗),确保其存在且兼容性选择最新版本。
完成创建后,先不要急着启动。我们还有一项准备工作。
3.3 安装VMware Tools(增强功能)
虽然可以在安装完系统后再安装,但我强烈建议在启动安装程序前就加载Tools的ISO镜像。在虚拟机设置中,找到“CD/DVD (SATA)”选项,将其从“使用ISO映像文件”(你的Ubuntu安装镜像)改为“使用物理驱动器”或“自动检测”,然后在下方的“VMware Tools”一栏,点击“下载”或确保其已准备就绪。这样,在Ubuntu安装过程中或安装后,你就能在桌面上看到VMware Tools的安装包,直接安装即可。
VMware Tools的作用巨大:实现宿主机与虚拟机间的无缝剪贴板共享、文件拖放、鼠标自由移动、以及更好的屏幕分辨率自适应。没有它,操作体验会大打折扣。
4. Ubuntu系统安装与初始优化
现在,可以启动虚拟机并开始安装Ubuntu了。
4.1 图形化安装过程要点
Ubuntu的安装界面很友好,但有几个步骤需要留意:
- 语言与键盘布局:选择中文或英文,根据习惯来。键盘布局要选对,否则后续输入会很麻烦。
- 安装类型:选择“正常安装”即可,它会包含网页浏览器、办公套件等基础软件。如果你想追求极简,可以选“最小安装”。
- 磁盘分区:对于新手和大多数开发环境,强烈建议选择“清除整个磁盘并安装Ubuntu”。虚拟机磁盘本身就是一个独立的文件,这个操作只会影响虚拟磁盘,不会动到你的物理硬盘。让安装程序自动处理分区是最安全省心的。
- 时区与用户创建:设置好所在地时区。创建用户时,记住你设置的用户名和密码。建议勾选“自动登录”,在开发环境中可以省去每次启动输入密码的麻烦,当然这会降低一点安全性。
安装过程大约需要15-30分钟,完成后重启。重启后,如果之前设置了加载VMware Tools,现在应该能看到一个名为“VMware Tools”的虚拟光盘图标。打开它,将里面的.tar.gz压缩包解压到某个目录(如~/Downloads),打开终端,进入解压后的文件夹,执行以下命令:
sudo ./vmware-install.pl安装过程中,对所有提示的问题直接按回车选择默认选项即可。安装完成后,再次重启虚拟机,你会发现鼠标可以自由进出虚拟机窗口,屏幕也能全屏自适应了。
4.2 系统基础配置与换源
进入系统后,第一件事是更新软件源并升级系统,为了获得更快的下载速度,我们需要将Ubuntu的软件源更换为国内镜像,例如阿里云或清华大学的镜像。
- 备份原列表:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak - 编辑源列表:使用你喜欢的编辑器,如
sudo nano /etc/apt/sources.list,将文件内容全部替换为阿里云的源(以Ubuntu 22.04为例):deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse - 更新与升级:执行
sudo apt update && sudo apt upgrade -y。这个过程会下载并安装所有可用的更新,确保系统是最新的安全状态。
4.3 安装基础开发工具包
在配置具体语言环境前,先安装一些通用的、必备的工具:
sudo apt install -y build-essential curl wget git vim net-tools openssh-server htopbuild-essential:包含了GCC、G++、make等编译C/C++程序的核心工具。curl/wget:命令行下载工具。git:版本控制工具。vim:一个高效的文本编辑器(如果你不熟悉,也可以安装nano)。net-tools:包含ifconfig等网络诊断工具。openssh-server:安装SSH服务端,这样你就可以用VS Code Remote-SSH或终端工具(如MobaXterm)从宿主机远程连接到虚拟机,获得更好的操作体验。htop:一个增强型的系统监控工具。
安装SSH服务器后,需要启动它并设置开机自启:
sudo systemctl enable ssh --now然后,在虚拟机终端输入ip addr,查看虚拟机的IP地址(通常是192.168.xxx.xxx)。之后,你就可以在宿主机的VS Code中安装“Remote - SSH”扩展,然后连接这个IP地址了。
5. 核心开发环境搭建实战
基础系统就绪后,我们开始搭建具体的开发环境。这是整个配置中最体现“辅助”价值的部分。
5.1 Python与PyTorch环境搭建(Conda方案)
对于AI开发,最推荐使用Miniconda或Anaconda来管理Python环境。它能完美解决不同项目间包版本冲突的问题。
安装Miniconda:从清华镜像站下载安装脚本。
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh安装过程中,阅读协议,一路按回车,最后会问你是否初始化conda,选择“yes”。安装完成后,关闭并重新打开终端,你会发现命令行前面多了
(base)字样。配置Conda国内镜像:为了加速包下载,需要配置清华源。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ conda config --set show_channel_urls yes创建专属的PyTorch环境:不建议在
base环境里直接安装。我们创建一个名为pytorch_env的新环境,并指定Python版本为3.9(一个比较稳定兼容的版本)。conda create -n pytorch_env python=3.9 conda activate pytorch_env安装PyTorch:前往PyTorch官网,根据你的需求(无GPU)选择安装命令。对于虚拟机环境,通常没有直通GPU,所以我们安装CPU版本。
# 以PyTorch 2.0+为例,使用Conda安装CPU版本 conda install pytorch torchvision torchaudio cpuonly -c pytorch由于我们配置了镜像,这里的
-c pytorch会从我们设置的镜像中寻找包,速度很快。验证安装:激活环境后,进入Python交互界面,输入以下命令验证:
import torch print(torch.__version__) # 应输出版本号,如 2.0.1 x = torch.rand(5, 3) print(x) # 应输出一个5x3的随机张量如果成功输出,说明PyTorch环境安装成功。
实操心得:使用Conda环境是Python项目开发的“黄金法则”。每个独立项目都应创建自己的环境,并通过
environment.yml文件记录依赖,确保在任何机器上都能一键复现。命令conda env export > environment.yml可以导出当前环境的所有包。
5.2 C/C++开发环境配置
虽然安装了build-essential,但对于更舒适的开发,我们还需要配置调试器和包管理器。
- 安装GDB调试器:
sudo apt install -y gdb - 安装CMake:很多C++项目使用CMake构建。
sudo apt install -y cmake - (可选)安装Clang/LLVM:如果你想使用Clang编译器。
sudo apt install -y clang lldb
对于简单的C语言练习,至此环境已经足够。你可以用vim或VS Code编写一个hello.c文件,然后用gcc hello.c -o hello && ./hello来编译运行。
5.3 Java与Maven环境搭建
安装OpenJDK:Ubuntu仓库中提供了多个版本的JDK。安装JDK 11(一个广泛使用的LTS版本):
sudo apt install -y openjdk-11-jdk安装后,通过
java -version和javac -version验证。安装Maven:同样通过apt安装。
sudo apt install -y maven安装后,通过
mvn -v验证。配置环境变量(通常不需要):通过apt安装的JDK和Maven,系统已经自动配置好了环境变量。如果你下载了其他版本的JDK并手动安装,才需要配置
JAVA_HOME。可以通过update-alternatives命令来管理多个Java版本。
5.4 Node.js环境搭建
建议使用NodeSource维护的仓库来安装较新版本的Node.js。
- 添加NodeSource仓库(以安装Node.js 18.x为例):
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - - 安装Node.js和npm:
sudo apt install -y nodejs - 验证安装:
node --version和npm --version。
5.5 数据库安装与配置(以MySQL为例)
安装MySQL Server:
sudo apt install -y mysql-server安全初始化:运行安全脚本,设置root密码并移除一些不安全默认设置。
sudo mysql_secure_installation你会被问到一系列问题:
- 是否设置验证密码插件?按需选择。
- 设置root用户的密码。
- 是否移除匿名用户?选是。
- 是否禁止root远程登录?开发环境为了方便,可以选否(生产环境务必选是)。
- 是否移除测试数据库?选是。
- 是否立即重新加载权限表?选是。
检查服务状态:
sudo systemctl status mysql,应显示为active (running)。登录测试:使用root用户登录。
sudo mysql -u root -p输入你刚才设置的密码,即可进入MySQL命令行。
6. 开发工具集成与效率提升
环境搭好了,还需要好用的工具来干活。
6.1 Visual Studio Code安装与配置
安装:从VS Code官网下载
.deb包,或者通过以下命令添加微软仓库安装:wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list > /dev/null sudo apt update sudo apt install -y code安装后,可以在应用菜单中找到VS Code。
核心插件推荐:
- Python:微软官方出品,提供智能提示、调试、测试等全套功能。
- Remote - SSH:让你能在宿主机上用VS Code直接连接并编辑虚拟机中的文件,体验如同本地。
- C/C++:提供C/C++的智能感知、调试和代码浏览。
- Java Extension Pack:一套Java开发必备插件集合。
- ESLint/Prettier:用于JavaScript/TypeScript代码规范和格式化。
- GitLens:超级强大的Git历史查看工具。
6.2 Git全局配置
配置你的Git身份信息,这是提交代码所必需的。
git config --global user.name "Your Name" git config --global user.email "your.email@example.com" # 让Git记住你的凭证(避免每次push都输密码) git config --global credential.helper store6.3 共享文件夹设置(宿主机与虚拟机文件交换)
虽然可以用VS Code Remote-SSH,但有时直接通过共享文件夹交换大文件或目录更方便。
- 在VMware中设置:关闭虚拟机电源。在VMware的虚拟机设置中,找到“选项” -> “共享文件夹”,选择“总是启用”,然后点击“添加”,将宿主机上的一个目录(如
D:\SharedWithVM)共享给虚拟机,可以命名为shared。 - 在虚拟机中访问:启动虚拟机,共享文件夹通常会自动挂载在
/mnt/hgfs/目录下。如果没有,可能需要手动安装open-vm-tools-desktop并重启:
重启后,你应该能在sudo apt install -y open-vm-tools-desktop sudo reboot/mnt/hgfs/shared下看到宿主机共享的文件了。
7. 环境验证、快照与日常维护
7.1 综合环境验证清单
搭建完成后,运行一个简单的“冒烟测试”来验证核心功能:
| 组件 | 验证命令 | 预期输出 |
|---|---|---|
| 系统 | lsb_release -a | 显示Ubuntu 22.04信息 |
| Python (Conda) | conda activate pytorch_env && python -c "import torch; print(torch.__version__)" | 输出PyTorch版本号,无报错 |
| C/C++ | gcc --version | 输出GCC版本信息 |
| Java | java -version | 输出OpenJDK版本信息 |
| Maven | mvn -v | 输出Maven和Java版本信息 |
| Node.js | node --version | 输出Node.js版本号 |
| MySQL | sudo systemctl is-active mysql | 输出active |
| Git | git --version | 输出Git版本信息 |
| SSH | 在宿主机终端执行ssh <虚拟机用户名>@<虚拟机IP> | 成功登录到虚拟机终端 |
7.2 创建“黄金镜像”快照
这是VMware最强大的功能之一!在确认所有环境配置无误、可以正常使用后,务必创建一个干净的快照。
- 在VMware中,确保虚拟机处于开机或关机状态(推荐关机,状态最干净)。
- 点击“虚拟机” -> “快照” -> “拍摄快照”。
- 给快照起一个清晰的名字,例如“Base_Env_With_All_Tools”。
- 添加描述,如“Ubuntu 22.04 with Python(PyTorch), Java, Node.js, MySQL, VS Code configured”。
这个快照就是你未来的“后悔药”和“复制源”。任何时候环境被玩坏了,都可以瞬间回滚到这个纯净状态。在开始一个风险较高的实验(比如升级核心库、修改系统配置)之前,也建议先拍一个快照。
7.3 日常使用与维护建议
- 定期更新:每周或每两周,在终端执行
sudo apt update && sudo apt upgrade -y和conda update --all(在base环境)来更新系统和包。 - 环境隔离:坚持为每个新项目创建独立的Conda环境或使用虚拟环境(
venv)。 - 文档化配置:将重要的环境配置步骤、遇到的坑和解决方案记录在一个Markdown文件中,放在共享文件夹或版本控制里。这就是你项目的“Intv_AI_MK11辅助”文档。
- 资源监控:使用
htop命令随时查看CPU、内存使用情况,避免资源耗尽导致系统卡死。
8. 常见问题与故障排查实录
即使按照指南操作,也难免会遇到问题。这里记录几个我亲自踩过且高频出现的坑。
8.1 虚拟机启动黑屏或卡死
- 可能原因1:VMware与宿主机Windows的Hyper-V冲突。
- 排查:在Windows“启用或关闭Windows功能”中,查看是否开启了Hyper-V、Windows沙盒、虚拟机平台等。
- 解决:暂时关闭这些功能(尤其是Hyper-V),重启宿主机。或者,在VMware虚拟机设置的“处理器”选项中,明确勾选“虚拟化引擎”下的相关选项。
- 可能原因2:分配给虚拟机的内存不足。
- 排查:启动时观察VMware状态栏,或宿主机任务管理器内存占用。
- 解决:关闭虚拟机,增加内存分配(如从4GB增加到6GB)。
8.2 Ubuntu安装后无法进入图形界面或分辨率异常
- 可能原因:VMware Tools未正确安装或显卡驱动问题。
- 解决:
- 尝试在虚拟机启动时按
Shift键进入GRUB菜单,选择“高级选项”,然后选择一个“recovery mode”内核启动,在恢复菜单中选择“root”进入命令行。 - 重新安装或修复图形界面:
sudo apt install --reinstall ubuntu-desktop。 - 确保VMware Tools已安装:
vmware-toolbox-cmd -v。如果未安装,参考前面步骤重新安装。 - 检查虚拟机设置中“显示器”的“加速3D图形”是否已勾选。
- 尝试在虚拟机启动时按
- 解决:
8.3 Conda环境激活失败或命令未找到
- 现象:安装Conda后,新开终端提示
conda: command not found。 - 原因:Conda的初始化脚本未在当前shell中执行。
- 解决:
- 手动初始化:
source ~/miniconda3/etc/profile.d/conda.sh(路径根据你的安装位置调整)。 - 永久解决:检查
~/.bashrc文件末尾是否有Conda的初始化代码。如果没有,可以手动添加一行:source ~/miniconda3/etc/profile.d/conda.sh,然后执行source ~/.bashrc。
- 手动初始化:
8.4 PyTorch导入失败或版本不对
- 现象:在Conda环境中
import torch报错,或版本不是预期的。 - 排查:
- 确认当前环境:
conda info --envs,星号*所在行是当前激活的环境。 - 确认环境中的包:
conda list | grep torch。
- 确认当前环境:
- 解决:
- 如果环境不对,用
conda activate your_env_name切换。 - 如果包不存在或版本错,在正确的环境中重新安装:
conda install pytorch torchvision torchaudio cpuonly -c pytorch。 - 注意:有时因为网络问题,安装命令可能只完成了一部分。可以尝试先
conda clean --all清理缓存,然后重试安装。
- 如果环境不对,用
8.5 MySQL root用户无法远程连接
- 现象:在宿主机用Navicat等工具连接虚拟机的MySQL失败。
- 原因:默认情况下,MySQL的root用户只允许从
localhost连接。 - 解决:
- 在虚拟机内登录MySQL:
sudo mysql -u root -p。 - 执行以下SQL语句(将
your_password替换为强密码):CREATE USER 'root'@'%' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; - 还需要检查MySQL的配置文件是否绑定了
0.0.0.0。编辑/etc/mysql/mysql.conf.d/mysqld.cnf,找到bind-address一行,将其值改为0.0.0.0(或注释掉这行)。 - 重启MySQL服务:
sudo systemctl restart mysql。
安全警告:在生产环境中,强烈不建议允许root用户远程登录,也不建议使用弱密码。此处仅为开发环境便利。
- 在虚拟机内登录MySQL:
8.6 SSH连接超时或拒绝
- 现象:宿主机
ssh user@vm_ip连接失败。 - 排查步骤:
- 确认IP:在虚拟机内用
ip addr确认IP地址是否正确。 - 确认服务:
sudo systemctl status ssh,确保状态是active (running)。 - 确认防火墙:Ubuntu默认的
ufw防火墙可能关闭了。检查状态:sudo ufw status。如果是inactive,则防火墙未启用。如果是active,需要放行22端口:sudo ufw allow 22。 - 确认网络模式:确保虚拟机网络适配器是NAT模式。在NAT模式下,宿主机可以直接访问虚拟机的IP。
- 终极排查:在虚拟机内尝试
ssh localhost,如果连自己都连不上,说明SSH服务配置有问题,可能需要重装openssh-server。
- 确认IP:在虚拟机内用
通过以上步骤,你应该已经拥有了一个功能强大、配置齐全、且可随时恢复的虚拟开发环境。这个环境就像你的专属数字工作台,无论学习、实验还是开发,都能提供一个稳定可靠的起点。记住,在开始任何有风险的操作前,拍个快照,这是使用虚拟机最宝贵的习惯。
