ECS云主机SSH连接提示“Connection reset by peer”的解决办法和解决思路

三周前刚从上家公司换到新的公司,这家公司与上家公司相比对阿里云的云计算环境更加的依赖,使用的ECS实例和其他服务如SLB、RDS、OSS等更多了一个数量级。这篇文章的背景就是为了解决阿里云ECS云主机SSH连接的一个问题,从故障发现到故障排除到最后反思的一个详细过程。文章比较长,图片众多,建议有时间仔细阅读,没时间就阅读文末的“总结和反思”部分即可。

故障发现:

2017-05-23 下午17:00点前同事报告称GitLab所在的服务器访问出现异常。经查发现在公司内无法正常通过SSH连接GitLab服务器。经过测试后发现问题确实存在。

用户(运维)自查过程:

  1. SSH连接公网IP地址失败,ping正常,该服务器上的业务访问正常,因此判断不是服务器宕机;
  2. 连接到在阿里云刚搭建好的OpenVPN服务器,SSH连接内网IP地址,发现可以正常连接,排除SSH服务问题;
  3. 经过查询ECS云主机上的日志,/etc/hosts.*,防火墙、SELinux以及ECS安全组,发现公司的IP根本没有任何连接ECS云主机的日志记录和存在配置不当的问题;
  4. 因此初步判断问题不在ECS云主机和公司网络上,怀疑可能是阿里云安全组出了问题或者公网出口的防火墙对我们公司的IP地址进行了拦截,认真核对了安全组设置和确定云主机以及运行环境没有问题后,果断向阿里云提工单支持。

阿里云工单支持过程:

说明:

(1)为了方便编辑和阅读,所有内容均为原始截图(在新标签页中打开图片查看原始图片),IP等敏感信息也不做隐藏处理,请大家不要恶意攻击,如果发现漏洞欢迎留言和进一步交流;

(2)沟通记录后面的图片是沟通记录中按次序出现的图片,供大家查阅;

(3)工作任务比较繁重,时间仓促,如有问题请批评指正和多多谅解;

1.用户报告问题,售后工程师给出初步诊断

2.双方互相协助排查

3.进一步测试问题

 

4.及时跟进进度,进一步诊断问题

5.进一步分析和确认原因

6.找到原因,解决问题

7.售后工程师给出问题结论,用户评价,完成工单

问题和解决方案总结:

[ 问题现象 ] ECS云主机的公网IP地址无法通过SSH连接,提示“Connection reset by peer”,内网地址连接正常

[ 解决方案 ] 排查发现是该客户端IP扫描服务端多个敏感端口导致被云盾拦截,如果确认没有问题,您可以通过如下路径设置白名单放行:云盾控制台--》DDOS防护--》基础防护--》点击具体的实例--》扫描拦截--》白名单设置--》添加源地址 124.129.14.90

总结和反思:

1.阿里云的产品的确为用户提供了很大的便利,但用户也需要了解用户自己使用的阿里云产品的技术栈和相关知识,用户需要有自己专业的运维支持

2.提交问题时,用户要尽可能的为问题诊断人员提供尽可能的多的信息,这样才能帮助问题诊断人员在较短的时间内定位问题

3.在工单过程中,用户要尽可能的提供图片,保留问题证据,为后期纠纷和索赔做好准备

4.利用排除法缩小问题范围,判断问题的种类和使用恰当的工具很重要,比如这个例子中:SSH无法连接-->排除其他问题定位到是网络问题-->网络问题的工具:tcpdump+Wireshark抓包排查-->判断不是xxx的问题-->最终得出结论:云盾拦截

5.当售后工程师帮助我们解决问题时,自己也要多动脑思考,并不是一劳永逸提交过工单说明情况就完结了,需要用户在此过程中多做配合及时跟进问题,了解工单进展

6.问题解决过程中,用户和售后要互相谅解,互帮互助,以解决问题为要

7.事故的责任问题,此事故不能说完全是用户的问题,阿里云的云盾确实存在缺陷,假设用户办公网络内真的存在恶意扫描,云盾在检测到攻击后应该及时告知用户,例如给出攻击威胁通知,在拦截并加入黑名单后,应该及时通知用户

8.对于这位售后工程师的评价:其实他很不容易。但通过纵览解决问题的全过程,可以发现这位工程师在解决问题的能力上和在为用户解决问题的态度上还是有一定问题的。如果在沟通过程中能更主动一些,解决问题的思路上更灵活一些应该能在更短的时间内解决问题

9.自己的反思:

(1)作为运维人员来说,经验要不断积累,技能要不断提升,这需要保持一个良好的心态和面对问题时的态度;

(2)在面临问题时要考虑全面,把所有可能的问题因素都找出来,逐个排除最终解决问题;

(3)解决问题时工具和思路都很重要,平时运维过程中不仅需要经验知识积累也需要关注针对某一部分问题的完整解决方案的积累,能灵活运用恰当的工具快速解决问题

(4)…… ……

时间有限,先到此为止,后期再慢慢整理和反思。

--end--

时间: 2024-10-17 22:04:12

ECS云主机SSH连接提示“Connection reset by peer”的解决办法和解决思路的相关文章

Jenkins Publish over SSH 异常:Connection reset by peer: socket write error

Jekins持续集成: 服务器时windows服务器: windows安装openssh服务: 安装包:https://github.com/PowerShell/Win32-OpenSSH/releases 开箱即用:步骤1 文件解压至C:\Program Files\OpenSSH 2 控制台cd至目录 3 执行powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1 启动服务ssh; 踩坑的地方:当时没有把文件放到C:\Pr

老项目采用tomcat出现异常:Connection reset by peer: socket write error 异常解决方法

项目一段时间就出现异常,导致无法登陆系统,数据库无法连接上 异常信息如下: java.sql.SQLException: Io 异常: Connection reset by peer: socket write error at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179) a

ssh连接提示 "Connection closed by remote host"

如果原来是可以用ssh连接的, 突然连接不上通常是连接数过多导致的. 解决方法一. 把SSH连接数改大 修改服务器上的这个文件:/etc/ssh/sshd_config 找到这行: # MaxSessions 10 去掉前面的"#" 并把数字改大,最后重启sshd service sshd restart 然后重新连接即可. 解决方法二.  每次正常退出SSH连接 每次执行完命令后用输入"exit" 退出, 防止连接数过多. 解决方法三. 重启 如果连接不上远程主机

CentOS7使用ssh不能登录,报错:Read from socket failed: Connection reset by peer

使用xshell登录CentOS7,不能登录,使用另外一台Linux主机,telent 22端口是同的,ssh连接报以下错误: Read from socket failed: Connection reset by peer 查看不能登录主机的日志 # cat /var/log/messages Dec 15 19:38:27 localhost dbus-daemon: dbus[874]: [system] Successfully activated service 'org.freed

聊一聊我的阿里云ECS云主机

javaweb学习有段时间了,期间也编写了一些自己的小webapp应用,但是都是发布在我们自己的个人pc上的. 于是我在想:怎么样让自己的项目可以发到公网上面去,让朋友们能够来访问? 我首先想到的是:服务器.一台能够在有网络的环境下,远程访问的计算机.其实还有一种方法:最近网上看到说用"花生壳"动态域名解析,可以让自己的电脑发布在公网上,这样别人就可以来访问你的电脑了.但是感觉这样还是特别的不安全.而且自己的电脑里面的资料可不少,万一哪位"朋友"来搞个小破坏,我的数

ssh远程报错ssh_exchange_identification: read: Connection reset by peer

ssh远程登录报错: [[email protected] ~]$ ssh     198.44.241.34 ssh_exchange_identification: read: Connection reset by peer 初步原因锁定: 1-服务器防火墙限定, 2-是否达到ssh的最大连接数,超过之后会服务器端会拒绝新的连接,直到有新的连接释放出来 3-/etc/hosts.allow和/etc/hosts.deny配置文件限定ip登录 解决方案: 1 firewall-cmd --l

SSH 错误解决案例1:Read from socket failed: Connection reset by peer

今天早上天天连接的开发机突然报出连接错误. 这个错误是SSH最常见错误,造成的原因也是千奇百怪(具体可goole),下面描述我的server的问题: 客户端报错 [[email protected]]# ssh 192.168.1.22 Read from socket failed: Connection reset by peer 换个机器连接也不行,尝试重启server端的sshd,thanks god, 报错了 [[email protected] ssh]# service sshd

ssh_exchange_identification: read: Connection reset by peer

连接SSH报错:ssh_exchange_identification: read: Connection reset by peer 查看没有使用防火墙,怀疑是在hosts.deny中设置了拦截 果不其然 将这一行注释,默念三声“信春哥得永生”后,问题恢复了,so easy

nginx php fastcgi Connection reset by peer的原因及解决办法

Connection reset by peer 这个错误是在nginx的错误日志中发现的,为了更全面的掌握nginx运行的异常,强烈建议在nginx的全局配置中增加 error_log   logs/error.log notice; 这样,就可以记录nginx的详细异常信息. nginx的错误日志中会出现Connection reset by peer) while reading response header from upstream, client: 1.1.1.1, server: