百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

云服务器无法远程连接?4步排查,准能解决

bigegpt 2024-08-30 12:43 2 浏览

在运维工程师的日常工作中,经常需要登录到服务器上对应用部署和维护,配置修改是很常规操作。但是在日常运维工作中,经常也会遭遇“滑铁卢”,当出现无法远程连接服务器的时候,我们需要沉着冷静,耐心分析报错的症结,方能更好的定位和排除问题。



今天百晓生就阿里云服务器ECS无法远程连接的问题,分享一波运维必备的问题排查方法,认同小编的童鞋,文末【点赞+再看】哦~


说明:以下操作在CentOS 6.5 64位操作系统中进行过测试


检查CPU负载、带宽及内存使用情况


确认是否存在CPU负载过高的情况

  • 如果在某个时间段CPU负载过高,可能导致远程连接失败,建议您查询程序或者实例资源是否不满足现有要求。
  • 如果不存在CPU负载过高的情况,则继续下一步检查。

确认公网带宽是否不足

无法远程连接可能是公网带宽不足导致的,具体排查方法如下:

  • 登录ECS管理控制台。
  • 找到该实例, 单击管理进入实例详情页面,查看网络监控数据。
  • 检查服务器带宽是否为“1k”或“0k”。如果购买实例时没有购买公网带宽,后来升级了公网带宽,续费的时候没有选择续费带宽,带宽就会变成“1k”。

确认内存是否不足

远程连接输入用户密码登录后,不能正常显示桌面直接退出,也没有错误信息。这种情况可能是服务器内存不足导致的,需要查看一下服务器的内存使用情况。具体操作如下:

  • 使用控制台远程连接功能登录到Linux实例。
  • 查看内存使用情况,确认内存不足后,再进行处理。


客户端排查

客户端无法正常登录时,先使用不同的SSH客户端基于相同账户信息进行登录测试。如果能正常登录,则判断是客户端配置问题,需要对客户端配置或软件运行情况做排查分析。关于如何使用SSH客户端登录Linux实例,您可以参见远程连接Linux实例。


步骤一:使用管理终端登录实例

无论何种原因导致无法远程连接实例,请先尝试用阿里云提供的远程连接功能进行连接,确认实例还有响应,没有完全宕机,然后再按原因分类进行故障排查。

  • 录云服务器管理控制台,单击左侧导航栏中的实例,然后在目标实例右侧单击远程连接。
  • 在首次连接或忘记连接密码时,单击修改远程连接密码,修改远程连接的密码。
  • 然后通过远程连接密码连接实例。


步骤二:检查客户端本地网络是否异常

确认是否存在用户本地无法连接外网的故障。

  • 如果存在,则检查网卡驱动,如果存在异常,则重新安装。使用管理终端登录实例,查看/etc/hosts.deny文件,查看是否存在拦截IP,如果存在则删除此IP配置即可。
  • 如果不存在,则继续下一步检查。


步骤三:重启实例

在确保登录密码正确的情况下,确认之前是否曾重置过密码。检查重置实例密码后是否未重启实例,如果存在实例密码修改记录,但无重启实例记录,则参考以下操作步骤重启实例:

  • 登录ECS管理控制台,单击左侧导航栏中的实例。
  • 在页面顶部的选择对应的地域,目标实例右侧单击更多>实例状态>重启,再单击确定即可。


中间网络

中间网络包括网络检查和端口检查。


网络检查

无法正常远程连接Linux实例时,需要先检查网络是否正常。

  • 用其他网络环境中,不同网段或不同运营商的电脑连接对比测试,判断是本地网络问题还是服务器端的问题。如果是本地网络问题或运营商问题,请联系本地IT人员或运营商解决。如果是网卡驱动存在异常,则重新安装。排除本地网络故障后进行下一步检查。


  • 在客户端使用ping命令测试与实例的网络连通性。

1)网络异常时,请参见网络异常时如何抓取数据包进行排查。

2)当出现ping丢包或ping不通时,请参见使用ping命令丢包或不通时的链路测试方法进行排查。

3)如果出现间歇性丢包,ECS实例的网络一直处于不稳定状态时,请参见使用ping命令测试ECS实例的IP地址间歇性丢包进行解决。

4)系统内核没有禁ping的情况下,使用ping命令测试ECS服务器,发现网络不通,请参见Linux系统的ECS中没有禁PING却PING不通的解决方法。


端口检查

网络检查正常后,进一步检查端口是否正常。

1. 使用管理终端登录实例,执行如下命令,编辑SSH配置文件。

vi /etc/ssh/sshd_config2. 找到“#port 22”所在行,检查默认端口22是否被修改,且前面的“#”是否删除,如果没有删除,可以把前面的“#”删除,然后将22改为其它的端口,再保存退出即可。

说明:服务监听能使用的端口范围为0到65535,错误配置监听端口会导致远程桌面服务监听失败


3. 执行如下命令,重启SSH服务。

/etc/init.d/sshd restart说明:也可执行service sshd restart命令,重启SSH服务。


4. 使用Python自带的Web服务器创建临时的监听端口进行测试。

python -m SimpleHTTPServer [$Port]

5. 如果ECS安全组规则中未放行修改后的端口号,需要将修改后的端口号添加到ECS安全组规则中。

说明:ECS的安全组规则中默认放行22端口。修改了远程桌面的端口后,需要在安全组规则中放行修改后的端口号。


6. 通过上一步获取的端口,参考如下命令,进行端口测试,判断端口是否正常。

telnet [$IP] [$Port]

说明:

- [$IP]指Linux实例的IP地址。

- [$Port]指Linux实例的SSH端口号

系统显示类似如下,例如执行telnet 192.168.0.1 22命令,正常情况下,系统会返回服务端中SSH的软件版本号。


安全组检查

检查安全组配置,是否允许远程连接的端口。

  • 参见查询安全组规则,查看安全组规则。如果远程连接端口没有进行配置,则参见Linux实例启用SSH服务后设置对应的安全组策略配置。
  • 确认是否存在无法ping通ECS实例,在排除Iptables和网卡IP配置问题且回滚系统后,仍然无法ping通。可能是ECS实例安全组默认的公网规则被删除,则需要重新配置ECS实例的安全组公网规则。如果不存在,则继续下一步骤检查。

关注百晓生,笑谈云计算

相关推荐

Java 泛型大揭秘:类型参数、通配符与最佳实践

引言在编程世界中,代码的可重用性和可维护性是至关重要的。为了实现这些目标,Java5引入了一种名为泛型(Generics)的强大功能。本文将详细介绍Java泛型的概念、优势和局限性,以及如何在...

K8s 的标签与选择器:流畅运维的秘诀

在Kubernetes的世界里,**标签(Label)和选择器(Selector)**并不是最炫酷的技术,但却是贯穿整个集群管理与运维流程的核心机制。正是它们让复杂的资源调度、查询、自动化运维变得...

哈希Hash算法:原理、应用(哈希算法 知乎)

原作者:Linux教程,原文地址:「链接」什么是哈希算法?哈希算法(HashAlgorithm),又称为散列算法或杂凑算法,是一种将任意长度的数据输入转换为固定长度输出值的数学函数。其输出结果通常被...

C#学习:基于LLM的简历评估程序(c# 简历)

前言在pocketflow的例子中看到了一个基于LLM的简历评估程序的例子,感觉还挺好玩的,为了练习一下C#,我最近使用C#重写了一个。准备不同的简历:image-20250528183949844查...

55顺位,砍41+14+3!季后赛也成得分王,难道他也是一名球星?

雷霆队最不可思议的新星:一个55号秀的疯狂逆袭!你是不是也觉得NBA最底层的55号秀,就只能当饮水机管理员?今年的55号秀阿龙·威金斯恐怕要打破你的认知了!常规赛阶段,这位二轮秀就像开了窍的天才,直接...

5分钟读懂C#字典对象(c# 字典获取值)

什么是字典对象在C#中,使用Dictionary类来管理由键值对组成的集合,这类集合被称为字典。字典最大的特点就是能够根据键来快速查找集合中的值,其键的定义不能重复,具有唯一性,相当于数组索引值,字典...

c#窗体传值(c# 跨窗体传递数据)

在WinForm编程中我们经常需要进行俩个窗体间的传值。下面我给出了两种方法,来实现传值一、在输入数据的界面中定义一个属性,供接受数据的窗体使用1、子窗体usingSystem;usingSyst...

C#入门篇章—委托(c#委托的理解)

C#委托1.委托的定义和使用委托的作用:如果要把方法作为函数来进行传递的话,就要用到委托。委托是一个类型,这个类型可以赋值一个方法的引用。C#的委托通过delegate关键字来声明。声明委托的...

C#.NET in、out、ref详解(c#.net framework)

简介在C#中,in、ref和out是用于修改方法参数传递方式的关键字,它们决定了参数是按值传递还是按引用传递,以及参数是否必须在传递前初始化。基本语义对比修饰符传递方式可读写性必须初始化调用...

C#广义表(广义表headtail)

在C#中,广义表(GeneralizedList)是一种特殊的数据结构,它是线性表的推广。广义表可以包含单个元素(称为原子),也可以包含另一个广义表(称为子表)。以下是一个简单的C#广义表示例代...

「C#.NET 拾遗补漏」04:你必须知道的反射

阅读本文大概需要3分钟。通常,反射用于动态获取对象的类型、属性和方法等信息。今天带你玩转反射,来汇总一下反射的各种常见操作,捡漏看看有没有你不知道的。获取类型的成员Type类的GetMembe...

C#启动外部程序的问题(c#怎么启动)

IT&OT的深度融合是智能制造的基石。本公众号将聚焦于PLC编程与上位机开发。除理论知识外,也会结合我们团队在开发过程中遇到的具体问题介绍一些项目经验。在使用C#开发上位机时,有时会需要启动外部的一些...

全网最狠C#面试拷问:这20道题没答出来,别说你懂.NET!

在竞争激烈的C#开发岗位求职过程中,面试是必经的一道关卡。而一场高质量的面试,不仅能筛选出真正掌握C#和.NET技术精髓的人才,也能让求职者对自身技术水平有更清晰的认知。今天,就为大家精心准备了20道...

C#匿名方法(c#匿名方法与匿名类)

C#中的匿名方法是一种没有名称只有主体的方法,它提供了一种传递代码块作为委托参数的技术。以下是关于C#匿名方法的一些重要特点和用法:特点省略参数列表:使用匿名方法可省略参数列表,这意味着匿名方法...

C# Windows窗体(.Net Framework)知识总结

Windows窗体可大致分为Form窗体和MDI窗体,Form窗体没什么好细说的,知识点总结都在思维导图里面了,下文将围绕MDI窗体来讲述。MDI(MultipleDocumentInterfac...