新手用Xshell连接虚拟机,核心就是让虚拟机网络可达、Linux开启SSH服务、Xshell里填对IP和22端口;多数连接失败不是Xshell坏了,而是网络模式或SSH服务没配好。下面按实际动手顺序拆开讲,命令和路径都能直接对照操作。
准备清单:Xshell、虚拟机和Linux各要确认什么
软件环境别贪多,先跑通一条链路
你需要的软件不复杂:Windows上的Xshell、VMware Workstation或VirtualBox、一台装好Linux的虚拟机,新手容易在“装了一堆工具”上耗时间,实际先把一条链路跑通更重要。
- Xshell从官网下载安装,家庭或学校学习场景可先用免费授权版本。
- 虚拟机确认能正常开机,能进入Linux桌面或命令行。
- 记住虚拟机的登录用户名和密码,后面Xshell登录要用。
- Windows和虚拟机最好在同一台物理机上,先排除跨网络干扰。
虚拟机网络模式怎么选:NAT、桥接、仅主机对比
网络模式是新手最容易卡住的地方,可以先用下表理解差异,再决定选哪种。
| 网络模式 | 虚拟机IP特点 | 宿主机能否访问 | 局域网其他电脑能否访问 | 适合场景 |
|---|---|---|---|---|
| NAT | 由虚拟机软件分配,常见为独立网段 | 通常可以 | 默认不行,需端口转发 | 本机学习、临时测试 |
| 桥接 | 与宿主机所在局域网同网段 | 可以 | 通常可以 | 多机互访、模拟服务器 |
| 仅主机 | 只与宿主机通信 | 可以 | 不行 | 隔离实验、断网测试 |
行业共识认为,新手学习阶段优先用NAT,因为不用改公司或家庭路由设置;要让同事电脑或第二台设备连接,再考虑桥接,选好后别反复切换,先把当前模式调通。
Linux侧开启SSH服务的常用命令
Xshell走的是SSH协议,Linux必须运行SSH服务,不同发行版命令略有差异:
- Ubuntu/Debian:
sudo apt update,然后sudo apt install openssh-server。 - CentOS/RHEL/Rocky:
sudo systemctl enable --now sshd。 - 查看状态:
systemctl status sshd或systemctl status ssh。 - 放行防火墙:Ubuntu可用
sudo ufw allow 22/tcp;CentOS可用sudo firewall-cmd --add-service=ssh --permanent,再sudo firewall-cmd --reload。 - 确认监听:
ss -tlnp | grep :22,能看到22端口监听更稳妥。
据OpenSSH项目文档,SSH默认使用22端口,这个端口号后面在Xshell里会反复用到。
Windows电脑用Xshell连接VMware虚拟机教程:从零到连上
第一步:查虚拟机IP地址
进入Linux终端,输入ip addr或ip a,找到正在使用的网卡,比如ens33、eth0,看inet后面的地址,例如168.56.128,老系统可以用ifconfig。
要留意两点:一是别把0.0.1当成虚拟机IP;二是NAT模式下虚拟机重启后IP可能变化,连不上时先回来复查。
第二步:在Windows上测试网络和22端口
打开Windows PowerShell,先ping:
ping 192.168.56.128
能通说明基础网络没问题,再测端口:
Test-NetConnection 192.168.56.128 -Port 22
看到TcpTestSucceeded : True,说明22端口可达,若ping不通,先查网络模式;若ping通但端口不通,查SSH服务和防火墙。
第三步:新建Xshell会话并登录
打开Xshell,点“文件”→“新建”,或直接点新建会话图标,填写:
- 名称:自定义,比如
test-linux。 - 协议:SSH。
- 主机:填虚拟机IP,如
168.56.128。 - 端口号:22。
- 用户名:你的Linux账号。
点“连接”,认证方法选Password,输入密码,首次连接会弹出主机密钥确认,确认IP无误后接受并保存,登录后输入whoami和ip addr,能返回结果就说明链路通了。
第四步:首次连接的主机密钥提示怎么处理
这个提示是SSH的正常安全机制,不是报错,你确认连接的是自己的虚拟机IP,点接受即可,若之前连过同一IP但虚拟机重装过,可能提示密钥变化,需要在Xshell里删除旧会话密钥记录再连。
Xshell连接虚拟机失败怎么排查?先看这四处
网络模式与IP网段是否匹配
NAT模式下,Windows和虚拟机不一定在同一网段,但虚拟机软件会做地址转换,桥接模式下,虚拟机应与宿主机局域网处于同一网段的前三段,比如宿主机是168.1.20,虚拟机却是168.56.128,就要检查是不是还在NAT模式。
SSH服务与防火墙是否放行
在虚拟机里执行systemctl status sshd,没运行就启动,再看防火墙是否拦截22端口,CentOS还要留意SELinux,可用getenforce查看,学习环境可临时设为宽松,但生产环境不要随手关闭。
虚拟机网卡有没有拿到地址
ip addr里看不到inet地址,说明网卡没获取到IP,可以重启网络服务,或在VMware虚拟网络编辑器里恢复默认NAT设置,VirtualBox则检查网卡是否启用。
账号、权限与sshd配置
密码错误、用户名大小写不对、root远程登录被禁用,都会导致认证失败,查看/etc/ssh/sshd_config中PermitRootLogin和PasswordAuthentication设置,改完执行sudo systemctl restart sshd。
| 现象 | 优先检查 | 常用命令/路径 |
|---|---|---|
| ping不通 | 网络模式、IP网段 | ip addr、虚拟网络编辑器 |
| ping通但22端口不通 | SSH服务、防火墙 | systemctl status sshd、ss -tlnp |
| 端口通但密码被拒 | 用户名、密码、sshd配置 | /etc/ssh/sshd_config |
| 昨天能连今天不行 | 虚拟机IP是否变化 | ip addr重新查IP |
业内专家指出,新手排查时按“网络→端口→服务→账号”的顺序走,比反复重装Xshell有效。
Xshell免费版连接虚拟机够用吗?版本选择与下载注意事项
家庭学习场景:免费版的功能边界
家庭、个人学习场景下,Xshell免费授权版本完成SSH登录、多标签会话、SFTP传文件这些基础操作通常够用,你不需要为了连一台虚拟机去买商业授权,下载时认准官网,别用来路不明的“绿色版”。
商业环境使用:授权合规先看清
公司电脑上长期使用,要看授权范围,商业环境使用免费版可能不符合许可条款,具体以官方报价和授权说明为准,近年来企业软件合规检查趋严,别把学习版直接带到办公场景。
Xshell和FinalShell连接虚拟机哪个更适合新手
这是常见的对比问题,Xshell会话管理成熟,企业里用得多,界面偏传统;FinalShell集成文件管理和资源监控,新手看磁盘、传文件更直观,只是连虚拟机学命令,两者都能完成,选择建议:
- 想练企业常见工具链:选Xshell。
- 想少装一个SFTP工具:选FinalShell。
- 公司已有统一运维工具:跟随团队规范。
局域网内Xshell连接虚拟机怎么配置:多机与远程场景
桥接模式:让同网段电脑直接访问
把虚拟机网卡改为桥接,让虚拟机获取与宿主机局域网同网段的IP,然后在另一台电脑上ping虚拟机IP,通了他就能用Xshell连接,公司网络若有准入控制,可能需要在虚拟机软件里选择正确的物理网卡。
NAT端口转发:只暴露必要端口
不想改桥接,可以在虚拟机软件的NAT设置里做端口转发,把宿主机某个端口映射到虚拟机22端口,Xshell连接宿主机IP加转发端口,这样只暴露必要端口,适合临时远程调试。
公司内网操作前的合规提醒
公司内网开端口、做转发前先确认IT规范,未经授权把虚拟机SSH暴露到办公网,可能带来安全风险,学习环境建议放本地NAT里练,别直接套到生产网。
Xshell连接虚拟机常见问题Q&A
Xshell连接虚拟机需要虚拟机开机吗?
需要,虚拟机电源关闭时,SSH服务不会运行,Xshell自然连不上,先确认虚拟机已启动并进入系统,再查IP和端口。
Xshell连接虚拟机默认端口是多少?
默认是22,如果改过/etc/ssh/sshd_config里的Port,Xshell会话端口也要同步改,防火墙规则也要放行新端口。
为什么ping通虚拟机但Xshell连不上?
常见原因是SSH服务没启动、防火墙拦截22端口、sshd只监听特定地址,或认证配置不允许当前用户登录,按systemctl status sshd、ss -tlnp | grep :22、防火墙规则、/etc/ssh/sshd_config的顺序查,基本能定位到具体环节。