文章目录
- [Xshell连接(虚拟机)VMware Workstation 22(端口)错误的解决方案](#Xshell连接(虚拟机)VMware Workstation 22(端口)错误的解决方案)
-
- [一、问题现象(Port 22 连接失败)](#一、问题现象(Port 22 连接失败))
- 二、排障思路(建议先看这个)
- 三、解决方案(按顺序做,成功率最高)
-
- 1)先处理防火墙(临时方案:关闭)
- [2)安装 SSH(关键步骤)](#2)安装 SSH(关键步骤))
- [3)启动 SSH 服务](#3)启动 SSH 服务)
- [4)确认 22 端口是否监听](#4)确认 22 端口是否监听)
- [5)回到 Xshell 再连一次(验证成功)](#5)回到 Xshell 再连一次(验证成功))
- 四、常见坑位(我踩过的雷)
- 五、总结
Xshell连接(虚拟机)VMware Workstation 22(端口)错误的解决方案
⚠️ 提醒:本文为个人排障记录,命令涉及防火墙/SSH 服务配置。生产环境不建议直接关闭防火墙,更推荐放行端口(见下文"更稳妥做法")。
一、问题现象(Port 22 连接失败)
我在用 Xshell 连接 VMware Workstation 里的 Linux 虚拟机时,出现了典型的 22 端口连接失败(SSH 默认端口)问题,表现为:
- Xshell 连接超时 / 拒绝连接
- 提示 Port 22 错误
核心结论 :大概率是 SSH 服务没装/没启动 或 22端口被防火墙拦截。

二、排障思路(建议先看这个)
为了不走弯路,我把排障流程画成了一张图:
否
是
否
是
否
是
否
是
是
否
问题:Xshell 连接虚拟机失败 / Port 22
虚拟机是否能联网/可达?
检查虚拟机网络模式 NAT/桥接\n确认IP/网关/DNS
SSH 是否安装?
安装 openssh-server/client
SSH 服务是否启动?
启动/重启 ssh 服务
22端口是否监听?
检查 sshd 配置与服务状态
防火墙是否拦截?
放行 22/tcp 或临时关闭防火墙
再次用 Xshell 连接验证
三、解决方案(按顺序做,成功率最高)
1)先处理防火墙(临时方案:关闭)
我这边的情况是 防火墙拦截了 SSH,先临时关闭验证一下:
bash
sudo ufw disable

执行后如果看到类似提示(防火墙已停止并禁用),说明成功。
如果提示 ufw: command not found,需要先安装:
bash
sudo apt-get install ufw

✅ 更稳妥做法(推荐):生产/长期使用不建议关闭防火墙,而是放行 SSH:
bashsudo ufw allow 22/tcp sudo ufw reload
2)安装 SSH(关键步骤)
很多"22端口错误"其实是因为系统根本没装 SSH Server。
直接安装:
bash
sudo apt-get install openssh-server openssh-client

中途如果出现确认提示,输入 Y 并回车继续:

3)启动 SSH 服务
安装完后,我这里手动启动一下 SSH:
bash
sudo service ssh start

然后检查状态是否正常:
bash
sudo service ssh status

看到 running / active(running)基本就稳了。
4)确认 22 端口是否监听
接着我用 netstat 看一下 22 端口有没有起来:
bash
netstat -tnl

如果你系统没有 netstat,可以安装:
bash
sudo apt-get install net-tools
5)回到 Xshell 再连一次(验证成功)
最后再用 Xshell 连接虚拟机 IP(用户名/密码正确的情况下),就可以连上了:

四、常见坑位(我踩过的雷)
- IP 填错:虚拟机 IP 变了(DHCP)但你还在用旧 IP
- 网络模式不对:NAT/桥接切换后需要重新确认 IP
- SSH 没装:只装 client 不装 server 也会连不上
- 防火墙策略拦截:尤其是 ufw 默认规则或安全加固环境
- 端口不是 22:有的环境改了 sshd 端口,需要同步改 Xshell 端口
建议 :我一般先用 ping + ssh 在本机终端测通,再上 Xshell,定位更快。
五、总结
这次 Port 22 连接失败的根因,本质上就是两类:
- SSH 服务问题:没安装 / 没启动
- 网络/防火墙问题:端口没放行 / 被拦截
按我上面这套顺序排下来,基本都能解决 ✅
[🔝 返回顶部](#🔝 返回顶部)