当前位置: 首页 > news >正文

SSH连接虚拟机失败排查指南

SSH连接虚拟机失败是一个非常常见的问题。这期文章就来总结一下原因:可能出在虚拟机的网络配置、SSH服务状态、防火墙设置等多个环节。

别担心,我们可以按照一个清晰的排查流程来一步步解决。请跟着下面的步骤操作,大概率能找到问题所在。

系统性排查步骤


第1步:检查虚拟机的网络连接模式

这是最常见的问题根源。虚拟机的网络模式决定了它如何与外部网络(包括你的主机)通信。

  • 首选模式:NAT模式(网络地址转换)

    • 原理:虚拟机共享主机的IP地址上网,虚拟机会得到一个私有IP(如 192.168.x.x10.0.x.x)。主机可以通过一个特殊的IP(通常是 127.0.0.1localhost,或者是 192.168.x.1)来访问虚拟机。
    • 检查方法:在虚拟机软件(如VMware、VirtualBox)的设置中查看网络适配器是否设置为 NAT
    • 特点:设置简单,虚拟机可以上网,主机可以访问虚拟机,但局域网内其他机器通常不能直接访问该虚拟机。
  • 备选模式:桥接模式

    • 原理:虚拟机会被当作一台独立的机器,直接从你的路由器获取一个IP地址,和你的主机在同一个网段(例如,主机是 192.168.1.10,虚拟机可能是 192.168.1.11)。
    • 检查方法:同样在虚拟机设置中查看。
    • 特点:虚拟机在网络中就像一台真机,局域网内所有设备都可以通过它的IP访问它。但如果网络环境有IP分配限制,可能会获取不到IP。

建议:如果你是初学者,或者只是想从主机连接虚拟机,优先使用NAT模式


第2步:确认虚拟机的IP地址

你需要知道虚拟机的IP地址才能连接它。请务必在虚拟机内部操作。

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

ip addr

或者

ifconfig

在输出结果中,找到 eth0ens33 等类似的网络接口,查看 inet 后面的地址。它通常长这样:192.168.xx.xxx

在Windows虚拟机中(如果你开启了OpenSSH服务):
打开命令提示符(CMD)或 PowerShell,输入:

ipconfig

查看“以太网适配器”下的 IPv4 地址

重要:记下这个IP地址。


第3步:检查虚拟机的SSH服务状态

没有安装或没有启动SSH服务,自然无法连接。

在Linux虚拟机中:

  1. 检查是否安装

    systemctl status ssh
    

    或者(取决于发行版)

    systemctl status sshd
    

    如果显示 active (running),说明服务正在运行。如果显示 not foundinactive,说明需要安装或启动。

  2. 安装SSH服务(以Ubuntu/Debian为例):

    sudo apt update
    sudo apt install openssh-server
    
  3. 启动SSH服务

    sudo systemctl start ssh
    sudo systemctl enable ssh # 设置开机自启
    

在Windows虚拟机中:

  1. 进入 设置 -> 应用 -> 可选功能
  2. 查看功能列表里是否有 OpenSSH 服务器,如果没有,点击 添加功能 来安装。
  3. 安装后,进入 服务 应用(可以在开始菜单搜索 services.msc),找到 OpenSSH SSH Server,确保其状态为“正在运行”。

第4步:检查虚拟机的防火墙设置

防火墙可能阻止了SSH的默认端口(22)。

在Linux虚拟机中(以UFW为例,Ubuntu常用):

sudo ufw status

如果状态是 active,检查是否放行了22端口:

sudo ufw allow ssh
# 或者直接允许22端口
sudo ufw allow 22

在Windows虚拟机中:

  1. 进入 控制面板 -> Windows Defender 防火墙 -> 允许应用或功能通过Windows Defender防火墙
  2. 找到 OpenSSH SSH Server,确保在“专用”和“公用”网络前都打上勾。如果没有,点击 允许其他应用... 来添加。

临时测试方法:为了确认是否是防火墙问题,可以暂时完全关闭虚拟机的防火墙,然后再尝试连接。如果关闭后能连上,就说明是防火墙规则设置问题。


第5步:从主机测试与虚拟机的网络连通性

你的物理机上,打开命令提示符(Windows)或终端(Mac/Linux),使用 ping 命令测试是否能到达虚拟机。

ping <虚拟机的IP地址>

例如:

ping 192.168.1.105
  • 如果 ping 不通:说明网络层就有问题。请回到第1步,仔细检查虚拟机的网络模式,并确认你获取的IP地址是正确的。
  • 如果 ping 通了:说明网络是通的,问题很可能出在SSH服务本身或端口上。

第6步:检查SSH端口是否可访问

即使 ping 通了,SSH服务的22端口也可能无法访问。可以使用 telnetnmap 来测试。

使用telnet(简单推荐):
你的物理机上:

telnet <虚拟机的IP地址> 22
  • 如果看到类似 SSH-2.0-OpenSSH_xxx 的欢迎信息,说明SSH端口是开放的,连接没问题。如果还连不上,可能是客户端问题(比如密钥错误)。
  • 如果连接失败/超时:说明22端口被阻止了,请确认第3步第4步的操作是否正确。

(Windows系统默认可能未安装telnet,可以在“启用或关闭Windows功能”中安装)


常见错误信息及特定解决方案

  • Connection timed out / Network is unreachable

    • 原因:根本找不到虚拟机,网络不通。
    • 解决:重点排查 第1步(网络模式)第5步(ping测试)
  • Connection refused

    • 原因:找到了虚拟机,但它的22端口没有程序在监听。
    • 解决:重点排查 第3步(SSH服务状态),确保 sshd 服务正在运行。
  • Permission denied (publickey, password)

    • 原因:SSH服务拒绝了你的认证请求。
      • 可能是你输错了用户名/密码。
      • 可能是SSH服务配置为禁止密码登录(只允许密钥登录)。
    • 解决
      1. 确认用户名和密码。Linux下区分大小写。
      2. 检查虚拟机的SSH服务配置 /etc/ssh/sshd_config,确认 PasswordAuthentication yes 这一行没有被注释掉且值是 yes。修改后需要重启SSH服务 sudo systemctl restart ssh
  • 在NAT模式下,主机不知道虚拟机的IP

    • 对于VMware NAT模式,主机的VMnet8适配器(在主机网络连接里可以看到)和虚拟机在同一个网段。
    • 对于VirtualBox NAT模式,可能需要配置端口转发
      • 在虚拟机设置 -> 网络 -> 高级 -> 端口转发中。
      • 添加一个规则:主机端口(例如 2222),子系统端口22)。
      • 然后你在主机上连接时,地址填 127.0.0.1,端口填 2222
      ssh -p 2222 username@127.0.0.1
      

总结排查流程图

  1. 确认虚拟机网络模式 -> NAT桥接
  2. 在虚拟机内获取IP地址 -> 使用 ip addripconfig
  3. 在主机ping虚拟机IP -> 不通?回到1和2。
  4. 在主机telnet虚拟机IP 22端口 -> 不通?检查3和4。
  5. 使用SSH命令连接 -> 权限被拒绝?检查用户名/密码和SSH配置。
http://www.dtcms.com/a/558900.html

相关文章:

  • 连云制作企业网站wordpress获取评论用户
  • 徐州网站开发案例wordpress5.2附加域
  • 3 如何进行网站优化设计百度推广二级代理商
  • 网站跳转qqWordPress底部添加音乐
  • 免费网站平台推荐江苏企业网站制作哪家好
  • 记录一个hel_delay失效的情况
  • 做logo的网站教师网络培训心得体会
  • Windows MFC添加类,变量,类导向
  • 图片去重工具:DuplicatePhotoFinder - 图片去重.rar 操作指南
  • 商洛做网站的公司电话wordpress添加单页
  • 查企业数据要去什么网站花都区建设局网站
  • 免费自己生成网站wordpress大气企业主题
  • 杭州做网站推广公司推荐网络软文营销案例3篇
  • 网站开发 需求清单游戏app平台排行榜
  • 网站静态和伪静态意思百度热议怎么上首页
  • 信阳专业网站建设汕头市网络科技有限公司
  • tk不做了,需要的私把
  • 基于深度学习YoloV8模型垃圾分类系统 深度学习pytorch 大数据 (数据集+源码+文档)✅
  • 化工企业网站模板本地资讯网站做的最好的
  • 一线城市做网站工资有多少钱建设工程合同可以分为
  • 企业网站建设 总结长沙的网站建设
  • INT 303 Big Data Analysis 大数据分析 Pt.4 数据可视化
  • 佛山营销网站做盗版电影网站问题
  • 做结构图的网站汽车门店管理系统
  • 已申请域名怎么做网站科技小巨人培育企业
  • 江门网站推广公司上海公司注册收费
  • 建设单位网站的重要性电子商务网站建设教程
  • 个人网站可以备案深圳市工程交易中心
  • 网站开发大学python编程课哪个机构最好
  • 域名 网址 网站名称付费网站搭建