服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-10-24 简米科技 4,182 字 10 分钟阅读

虚拟机连不上CRT?SecureCRT连接虚拟机报错怎么办?

导读虚拟机无法连接CRT,绝大多数情况下是网络模式、SSH服务或防火墙三者中的一个环节出了问题,按本文流程依次排查,5分钟内即可解决,虚拟机无法连接CRT?先分清报错类型SecureCRT连接虚拟机,本质是Windows主机通过SSH协议访问Linux虚拟机的22端口,报错信息不同,排查方向也不同,先把错误截图或提……

虚拟机无法连接CRT,绝大多数情况下是网络模式、SSH服务或防火墙三者中的一个环节出了问题,按本文流程依次排查,5分钟内即可解决。

虚拟机无法连接CRT?先分清报错类型

SecureCRT连接虚拟机,本质是Windows主机通过SSH协议访问Linux虚拟机的22端口,报错信息不同,排查方向也不同,先把错误截图或提示文字看清楚,再动手改配置,能省下大量无效操作。

虚拟机连接CRT报错怎么办?常见两种错误形态

第一种:连接超时(Connection timed out)
表现为屏幕长时间停在“Connecting”状态,最后提示超时,这通常说明数据包没到达虚拟机,或者到达后没有回应,常见原因包括:虚拟机网卡没启用、IP地址配置错误、SSH服务未启动、防火墙丢弃了包。

第二种:连接被拒绝(Connection refused)
提示速度很快,说明网络是通的,但22端口没有服务在监听,常见原因是openssh-server未安装或未启动,也可能SSH端口被改成了非22。

第三种:主机密钥变更提示(Host key verification failed)
多数发生在重装系统或重置虚拟机后,SecureCRT记住了旧的主机密钥,而虚拟机换了新的,客户端会直接拒绝连接,这类报错需要删除旧的密钥记录。

先确认是哪种报错,再对号入座排查,下面按出现频率从高到低,逐个解决。

虚拟机连接CRT不通,多半卡在这三个环节

行业共识认为,绝大多数SecureCRT连接虚拟机失败案例,都集中在网络配置、SSH服务、防火墙这三个环节,逐项检查,基本能覆盖九成问题。

网络模式与IP地址配置检查

虚拟机网卡通常有三种模式:NAT、桥接、仅主机,很多教程默认使用NAT模式,但如果虚拟机IP地址配置和NAT子网对不上,CRT自然连不上。

第一步,确认虚拟机内IP地址,在虚拟机终端执行:

ip addr

或

ifconfig

找到类似 168.x.x 的地址,如果只有 0.0.1,说明网卡没有配置IP。

第二步,确认Windows主机能ping通这个IP,在Windows命令行执行:

ping 虚拟机IP -t

如果ping不通,检查虚拟机网卡是否已连接,在VMware中,右键虚拟机→设置→网络适配器,勾选“已连接”,并确认网络连接模式,VirtualBox需要在“设置→网络”中启用“接入网线”。

如果ping通但CRT连不上,跳过网络环节,看SSH服务。

SSH服务状态与端口检查

虚拟机内执行:

systemctl status sshd

或

systemctl status ssh

如果显示inactive (dead),启动服务:

systemctl start sshd
systemctl enable sshd

CentOS和Ubuntu的服务名不完全一致,Ubuntu多数是ssh,CentOS/RHEL多数是sshd,不确定时用ps -ef | grep ssh查看进程是否存在。

再检查端口监听:

netstat -tlnp | grep 22

如果没有22端口监听,说明SSH没起来,或者配置文件指定了其他端口,查看/etc/ssh/sshd_config中的Port字段,默认是22,如果改过端口,CRT连接时要把端口改成对应值。

防火墙与安全组拦截

虚拟机上常见防火墙是firewalld或ufw,检查状态并临时放行:

systemctl stop firewalld

Ubuntu执行:

ufw disable

如果是云服务器虚拟机,还要检查安全组入方向规则是否放行22端口,安全组通常位于云控制台“实例→安全组”中,添加一条允许TCP 22端口、来源为0.0.0/0的规则即可。

很多用户在这步卡住:虚拟机本地一切正常,CRT却连不上,关闭防火墙后立竿见影。确认能连上后,再按需配置防火墙规则,而不是一直关闭它,

firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload

手把手排查:虚拟机连接CRT连接超时的完整流程

如果你遇到的是连接超时,按以下顺序操作,每一步都有明确验证方法。

  1. 确认虚拟机开机且网卡已连接
    在虚拟机软件里查看运行状态,不要用挂起或快照恢复的旧状态,恢复快照后IP可能发生变化。

  2. 获取当前IP并测试主机连通性
    在虚拟机中执行ip addr,记录IP,然后在Windows命令行执行ping IP,ping不通,进入第3步;ping通但CRT超时,跳到第5步。

  3. 检查Windows与虚拟机是否在同一子网
    NAT模式下,Windows的VMnet8网卡IP通常为168.x.1,虚拟机IP必须与它同一网段,在Windows执行ipconfig,查看VMnet8的IPv4地址,如果虚拟机是168.10.100,而VMnet8是168.20.1,不在同一网段,需要在虚拟机中手动配置静态IP。

    手动配置示例(CentOS/RHEL,使用nmcli):

    nmcli connection modify ens33 ipv4.addresses 192.168.10.100/24
    nmcli connection modify ens33 ipv4.gateway 192.168.10.1
    nmcli connection modify ens33 ipv4.method manual
    nmcli connection up ens33

    网卡名以ip addr输出为准。

  4. 检查虚拟网络编辑器
    VMware菜单栏“编辑→虚拟网络编辑器”,查看NAT模式的子网IP和掩码,确保与虚拟机IP匹配,如果DHCP分配异常,直接改为静态IP最稳妥。

  5. 测试本机SSH服务
    在虚拟机内执行:

    ssh localhost

    如果能登录,说明SSH服务正常,不能登录则先修复服务。

  6. 检查监听地址是否限制为本地回环
    查看/etc/ssh/sshd_config中的ListenAddress字段,如果设置为0.0.1,则外部连接无法进入,将其注释或改为0.0.0,然后重启sshd:

    systemctl restart sshd
  7. 关闭虚拟机和Windows防火墙做交叉测试
    Windows防火墙也可能拦截SecureCRT的入站连接,临时关闭Windows防火墙,再尝试连接,能连上后,在防火墙高级设置中放行TCP 22端口出站规则。

  8. 抓包确认数据包是否抵达
    如果以上步骤全无效,在虚拟机内使用tcpdump -i eth0 port 22监听,Windows再发起连接,如果tcpdump没有任何输出,说明数据包没到虚拟机,问题在虚拟网络或物理网络,如果有SYN包但没有后续响应,则是虚拟机内部防火墙或sshd处理问题。

这套流程基本能覆盖全部超时场景,多数情况下,问题都出在第3步的IP网段不一致,或者第7步的Windows防火墙拦截。

避免下次再断连:SecureCRT会话配置要点

连接成功后,建议做两件事:设置固定IP,保存正确的会话配置,否则虚拟机重启后IP一换,CRT又会提示连接失败。

给虚拟机配置静态IP

编辑/etc/sysconfig/network-scripts/ifcfg-ens33(CentOS)或/etc/netplan/.yaml(Ubuntu),配置固定IP,这样即使虚拟机重启,地址也不会漂移。

SecureCRT会话关键参数

  • 协议:SSH2
  • 主机名:虚拟机静态IP
  • 端口:22(除非改过)
  • 用户名:虚拟机登录用户
  • 认证方式:Password或PublicKey

保存会话后,下次连接直接双击会话,不用重复输入IP。

主机密钥冲突的解决

如果出现Host key verification failed或The fingerprint has changed提示,需要删除本机缓存的旧密钥,在Windows上,SecureCRT的已知主机密钥存储在%APPDATA%\VanDyke\Config\KnownHosts\目录,删除对应IP的文件,或者直接删除整个KnownHosts目录,重新连接即可,业内专家指出,重装系统后出现的密钥报错,多半是旧密钥残留所致,删除缓存是最直接的解法。

关于虚拟机连接CRT的常见问答

SecureCRT连接虚拟机失败,但ping虚拟机IP能通,是什么原因?

ping通意味着网络链路正常,失败集中在SSH服务或防火墙,先在虚拟机内执行systemctl status sshd查看服务状态,再确认端口监听,如果服务正常,执行systemctl stop firewalld或ufw disable后重试,另一种常见情况是SSH配置文件只监听了IPv6地址,检查ListenAddress是否包含0.0.0。

虚拟机连接CRT报错“Connection refused”怎么解决?

报错说明目标主机的22端口没有服务应答,重点检查openssh-server是否安装:

  • CentOS:yum install -y openssh-server
  • Ubuntu:apt install -y openssh-server

安装后启动并设置开机自启,如果服务已启动且端口在监听,检查ssh服务的AllowUsers或DenyUsers配置,确认当前用户该被允许。

虚拟机无法连接CRT,换成其他工具能不能解决?

不能,SecureCRT和Xshell、MobaXterm使用的都是SSH协议,底层连接机制完全一致,虚拟机无法连接CRT,换工具通常同样连不上,只有一种例外:SecureCRT会话配置错误,例如端口写错或协议选错,此时换工具重新配置可能绕过这个错误,但排查的重点始终在网络、服务和防火墙上,而不是工具本身。

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