VMware虚拟机SSH连接配置指南:从网络设置到MobaXterm远程登录

发布时间:2026/9/16 17:47:13
VMware虚拟机SSH连接配置指南:从网络设置到MobaXterm远程登录 1. 为什么放着VMware自带的终端不用非要多装一个MobaXterm先聊一个很多新手会困惑的问题我明明已经在VMware里装好了Linux系统也能正常开机登录为什么教程里都让我再装一个MobaXterm用SSH连过去操作直接在虚拟机窗口里敲命令不也一样吗一样也不一样。如果你只是偶尔在虚拟机里执行几条命令直接在VMware的终端窗口操作完全没问题。但只要你稍微深入一点就会碰到几个让人抓狂的痛点复制粘贴。VMware自带的终端窗口里把Windows里的命令复制进Linux有时候要按CtrlShiftV有时候鼠标右键菜单还不一样不同Linux发行版、不同VMware版本的行为还不一样非常影响效率。更麻烦的是看日志和调试终端输出一多滚动查找、搜索关键字都很难受。还有文件传输想从Windows往虚拟机里传个安装包要么用U盘镜像要么配共享文件夹折腾半天。我见过不少刚接触嵌入式开发的朋友在VMware里装好Ubuntu然后用屏幕终端去操作imx6ull开发板结果中文全部显示成乱码。同样的程序在MobaXterm里连上去看中文显示完全正常。这就是终端环境对字符编码和字体支持差异导致的问题也是很多人最后下决心换工具的直接原因。MobaXterm这类SSH客户端解决的核心问题是把操作虚拟机这件事从VMware的图形窗口里解放出来。你用Windows上的MobaXterm通过网络连接虚拟机里的SSH服务然后在这个远程终端里执行所有命令。这样你获得的好处是Windows和Linux之间的复制粘贴顺畅了终端可以无限滚屏、可以搜索、可以多标签页切换文件拖拽就能上传下载会话还能保存下来下次一键连接。作为一个十多年天天跟服务器打交道的从业者我可以负责任地说远程终端工具是Linux日常操作效率提升最大的一笔投入没有之一。这套组合的适用人群非常广刚学Linux的大学生、做嵌入式开发需要交叉编译的工程师、在自己电脑上搭环境做实验的技术爱好者。不管你是用VMware跑Ubuntu、CentOS还是Debian原理和步骤都是通用的。接下来我会从网络配置这个最容易踩坑的地方开始把整个流程完整走一遍。2. 最容易踩坑的其实是虚拟网络配置不是MobaXterm本身很多人连不上虚拟机第一反应是怪MobaXterm设置不对。实际上根据我的经验超过七成的问题出在VMware的虚拟网络配置上MobaXterm只是背锅的。所以在讲连接之前必须先花篇幅把网络这层搞清楚。2.1 VMware三种网络模式的本质差别VMware Workstation给虚拟机提供了三种网络模式桥接模式、NAT模式、仅主机模式。网上教程一大堆但很多讲得云里雾里。我用人话给你讲清楚本质。桥接模式Bridged虚拟机直接插到你家里的路由器上和你的Windows电脑是平等关系。你家路由器DHCP会给你Windows分配一个IP同时也会给虚拟机分配一个同网段的IP。这种模式下虚拟机可以访问外网局域网里的其他设备也能直接访问虚拟机。但问题在于如果你多次切换Wi-Fi、换网络环境虚拟机的IP会因为路由器不同而变化而且一些校园网、公司网络有MAC地址限制虚机经常上不了网。NAT模式默认虚拟机躲在Windows后面Windows充当一个中转站。VMware会虚拟出一个内网网段默认是192.168.x.0虚拟机用这个网段里的IP通过Windows的物理网卡转发流量上网。对外部网络来说虚拟机是不存在的它被隐藏在了Windows后面。这种模式的好处是稳定不管你Windows是连Wi-Fi还是有线只要能上网虚拟机就一定能上网IP也基本固定不变。坏处是外部设备默认访问不到虚拟机。仅主机模式Host-Only虚拟机只能和Windows通信不能访问外网。这个模式主要用于纯本地调试、虚拟机之间组网、或者不想让虚拟机联网的场景。对于绝大多数用MobaXterm连接虚拟机的场景我强烈推荐用NAT模式。原因是第一稳定性最好不会因为你换了个网络环境就断网第二虚拟机可以上网方便装软件、更新源第三IP固定不变配置一次MobaXterm会话就能一直用。2.2 我给新手的网段规划建议VMware安装后的默认NAT网段通常和你的局域网网段没有冲突但有一种情况会出问题如果你家里的路由器网段正好是192.168.100.0而VMware的NAT网段也是192.168.100.0就可能导致路由混乱。所以建议你装好VMware之后主动检查并固定NAT网段。打开VMware Workstation点击菜单栏的编辑→虚拟网络编辑器。在这个界面里你会看到VMnet1和VMnet8其中VMnet8就是NAT模式的虚拟网络。选中VMnet8看一下下面的子网IP比如默认可能是192.168.80.0。我个人的习惯是改成172.16.80.0这种不那么容易冲突的网段子网掩码保持255.255.255.0。改完网段之后还要点一下DHCP设置看一下起始IP地址和结束IP地址这个范围决定了虚拟机DHCP自动获取时能拿到的IP。比如起始地址192.168.80.128结束地址192.168.80.254。了解这个范围的意义在于如果你想给虚拟机配置静态IP就要选一个不在这个DHCP分发范围内的地址避免IP冲突。比如我一般把静态IP设在192.168.80.10这样的低位地址完美避开DHCP分发的高位段。还有一点需要特别注意如果你用的是VMware Workstation Pro有时候安装后虚拟网络编辑器里的更改设置按钮是灰色的需要以管理员身份运行VMware才能修改。这也是很多人在网上问VMware 17没有配置和打开选项的原因之一——你很可能在用非管理员权限运行软件界面显示会缺一些按钮。2.3 VMnet1网卡感叹号的常见原因与处理很多人在Windows的设备管理器或者网络连接里看到VMnet1和VMnet8这两个虚拟网卡其中VMnet1有时候会带一个黄色感叹号。这个感叹号的出现九成是因为Windows的系统服务VMware NAT Service和VMware DHCP Service没有正常运行或者VMnet1对应的仅主机模式网络没有正确配置。注意如果你用的是NAT模式连接虚拟机VMnet1感叹号其实不影响你干活因为它对应的是仅主机模式你压根用不到。真正要确保正常的是VMnet8。VMnet8负责NAT模式的网络通信如果VMnet8挂了或者被禁用了就算虚拟机里服务都正常MobaXterm也连不上。排查VMnet8是否正常的方法Windows命令行输入ipconfig看有没有一个IPv4地址是192.168.80.1如果你没改网段的话这个地址被称为网关地址是虚拟机访问Windows的入口也是NAT模式下Windows和虚拟机之间通信的关键。如果没有这个地址建议以管理员身份在命令行里执行net stop vmware和net start vmware系列命令或者在Windows服务管理器里重启VMware NAT Service和VMware DHCP Service这两个服务。实测下来这招能解决九成以上的虚拟网卡异常问题。3. Linux系统侧的两个前置准备SSH服务和固定IP网络这层打通之后接下来要看虚拟机里的Linux系统是否做好了接待准备。MobaXterm连接虚拟机本质是SSH客户端连接SSH服务端所以虚拟机里必须运行着SSH服务。另外如果你不想每次开机IP都变来变去固定IP这个动作也建议做掉。3.1 检查并安装SSH服务现在的Ubuntu Server版安装时默认会开启SSH服务但Desktop桌面版默认只装了openssh-client没有装openssh-server。这就导致一个很尴尬的情况你从虚拟机里可以SSH连别人但别人连不进来。你会不会遇到这个问题其实很好判断。在虚拟机终端里执行systemctl status ssh如果提示Unit ssh.service could not be found那就说明没装。如果是active (running)状态那恭喜你说明SSH服务已经在跑了。没装的话先更新软件源再安装sudo apt update sudo apt install -y openssh-server装完之后启动服务并设置开机自启sudo systemctl enable --now ssh这里有个细节值得说明在Ubuntu上服务的名字有时是ssh有时是sshd。很多教程让你写systemctl status sshd结果在Ubuntu上报错找不到服务。实际Ubuntu的openssh-server包注册的服务名就叫ssh。而CentOS/RHEL系才叫sshd。这个差别虽然小但确实能卡住新手很久。验证SSH端口有没有在监听执行sudo ss -tlnp | grep 22看到LISTEN 0.4096 *:22或者0.0.0.0:22这样的输出就说明SSH服务已经在监听所有网卡的22端口了。3.2 给虚拟机配置固定IP避免重启后连不上用DHCP自动获取IP虽然省事但有个隐患DHCP租约到期、虚拟机重启、VMware服务重启都可能让IP变化。想象一下你某天打开MobaXterm保存的会话点连接却报错connection refused排查了半天发现是虚拟机IP变了这个体验实在糟糕。固定IP的配置方式根据Linux发行版和网络管理工具有所不同。Ubuntu 18.04及以上版本用的是netplan配置文件在/etc/netplan/目录下。查看一下你的网卡名称ip a通常NAT模式下网卡名为ens33或ens160。然后编辑netplan配置文件比如/etc/netplan/01-network-manager-all.yamlsudo vim /etc/netplan/01-network-manager-all.yaml写入如下内容network: version: 2 ethernets: ens33: dhcp4: no addresses: - 192.168.80.10/24 routes: - to: default via: 192.168.80.2 nameservers: addresses: [223.5.5.5, 8.8.8.8]这里用到的是一个关键IP192.168.80.2。在VMware的NAT模式下这个地址是虚拟网络的网关地址。你可以打开VMware的虚拟网络编辑器选中VMnet8点NAT设置按钮看到的网关IP就是它。DNS服务器用223.5.5.5是阿里DNS比默认的DNS解析稳定很多实测在虚拟机里访问外网速度有明显提升。当然你要用8.8.8.8也行但国内部分网络环境下解析会比较慢。配置完了保存退出执行sudo netplan apply然后确认一下IP是否生效ip a show ens33如果地址变成了192.168.80.10说明配置成功。这时候建议你顺手测试一下虚拟机的网络连通性ping -c 4 223.5.5.5 ping -c 4 www.baidu.com一个测网关到外网的线路一个测DNS解析两个都通说明虚拟机上网功能完全正常。3.3 防火墙到底要不要关怎么放行才对关于防火墙网上声音很杂。有人让你直接systemctl stop firewalld有人让你关了iptables这些做法都是简单粗暴但代价是牺牲了安全性。在虚拟机的实验环境里这么干问题不大但如果你以后要管理真实服务器这个习惯会给你埋雷。正确的做法是放行SSH端口而不是整体关掉防火墙。以Ubuntu自带的ufw为例sudo ufw allow 22/tcp sudo ufw enable sudo ufw status看到22/tcp ALLOW IN就说明放行成功。如果是CentOS的firewalldsudo firewall-cmd --permanent --add-servicessh sudo firewall-cmd --reload sudo firewall-cmd --list-all用放行端口而不是关防火墙既保证了安全又不影响MobaXterm连接还能让你以后部署Web服务、数据库等应用时习惯更规范。4. MobaXterm连接虚拟机的完整配置过程前期准备都做完了现在进入正题MobaXterm如何连接虚拟机。4.1 MobaXterm的下载和中文设置MobaXterm官网提供免费版和专业版免费版的Home Edition对个人使用完全够用。很多人卡在官网下载速度慢这里有个技巧官网的下载页面有好几个镜像节点尽量选择欧洲或者亚洲的节点国内访问速度会快一些。下载下来是个便携版压缩包解压就能直接使用不需要安装。第一次打开看到的是英文界面不少人的第一反应是找中文设置。MobaXterm的汉化方式和常规软件不太一样它不是简单的界面语言切换而是需要下载中文语言包放到指定目录。中文包的做法是这样的从官网下载对应版本的语言文件zh_CN.mo放到MobaXterm安装目录下的lang文件夹如果不存在就新建一个重启MobaXterm后进入Settings→General在Language下拉框里选择中文Chinese重启软件就变成中文界面了。注意免费的Home Edition和Professional版的语言包文件不能混用下载时要看清楚你的版本类型。不过说句实在话我自己用了这么多年MobaXterm界面语言用英文或者中文对操作影响真的不大。核心是你会不会建会话、知不知道那些按钮是干嘛的。甚至有些英文术语翻译成中文后反而不好和网上的教程对应。所以我建议你如果实在不习惯英文界面就汉化但别为了汉化折腾太长时间重点还是把连接逻辑搞明白。4.2 新建SSH会话关键参数就这么几个打开MobaXterm点击工具栏上的Session会话按钮在弹出的窗口里选择SSH。接下来填几个关键参数参数填写内容说明Remote host192.168.80.10虚拟机的固定IP不是Windows的IPSpecify usernameubuntu你的虚拟机登录用户名Port22SSH默认端口没改过就不用动Network adapter默认即可保持默认选不到反而出问题有些教程会让你勾选Network adapter选项去指定网卡我个人建议新手保持默认。MobaXterm会自动根据你的路由表选择正确的网卡出口乱指定反而可能导致连不上。填完之后点击OK会看到左侧的会话列表里多了一个条目。双击它发起连接弹出提示窗口问你是否接受SSH指纹点击Accept接受然后输入密码。看到命令行提示符恭喜你连接成功了。如果你和我一样密码里带特殊字符建议先在Windows的记事本里把密码打出来核对一遍再粘贴到MobaXterm的密码框里。很多人连接失败的原因很简单就是密码输错了反而怀疑配置有问题。4.3 连接后推荐做的三个设置日志、字体、快捷键连上之后只顾着敲命令就浪费了MobaXterm的潜力。我建议花两分钟做三个设置体验会完全不一样。第一个设置自动保存会话日志。点击菜单栏Settings→Configuration切到Terminal选项卡勾选Log terminal output记录终端输出设置你想要的日志保存路径。这个功能在你调试程序、查看崩溃日志时价值巨大即使是凌晨两点出现了问题第二天翻日志就能还原当时的完整输出。做嵌入式开发调试设备时这一步几乎是刚需。第二个设置调整字体和编码。在MobaXterm终端里右键选择Change terminal font修改字体推荐使用Consolas或DejaVu Sans Mono这类等宽字体字号建议12或14。解决中文乱码的关键是编码设置右键选择Change terminal character encoding修改终端字符编码选UTF-8。UTF-8是目前Linux系统默认的编码格式Windows客户端这边对齐了UTF-8基本不会出现乱码。第三个设置定制快捷键。MobaXterm默认的粘贴快捷键是CtrlV但有些时候会被终端程序拦截。为了兼容普通的Linux终端习惯建议把粘贴快捷键改成CtrlShiftV。在Settings→Keyboard里可以自定义快捷键改完之后复制粘贴的体验和VMware自带的终端就完全拉开差距了。5. 连不上的时候按这个排查顺序找问题连接失败是最容易让人崩溃的场景因为报错信息五花八门。我总结了一套从底层到顶层的排查顺序照着走基本能定位问题。5.1 第一步ping不通虚拟机网段在Windows命令行执行ping 192.168.80.1如果ping不通说明Windows到VMnet8虚拟网卡这条链路有问题。检查设备管理器里网络适配器下有没有VMware Virtual Ethernet Adapter for VMnet8如果有感叹号重启VMware相关服务或者重装VMware网络组件。如果VMnet8能ping通再ping虚拟机的IPping 192.168.80.10ping通了就说明Windows到虚拟机的网络链路是通的问题出在SSH层。ping不通则可能是虚拟机里的静态IP没配好或者网卡没有启动。回到虚拟机界面执行ip a确认IP是否还在网卡up状态是否正常。这里有一个关键排查点Windows防火墙有时会拦截ICMP请求导致ping不通但实际网络是通的。判断方法是看虚拟机里能否ping通Windows的IP比如ping 192.168.80.1如果虚拟机到Windows通、Windows到虚拟机不通那就排查Windows防火墙的入站规则是否允许ICMP。这种情况我见过太多次了网络互连没问题纯粹是防火墙挡住了ICMP探测。5.2 第二步SSH端口没有响应网络链路通了但MobaXterm报Connection refused或Connection timed out就要检查SSH服务本身。Connection refused说明虚拟机能收到请求但没有人监听22端口大概率是openssh-server没装好没启动。Connection timed out则是请求发出去被网络拦截或丢包了大概率是防火墙挡住了22端口。在虚拟机里执行sudo ss -tlnp | grep 22如果没看到LISTEN状态手动启动SSH服务sudo systemctl start ssh systemctl status ssh服务正常但依然超时去防火墙里检查22端口放行规则这部分前面章节已经讲过怎么操作了。5.3 第三步认证失败和权限问题到了输入密码这一步报Access denied或认证失败基本就是用户名或者密码错了。Ubuntu桌面版登录输出的用户和SSH登录的用户是同一个如果记不清在虚拟机终端里用whoami查看。有两点需要提醒第一Ubuntu默认不允许root用户直接SSH登录就算你给root设置了密码也连不上需要在/etc/ssh/sshd_config里添加PermitRootLogin yes才可以。强烈不建议为了省事开这个日常操作自己创建的普通用户加sudo就够了。第二如果虚拟机设置了自动登录和锁屏SSH登录用的密码还是你的用户密码和锁屏密码是同一个别输成登录Windows的密码了。5.4 特殊场景宿主机无法访问虚拟机里的网站很多朋友在做Web开发时会遇到一个情况虚拟机上启动了Nginx服务在虚拟机里用curl localhost能拿到页面但在Windows浏览器里访问http://192.168.80.10却打不开。这个问题的本质是Linux防火墙默认只拦截外部对非放行端口的访问。如果你只放行了22端口那么80端口的HTTP请求就会被丢弃。处理思路和在3.3节提到的一致记住一句话不是关防火墙而是放行对应的端口。依次放行80、443以及你开发中需要的所有端口。以ufw为例sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw reload sudo ufw status然后Windows浏览器重新访问基本就能打开了。6. 基于这套环境还能做哪些更进阶的事连接稳定之后你的虚拟机和Windows这台双机系统就算正式组网了。接下来这几个进阶操作能进一步提升使用体验。6.1 利用SFTP功能直接在图形界面拖拽文件MobaXterm左侧的SFTP面板会自动跟随SSH会话展示虚拟机文件系统。你可以直接在Windows桌面把文件拖到SFTP面板里的某个目录文件自动就上传到虚拟机了反向操作就是从虚拟机往Windows下载文件。这个功能比传统的scp命令或者U盘拷贝方便了太多倍。尤其做嵌入式开发时编译好的固件、需要拷贝进开发板的文件全部通过这个面板拖拽解决。注意一点大文件传输时如果网络质量不好有可能出现断点续传的问题保险起见超过1GB的文件我还是建议用scp或rsync命令但日常小文件拖拽完全够用。6.2 配置端口转发让外部设备也能访问虚拟机如果你需要让手机、平板或者其他电脑访问虚拟机里的服务单纯NAT模式下它们是无法直接访问到虚拟机的。解决办法是在VMware的NAT设置里配置端口转发。在虚拟网络编辑器→VMnet8→NAT设置里点击添加端口转发规则。比如把宿主机的8080端口转发到虚拟机的80端口规则如下宿主机端口类型虚拟机地址虚拟机端口8080TCP192.168.80.1080配置完成后外部设备访问Windows的IP:8080流量就会被转发到虚拟机的80端口。这个技巧在做前后端联调、演示项目时特别好用等于给虚拟机开了一个受控的对公网入口。6.3 保存多个虚拟机会话管理效率翻倍你以后可能会在同一台VMware上跑多个虚拟机比如一个Ubuntu做开发、一个CentOS做测试、一个Debian跑服务。MobaXterm的会话管理功能可以保存所有虚拟机的连接信息每次打开软件点击会话列表就行不用重新配置。更高效的做法是按项目创建文件夹分组。右键会话列表区域可以新建文件夹比如ARM开发、后端学习、网络实验把对应虚拟机会话放在不同文件夹里找起来一目了然。如果虚拟机数量少也可以直接用软件顶部工具栏的快速开新会话少走两级菜单。结合MobaXterm的多标签页特性你可以同时开着好几个虚拟机的SSH会话互相之间随时切换复制粘贴跨虚拟机内容也非常方便。这种多窗口能力是VMware自带终端完全比不了的。最后再分享一个内容之外的经验如果你做的是嵌入式开发经常需要连接开发板的串口控制台MobaXterm同样支持串口协议插上USB转串口设备后在Session里选择Serial即可。这样你就不用再单独装一个串口工具了一台电脑、一个软件既能SSH连虚拟机又能连开发板串口桌面一下就清爽了很多。这套VMware MobaXterm的组合我用了差不多十年从最早的VMware Workstation 14一路用到现在的17中途换过别的虚拟机软件、试过WSL但最终主力方案还是这两个配合使用。稳定、顺手、问题少网上的排错资料也丰富至少省了我一半的实验环境维护时间。希望这篇文章能帮你少走一些我当年走过的弯路。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询