服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-10-08 更新于 2026-10-08 简米科技 3,414 字 8 分钟阅读

虚拟机怎么连接xshell?详细步骤与常见问题解答,虚拟机连接xshell超时怎么解决

导读虚拟机连接Xshell的答案很简单:先保证虚拟机与宿主机网络互通,再开启SSH服务,最后用Xshell新建SSH会话即可连上,虚拟机本身不直接提供Xshell可识别的通道,Xshell通过SSH协议远程登录虚拟机里的Linux系统,只要你把网络、端口、账号三件事搞定,整个过程五分钟内完成,虚拟机怎么连接xshe……

虚拟机连接Xshell的答案很简单:先保证虚拟机与宿主机网络互通,再开启SSH服务,最后用Xshell新建SSH会话即可连上。

虚拟机本身不直接提供Xshell可识别的通道,Xshell通过SSH协议远程登录虚拟机里的Linux系统,只要你把网络、端口、账号三件事搞定,整个过程五分钟内完成。

虚拟机怎么连接xshell:三步操作全流程

下面以VMware + CentOS为例,完整走一遍虚拟机连接xshell的操作路径,无论你用VirtualBox还是其他虚拟机,思路完全一致,只是个别菜单名称不同。

第一步:确认虚拟机的IP地址和网络模式

打开虚拟机终端,输入命令:

ip addr

找到类似168.x.x的地址,那就是虚拟机的IP,如果只有0.0.1,说明网卡没启动,需要检查网络适配器设置。

虚拟机的网络模式建议选桥接模式或NAT模式,桥接模式下虚拟机直接和宿主机在同一局域网,Xshell用这个IP就能连;NAT模式下虚拟机通过宿主机共享IP上网,Xshell仍然可以访问虚拟机,因为VMware虚拟网卡会在宿主机和虚拟机之间建立独立通道。

在VMware中,右键虚拟机 -> 设置 -> 网络适配器,勾选对应模式即可,修改后重启虚拟机,再执行ip addr查看新IP。

第二步:开启SSH服务并放行22端口

CentOS系统默认可能没装或没启动SSH服务,在虚拟机里执行:

systemctl status sshd

如果显示未运行,依次执行:

sudo systemctl start sshd
sudo systemctl enable sshd

如果提示找不到sshd服务,先安装:

sudo yum install -y openssh-server

Ubuntu系统命令类似,用apt install openssh-server,服务名是ssh。

防火墙方面,多数虚拟机默认防火墙不拦截内网SSH,但保险起见执行:

虚拟机怎么连接xshell?详细步骤与常见问题解答,虚拟机连接xshell超时怎么解决

sudo firewall-cmd --permanent --add-port=22/tcp sudo firewall-cmd --reload

Ubuntu用sudo ufw allow 22/tcp,如果能ping通但连接被拒绝,大概率就是防火墙或SSH服务没起来。

第三步:在Xshell中新建SSH会话

打开Xshell,点新建会话,填写以下内容:

  • 名称:随意,CentOS虚拟机”
  • 协议:SSH
  • 主机:虚拟机的IP地址(上一步查到的)
  • 端口号:22

点击连接,会弹出SSH安全警告,选择“接受并保存”即可,然后输入虚拟机的登录用户名和密码,连接成功。

常见坑是用户用了root,但SSH服务配置文件禁用了root登录,如果连接后密码正确却登录失败,检查/etc/ssh/sshd_config里的PermitRootLogin,改成yes并重启sshd。

xshell连接虚拟机失败?先按这份清单排查

在实际使用场景里,连接不上比一次成功的概率高得多,把以下原因按顺序排查,绝大多数问题都能解决。

网络不通:虚拟机与宿主机之间IP不在同一网段

在虚拟机里执行ping 宿主机IP,在宿主机CMD里执行ping 虚拟机IP,两边都通才说明网络正常。

用桥接模式时,虚拟机IP要和宿主机IP在同一网段,如果虚拟机用的是DHCP自动获取,重启后IP可能变化,导致Xshell里的地址失效,这种情况推荐配置静态IP,或者每次连接前先在Xshell里更新主机地址。

NAT模式下,虚拟机只能单向访问外部,但宿主机访问虚拟机没问题,如果反过来宿主机ping不通虚拟机,检查VMware的虚拟网络编辑器(编辑 -> 虚拟网络编辑器 -> 更改设置),确认NAT模式的子网掩码和网关设置正确。

SSH服务未启动或端口被占

输入ss -lntp | grep 22,如果没有任何输出,说明SSH服务没监听22端口,重新执行systemctl start sshd,然后用systemctl status sshd确认active状态。

有些环境里自定义了SSH端口,比如2222,连接时要在Xshell里把端口号改成对应的值,不要死守22。

虚拟机怎么连接xshell?详细步骤与常见问题解答,虚拟机连接xshell超时怎么解决

账号认证失败:密码正确但连接被踢回

排查顺序:

  • 确认用户名和密码是否对应虚拟机里的真实账号
  • 检查PermitRootLogin配置
  • 检查/etc/ssh/sshd_config的PasswordAuthentication是否被设为no,如果是,改为yes
  • 查看虚拟机日志tail -f /var/log/secure,里面会写明拒绝原因

行业共识认为,八成连接失败都出在网络模式和SSH服务状态上,账号问题只占小头,优先排查前两项。

vmware虚拟机连接xshell时网络模式怎么选

vmware虚拟机连接xshell这件事,网络模式决定了你能否少踩坑,不同使用场景对应不同选择。

网络模式 虚拟机能否访问外网 宿主机能否访问虚拟机 适用场景
桥接模式 能 能 虚拟机需要和局域网其他设备互通
NAT模式 能 能 只需要宿主机和虚拟机之间通信
仅主机模式 不能 能 完全隔离,不访问外网

桥接模式:适合需要真实局域网身份的场景

桥接模式下虚拟机像一台独立电脑,有自己的局域网IP,可以被局域网内其他设备直接访问,缺点是需要局域网有足够IP地址,且DHCP分配不稳定,在公司或学校网络里,桥接模式常因网络策略原因连不上,这时换NAT更靠谱。

NAT模式:宿主机和虚拟机之间的私密通道

NAT模式下,虚拟机通过宿主机访问外部网络,对外表现为宿主机的IP,宿主机和虚拟机之间通过VMware的虚拟网卡通信,对日常开发测试来说,NAT模式最省心,不用管路由器设置,也不用担心IP冲突。

在Xshell里连接NAT模式的虚拟机,直接填虚拟机的内网IP就能通,不需要任何额外端口转发规则。

虚拟机怎么连接xshell?详细步骤与常见问题解答,虚拟机连接xshell超时怎么解决

连接成功后还有哪些要注意的常见问题

连接成功后不代表万事大吉,很多人在后续使用中遇到小麻烦,这里一并说清楚。

  • IP变化导致连接断开:虚拟机重启后IP可能变了,建议配置静态IP,编辑/etc/sysconfig/network-scripts/ifcfg-ens33(CentOS)或/etc/netplan/(Ubuntu),设置固定的IP、网关和DNS。
  • Xshell会话保存位置:Xshell的会话信息保存在本地,重装系统后记得备份DocumentsNetSarang ComputerXshellSessions目录。
  • 多个虚拟机切换:可以在Xshell里建立多个会话,给每个会话起不同名字,按名称区分,避免每次重新填IP。

Q&A:虚拟机连接xshell时反复遇上的问题

虚拟机可以正常上网,但xshell连接就是超时

能上网说明虚拟机的网络出得去,但Xshell连接走的是宿主机到虚拟机的方向,先确认宿主机能ping通虚拟机,ping不通就是网络模式或IP配置问题,如果ping通了却超时,检查SSH服务是否在监听,以及防火墙是否放行了22端口。

虚拟机IP一重启就变,Xshell经常连不上怎么办

这是DHCP导致的正常现象,把网络配置改成静态IP就行,CentOS系统编辑ifcfg-ens33文件,把BOOTPROTO改为static,在文件末尾加IPADDR、NETMASK、GATEWAY,重启网络服务后IP就固定了,Ubuntu用netplan配置方式,改完执行sudo netplan apply生效。

Xshell提示“Connection refused”说明握不上SSH端口

这个错误基本说明虚拟机里没有服务在22端口监听,在虚拟机终端执行systemctl status sshd,如果没启动就启动;启动后再次连接,如果之前改过SSH端口,也要同步修改Xshell里的端口号,还有一种情况是安全软件拦截,把虚拟机防火墙先临时关闭测试,能连上再仔细配置放行规则。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱