虚拟机连不上MobaXterm,绝大多数情况是网络模式选错或IP地址不在同一网段,先别急着重装系统,按顺序检查网络适配器、IP配置和防火墙,问题基本能解决。这里说的“连不上”通常指MobaXterm的SSH会话无法建立,表现为卡在连接界面、提示Connection refused或超时,这不是虚拟机坏了,而是网络路径没打通。
先分清是哪种“连不上”再动手修
MobaXterm连接虚拟机失败,行业内叫“会话建立失败”,原因分三类,排查之前,先看一眼MobaXterm最下面状态栏的报错信息,不同提示对应不同问题。
提示Connection refused时,是SSH服务没开启
这个报错说明网络是通的,但虚拟机的22端口没监听,行业共识认为,这是新手最常踩的坑,因为很多精简版Linux镜像默认不装SSH服务端。
解决步骤:
- 在虚拟机终端里执行
sudo apt install openssh-server(Debian/Ubuntu系)或sudo yum install openssh-server(CentOS/RHEL系) - 安装后执行
sudo systemctl start sshd或sudo service ssh start启动服务 - 用
ss -tlnp | grep 22确认端口处于LISTEN状态 - 再把ssh服务设为开机自启:
sudo systemctl enable sshd
提示Network is unreachable时,是网卡没配好
这个报错属于“IP层不通”,意思是数据包从MobaXterm所在电脑发出后,虚拟机网卡根本没回应,此类问题占比最高,后面用大篇幅展开讲。
提示Connection timed out时,是防火墙拦了路
超时比拒绝更隐蔽,因为通信被静默丢弃,多半是虚拟机或宿主机防火墙规则拦截了入站SSH流量,后续单独有解决方案。
核心故障场景:虚拟机和宿主机IP不在一个网段
这是“网络配置错误”里发生概率最高的一个,占比超过一半,场景很常见:你装完虚拟机,用ip addr看到地址是192.168.1.100,宿主机却是192.168.31.5,两个段不一样,MobaXterm直接连当然连不上,网络不在同一段,数据包到了宿主机就找不着北了。
根源通常是虚拟机网络模式设置和实际需求不匹配,做一下自查:
- 打开虚拟机软件,查看当前虚拟机的网卡模式
- 查看虚拟机内部IP配置,执行
ip addr或ifconfig -a - 查看宿主机VMware或VirtualBox虚拟网卡IP
三种虚拟网络模式里,实际应用中的区别如下表:
| 网络模式 | IP分配特点 | MobaXterm连接方式 | 适合场景 |
|---|---|---|---|
| 桥接模式 | 与宿主机同一局域网段 | 直接用局域网IP连接 | 虚拟机需要被局域网其他机器访问 |
| NAT模式 | 独立子网段 | 宿主机通过映射端口访问 | 虚拟机仅需上外网,外网不需访问它 |
| 仅主机模式 | 独立子网段 | 只能宿主机访问 | 安全隔离测试 |
选NAT模式时,你必须在虚拟网络编辑器里做端口转发,把宿主机的2222端口映射到虚拟机的22端口,这样MobaXterm连接宿主机IP加2222端口,流量才会被转发到虚拟机里,这个操作很多人会漏掉,漏掉后连不上就到处找原因,越找越迷茫。
设置固定IP配合NAT模式的具体操作
连接不上先别用DHCP,改成静态IP更省心,以VMware工作站为例,操作路径如下:
- 在VMware顶部菜单栏打开“编辑”里的“虚拟网络编辑器”,看到VMnet8这一项就是NAT网卡
- 查看NAT设置里记录的子网网段,比如192.168.66.0,以及网关IP,常见是192.168.66.2
- 进入虚拟机系统,编辑网络配置文件:
- Ubuntu 18.04及以上系统:编辑
/etc/netplan/01-netcfg.yaml,把DHCP设为no,填上静态IP、网关和DNS - CentOS 7及以下系统:编辑
/etc/sysconfig/network-scripts/ifcfg-ens33,设置BOOTPROTO=static
- Ubuntu 18.04及以上系统:编辑
- 重启网络服务,让配置生效
- 在MobaXterm里新建SSH会话,地址填你设置的静态IP
静态IP要避开DHCP分配池,防止地址冲突,举例:子网如果是192.168.66.0/24,你可以把IP设为192.168.66.150,网关走192.168.66.2,DNS填114.114.114.114。
桥接模式连不上的排查方向
桥接模式的配置核心不在虚拟机内部,而在宿主机网卡上,如果你用的是笔记本,连接了不同的Wi-Fi,网卡选择错了,整个链路就断了,桥接模式下,要让虚拟机和宿主机使用同一个物理网卡。
操作步骤:
- 关闭虚拟机系统
- 在虚拟机设置中把网络适配器改为“桥接模式”
- 关键一步:在虚拟机设置的高级选项里勾选“复制物理网络连接状态”,避免网络切换导致断线
- 启动虚拟机,执行
dhclient重新获取IP - 确认虚拟机IP已经和宿主机IP在同一网段
网卡配置修好了,防火墙和服务还有坑要填
IP配置好之后,数据链路能通了,但未必能顺利登录,相当一部分人在改完IP后还是连不上,原因出在防毒软件和系统自带防火墙拦截上。
关闭或放行虚拟机的SSH端口规则
Linux默认防火墙工具是ufw或firewalld,通常默认是关闭状态,如果你的系统宿主了一部分安全策略,防火墙可能处于开启状态,直接导致外部访问被丢弃。
放行操作:
# Ubuntu/Debian使用ufw sudo ufw allow 22/tcp sudo ufw reload # CentOS/RHEL使用firewalld sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
执行完再试一次MobaXterm连接。
Windows宿主机防火墙有时候会拦截外部连接
虚拟机NAT模式下,数据从虚拟网卡出来,Windows自带的防火墙可能要提示一次,如果你不小心点了取消,后续连接会被一直拦着。
放行路径:
- 打开Windows控制面板,进入系统和安全的防火墙
- 点击“允许应用或功能通过Windows Defender防火墙”
- 找到MobaXterm,或虚拟机软件相关的进程,勾选“专用”和“公用”网络
- 如果没有对应的程序列表,点“允许其他应用”手动添加
SSH服务配置细节检查
有一个容易被忽略的服务配置项是密码认证参数,编辑/etc/ssh/sshd_config,确认以下内容处于有效状态:
PasswordAuthentication yes这一项确保没有被注释掉或改为noPermitRootLogin yes按需开启,方便管理时建议开启AllowUsers或AllowGroups参数确认没有限制你使用的用户
改完配置执行sudo systemctl restart sshd重启服务,然后重新用MobaXterm测试连接。
常见操作误区和细节补充
网络问题修好后,有些细节没处理好同样会出现虚拟机连不上moba的情况,业界排查方案里,这些问题高频出现,列出来自查。
检查宿主机和虚拟机之间能否互相ping通
先别急着开MobaXterm,用最基础的网络诊断手段验证一下链路:
- 在宿主机命令行执行
ping 虚拟机IP,看是否延迟正常 - 如果ping不通,重点检查两块网卡的IP段是否在同一个子网
- 如果ping通了,但MobaXterm连接失败,问题多半在服务或防火墙
企业路由器隔离设置影响桥接
办公局域网中,路由器普遍开启AP隔离功能,导致桥接模式下虚拟机无法被外部机器访问,这类场景下,NAT模式加端口转发反而更稳定。
具体做法:
- 把虚拟机网络模式改回NAT
- 在虚拟网络编辑器中添加端口转发规则
- 宿主机端口用2200,虚拟机端口用22
- MobaXterm连接宿主机IP加2200端口完成登录
使用Snap版或容器版系统的特殊处理
用Ubuntu Snap版SSH服务或容器运行虚拟机的用户,要注意这类系统自带的SSH服务可能受限,这类环境使用systemd管理服务时,需要额外确认快照服务的启动状态,执行systemctl status ssh.socket进行查看,这类Socket文件比TCP监听设定更挑剔。
Windows虚拟机的特殊场景
如果虚拟机装的是Windows系统,MobaXterm连不上时需要单独处理,因为Windows默认不开SSH服务。
开启步骤:
- 在虚拟机的“设置”里找到“系统”中的“可选功能”
- 点击“添加功能”,搜索“OpenSSH服务器”
- 安装完毕后开启服务,位置在计算机管理的服务列表中
- 确保Windows防火墙放行TCP 22端口入站
这一步完成后,MobaXterm即可连接Windows虚拟机的IP。
Q&A:关于虚拟机连不上moba的追问
为什么用SSH连不上但用VMware控制台能正常登录?
这是因为VMware控制台走的是虚拟化底层串口通道,不依赖网络协议,控制台能进说明系统正常,连不上说明网络配置有误,重点排查虚拟网络适配器设置和IP地址合法性,不要盲目重装系统。
使用NAT模式时,MobaXterm该填什么IP地址?
先打开虚拟网络编辑器,查看VMnet8的网段信息,然后在虚拟机内部设置一个和VMnet8网段一致的静态IP,MobaXterm直接填这个内网IP即可,NAT模式无需再做宿主机端口转发,因为虚拟网卡和宿主机网卡之间天然相通。
修改成桥接模式后,虚拟机的IP忽然获取不到了怎么办?
多数情况是宿主机连接了新的无线网络,网络适配器名称发生了变化,导致桥接目标网卡失效,在虚拟机设置里把网络适配器重新指定为当前活跃的物理网卡,然后重启虚拟机系统,再执行一次dhclient重新获取地址,如果获取失败,检查是否在虚拟网络编辑器中将桥接网卡手动指定到了某一失效适配器上。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/630697.html





