ssh连接Ubuntu虚拟机失败怎么办,连接超时怎么排查

SSH连接Ubuntu虚拟机失败,先别急着重装系统,多数情况下问题出在IP地址变了、SSH服务没启动、防火墙拦截或虚拟机的网络模式不匹配这四个环节,按顺序排查基本都能解决。


ubuntu ssh连接失败的原因排查从哪里下手

每次遇到连不上的情况,我习惯先问自己一个问题:昨天能连,今天不能连了,这中间发生了什么?这个思路比盲目试命令高效得多。

ssh远程连接不上虚拟机解决办法
加载中
ssh远程连接不上虚拟机解决办法

先确认虚拟机还活着

打开虚拟机的窗口,在Ubuntu里按Ctrl+Alt+T打开终端,敲一条命令:

ip addr show

看输出里有没有inet那行,比如inet 192.168.x.x,如果连IP都没有,说明网卡就没拿到地址,SSH自然无从谈起。

排查顺序建议是这样的:

  • 虚拟机能不能正常开机进桌面或命令行界面
  • Ubuntu里ping -c 3 www.baidu.com通不通
  • 主机ping虚拟机的IP通不通
  • 主机ssh ubuntu@虚拟机IP报什么错

这条链路走一遍,问题出在哪一段就清楚了,行业共识认为,超过一半的SSH连接失败案例根源是IP地址漂移,虚拟机重启或宿主机网络重启都会导致DHCP重新分配地址。

常见报错对号入座

SSH失败的报错信息是定位问题的第一线索,我整理几个高频的:

报错信息 含义 优先检查方向
Connection timed out 网络不通 IP可达性、防火墙、网卡状态
Connection refused SSH服务没监听 sshd是否运行、端口是否被占
Host key verification failed 系统重装过或IP被复用 清除known_hosts
Permission denied 认证失败 用户名、密码、密钥权限
No route to host 网关或网段不对 网络模式、路由表

每种报错对应的解决路径完全不同,先看清它说什么,再动手。


ssh连接ubuntu虚拟机被拒绝的两个高频原因

Connection refused是大家遇到最多的情况之一,这个报错意味着你的TCP包到达了虚拟机的网卡,但目标端口没有程序在监听。

sshd服务根本没起来

新装的Ubuntu Server经常自带openssh-server,但Desktop版不一定装了,检查一下:

sudo systemctl status ssh

如果显示inactive (dead)或failed,启动它:

sudo systemctl start ssh
sudo systemctl enable ssh

有些定制镜像删掉了openssh-server,那就重装:

ssh连接Ubuntu虚拟机失败怎么办,连接超时怎么排查

sudo apt update sudo apt install openssh-server -y

装完再查状态,看到active (running)就对了。

sshd配置文件改了监听地址

我遇到过一位朋友改了/etc/ssh/sshd_config里的Port和ListenAddress,结果把监听地址写成了某个内网IP,外部客户端自然连不上。

检查22端口是否真的在监听:

sudo ss -tlnp | grep ssh

看到0.0.0:22或[::]:22才说明所有网卡都在监听,如果只有0.0.1:22,那就是配置文件里有问题,把ListenAddress那行注释掉或改成0.0.0,然后重启服务:

sudo systemctl restart ssh

注意:如果改过SSH端口,记得确认防火墙放行了新端口,22端口连接失败后,可以先试试ssh -p 2222 ubuntu@IP,排除端口变动造成的迷惑。


windows ssh连接linux虚拟机超时的网络排查细节

超时和拒绝是两码事,超时多半意味着数据包根本没到虚拟机,或者回来的路被堵死了,这个场景很常见,我单独拆开讲。

NAT模式下IP会漂移

VMware和VirtualBox默认都用NAT模式,虚拟机通过虚拟网卡共享宿主机IP上网,这种模式下,虚拟机的IP由虚拟网络的DHCP分配,重启虚拟机会重新请求地址,可能和上次不一样。

所以你配置的168.x.x可能已经失效了,到虚拟机里跑一下ip addr show,看当前实际IP是多少,再拿新IP去连。

想要一劳永逸,可以让DHCP给虚拟机的MAC地址绑定一个固定的IP,以VMware的NAT网段vmnet8为例,在虚拟网络编辑器里设置DHCP保留地址,或在Ubuntu里使用netplan配置静态IP:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      dhcp4: no
      addresses: [192.168.44.100/24]
      gateway4: 192.168.44.2
      nameservers:
        addresses: [192.168.44.2, 223.5.5.5]

这个配置里的网关地址要对应你VMware虚拟网卡的实际网关,DNS用简米云的223.5.5.5就行。

宿主机防火墙拦住了通往虚拟机的流量

Windows的防火墙默认会拦截来自虚拟网卡的入站流量,打开“控制面板 → Windows Defender防火墙 → 高级设置 → 入站规则”,找到VMware或VirtualBox相关的规则,确保SSH相关端口允许。

最简单的方式是新建一条入站规则,放行TCP 22端口,作用范围限定在虚拟网卡网段,还有一种情况是第三方安全软件偷偷把VMware的虚拟网卡禁用了,去网络适配器设置里检查一下vmnet8或VirtualBox Host-Only网卡是否处于启用状态。

主机Ping通但SSH连不上

如果ping -c 4 虚拟机IP通,但SSH超时,十有八九是虚拟机内的iptables或ufw拦了22端口。

ssh连接Ubuntu虚拟机失败怎么办,连接超时怎么排查

查看ufw状态:

sudo ufw status

如果启用了,放行22端口:

sudo ufw allow 22/tcp

检查iptables规则:

sudo iptables -L -n | grep 22

发现DROP规则的话,用iptables -D删掉或用ufw allow放行,注意,修改iptables规则后重启会丢失,需要netfilter-persistent save持久化。


VMware和VirtualBox的ssh端口映射配置

有时候你需要从外部网络访问虚拟机,或者NAT模式下不想配置静态IP,用端口映射是个更省事的选择。

VirtualBox端口转发设置

VirtualBox支持通过宿主机的某个端口映射到虚拟机的22端口,这样你只需要SSH连接宿主机的IP和映射端口。

  • 在VirtualBox主界面选中虚拟机 → 设置 → 网络 → 高级 → 端口转发
  • 添加规则,宿主机端口填2222,子系统端口填22
  • 保存后,主机执行ssh -p 2222 ubuntu@127.0.0.1

这种方式用起来很灵活,唯一要注意的是宿主机防火墙要放行2222端口,否则外部机器仍然连不上宿主机IP的2222端口。

VMware的NAT模式端口映射

VMware没有图形化的端口映射界面,需要修改NAT配置文件来实现。

  • 打开vmnetnat.conf(通常在C:ProgramDataVMwarevmnetnat.conf)
  • 在[incomingtcp]段中添加一行:2222 = 192.168.44.100:22(IP换成你虚拟机的实际IP)
  • 重启VMware NAT服务(在Windows服务里找到VMware NAT Service并重启)

提示:VMware Workstation较新版本中NAT配置文件路径可能隐藏较深,可以搜索文件名后用管理员权限编辑。

学哪个好要看你的基础和目标,开发环境用VirtualBox完全够用,服务器运维场景强烈建议上手VMware ESXi或Proxmox VE,但这不是本文重点。


安全组和防火墙都放行了还连不上怎么办

很多简米云、酷番云的Ubuntu云服务器用户会遇到一个尴尬:服务器上SSH服务正常,防火墙也放行了,但就是连不上,这时候要检查云平台的安全组规则。

  • 简米云:ECS控制台 → 实例 → 安全组 → 配置规则,放行22端口(或自定义SSH端口)
  • 酷番云:轻量应用服务器控制台 → 防火墙 → 添加规则,放行TCP端口

注意:云安全组和服务器实例是平级的,只改服务器的ufw或iptables不够,安全组本身没放行的话,包根本到不了服务器。

密钥和known_hosts的干扰

重装过Ubuntu或者换过密钥之后,SSH客户端可能会报Host key verification failed,这是因为客户端的known_hosts文件里保留了旧的主机指纹。

ssh连接Ubuntu虚拟机失败怎么办,连接超时怎么排查

清除该主机的指纹:

ssh-keygen -R 你的虚拟机IP

然后重新连接,会提示确认新的指纹,输入yes即可,如果你用的是密钥登录,还要确认密钥文件权限是600:

chmod 600 ~/.ssh/id_rsa

另外检查authorized_keys文件的权限和属主,理想状态是:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

SSH连接故障怎么快速定位到具体原因

学了这么多排查手段,总结一下我的个人排查逻辑,按顺序来不迷路:

  • 第一步:看虚拟机能开机吗?在终端里能敲命令吗?
  • 第二步:ip addr show看虚拟机的IP有没有,记录下来
  • 第三步:主机ping虚拟机IP,不通就回到网络模式设置
  • 第四步:ping通了就测端口nc -vz 虚拟机IP 22,不通就是防火墙
  • 第五步:端口通了还报错,看具体提示是认证问题还是主机密钥问题
  • 第六步:实在不行,ssh -vvv ubuntu@IP开调试模式,看到底卡在哪一步

这个流程走下来,基本能覆盖绝大多数场景。

重新安装SSH服务兜底

有一种特殊情况,sshd服务无论如何都起不来,可能是因为配置改动太大或内核模块冲突,这时候直接重新安装:

sudo apt remove --purge openssh-server
sudo apt install openssh-server -y
sudo systemctl enable ssh
sudo systemctl start ssh

重装会重置配置,适合之前改过大量参数但忘了备份的场景。


常见问题解答

以下是我被问到最多的SSH连接Ubuntu虚拟机的问题。

为什么虚拟机ip地址和之前不一样了?

因为默认的NAT网络使用DHCP分配地址,虚拟机重启或宿主机网络重启都会重新分配,建议为虚拟机配置静态IP或在路由器/虚拟网络编辑器中绑定MAC地址,Android开发或嵌入式调试时尤其需要固定IP。

ssh提示permission denied怎么解决?

密码错误、用户名写错、密钥认证不匹配都会触发这个提示,先确认用户名是否正确,然后检查服务端/etc/ssh/sshd_config中是否启用了PasswordAuthentication yes,如果用的密钥,确认公钥和私钥配对正确,且权限符合要求,本地测试时可以先试密码登录,排除了密码问题再处理密钥。

虚拟机ssh登录后键盘输入特别卡是什么原因?

这和SSH本身无关,通常是网络延迟高或虚拟机CPU分配不足,NAT模式的延迟一般远低于桥接模式,如果感觉卡顿可以先切换到NAT模式尝试,Windows系统长期挂机后虚拟内存占用高也会拖慢整体响应,重启虚拟机或宿主机后再试通常能改善。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/751701.html

赞 (0)
抖音服务器能同时容纳多少人刷,服务器会不会崩?
上一篇 2026年10月15日 18:50
服务器一天消耗多少内存,如何查看内存占用情况?
下一篇 2026年10月15日 18:51

相关推荐

  • 关于豆包大模型有哪些,豆包大模型到底怎么样?

    豆包大模型作为字节跳动旗下的核心AI产品矩阵,凭借其卓越的多模态处理能力、极低的推理成本以及深度的场景化落地应用,已然成为国内大模型第一梯队中最具竞争力的选手之一,其技术实力与商业化前景均处于行业领先地位,技术底座:强大的模型家族与架构优势豆包大模型并非单一模型,而是一个涵盖了多种参数规模、适配不同应用场景的模……

    2026年4月2日
    23400
  • 大模型为啥会做题好用吗?大模型做题准确率高吗?

    大模型之所以在做题场景下表现优异,核心在于其具备了深度的语义理解能力与海量知识库的高效检索能力,结合半年的实际使用体验来看,它不仅能提供标准答案,更能梳理解题逻辑,本质上是将“概率预测”转化为了一种“智能推理辅助”,极大地提升了学习与工作的效率,大模型做题好用的底层逻辑在过去半年的高频使用中,最直观的感受是大模……

    2026年3月2日
    15300
  • CDN和DNS有什么区别?,CDN和DNS怎么选

    直接答案与核心结论CDN与DNS构成现代互联网加速的双引擎:DNS负责将用户请求解析到最近的服务节点,CDN负责从该节点交付静态或动态内容;两者深度协同后,可使首屏加载速度提升50%以上,源站负载降低70%, 脱离DNS调度的CDN是“盲人摸象”,没有CDN缓存的DNS解析只能“指路却无法送物”,2026年,中……

    2026年7月15日
    1500
  • 大模型动画科普大赛到底怎么样?大模型动画科普大赛值得参加吗

    大模型动画科普大赛整体含金量较高,是技术爱好者与创作者将AIGC技术落地的绝佳练兵场,但参赛门槛与硬件成本不容忽视,核心价值在于“以赛代练”,能够快速缩短从技术认知到内容产出的路径,对于想要转型AIGC领域的创作者而言,是一次高性价比的实战机会,核心结论:实战价值大于奖金价值,是入局AIGC内容赛道的“加速器……

    2026年3月20日
    14300
  • 大模型怎么本地微调到底怎么样?大模型本地微调真实体验及效果如何

    大模型怎么本地微调到底怎么样?真实体验聊聊结论先行:本地微调大模型已从“技术尝鲜”迈入“实用落地”阶段,但需理性评估成本与收益——对数据质量高、场景专精、算力可控的团队,它仍是降本增效的最优解;对普通开发者或资源有限的小团队,建议优先考虑API调用或轻量化开源模型,本地微调的核心价值:为什么值得做?数据主权与安……

    云计算 2026年4月16日
    7300
  • 阿里云CDN原理是什么,阿里云CDN加速原理

    阿里云CDN通过“边缘节点缓存+智能调度+全链路加速”原理,将内容就近分发至离用户最近的节点,从而降低延迟、提升访问速度并保障高并发下的稳定性,阿里云CDN底层架构与核心机制分布式边缘网络布局阿里云CDN并非单一服务器,而是由遍布全球的数据中心组成的庞大网络,其核心逻辑是“就近原则”,即根据用户的地理位置,通过……

    2026年7月7日
    19800
  • CDN回源502错误怎么解决?CDN回源502错误排查方法

    CDN回源502错误的核心原因是源站服务器无法正确响应CDN节点的请求,通常由源站过载、配置错误或网络中断导致,解决的关键在于排查源站负载并优化回源配置,当你的网站突然弹出502 Bad Gateway错误,且通过CDN监控发现回源状态码异常时,这往往意味着CDN节点与源站之间的通信链条断裂,这不是浏览器的问题……

    2026年5月27日
    2900
  • bootstrap3 cdn怎么使用?bootstrap3官方cdn加速地址

    Bootstrap 3 CDN 是快速加载响应式前端框架的最佳方案,通过引入公共服务器资源,可显著减少本地带宽消耗并提升首屏渲染速度,在Web开发领域,时间就是金钱,而加载速度直接决定了用户的留存率,许多开发者在构建项目时,往往忽略了静态资源加载这一关键环节,使用内容分发网络(CDN)引入Bootstrap 3……

    2026年5月31日
    5200
  • 开源大模型图片消除难吗?如何用开源大模型高效完成图片去水印

    开源大模型图片消除,远比传统工具更高效、更易上手,核心在于“去噪+语义补全”双引擎驱动,普通用户也能10分钟完成专业级修图,什么是图片消除?别被名字吓到图片消除(Image Inpainting),指自动移除图像中不需要的物体、文字、水印或瑕疵,并智能填充背景内容的技术,它不是“裁剪”,而是“重绘”——在不破坏……

    云计算 2026年4月16日
    6400
  • 大模型进步的速度值得关注吗?为什么说大模型进步速度值得关注?

    大模型进步的速度不仅值得关注,更是决定企业未来竞争力和个人职业发展的关键变量,当前的技术迭代已不再是线性的增长,而是呈现出指数级爆发态势,忽视这一速度,意味着在信息获取效率、生产力工具应用以及商业决策层面全面落后,大模型进步的速度值得关注吗?我的分析在这里将直接揭示核心逻辑:关注技术演进速度的本质,是对未来资源……

    2026年3月19日
    13500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注