AWS 连接不上实例的端口的排查思路
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS 连接不上实例的端口的排查思路相关的知识,希望对你有一定的参考价值。
参考技术A 很多同学经常遇到 EC2 连接不上的情况,有的是创建出来就连接不上,有的是运行的好好的突然就连不上了。
如果是创建出来就连不上,
先看你的 ec2 安全组有没有开对应的端口,端口的源地址有没有包含你的 IP。
再看你的子网是公有子网还是私有子网,查你的子网的路由表有没有到互联网网关。
都没问题说明你的网络没有问题,看 os 层面。
查你的 EC2 的两项状态检查是不是绿的。
如果状态检查挂了,一般重启就好了,不然只能开 case 让后台解决了。
最后有一些镜像内带的有防火墙,连上去看下系统的防火墙开没开。
如果是正常运行突然连不上的情况,就要考虑 AWS 的问题了。
还是先看两项状态检查过没过。
再看 AWS 的服务状态网站: https://status.aws.amazon.com/
查你服务所在的 Region 有没有什么服务故障。
最后看你账号指定的邮箱,有没有 AWS 发给你的 abuse 邮件。
abuse 就是你的服务器被黑了,AWS 检测到你有违规行为,
比如扫别人的端口,不断尝试登录别的实例等行为,
AWS 会直接封你的端口(一般是除22和3306的所有端口)。
又遇到一个情况,状态检查和安全组都没有问题,连接报 socket error 10053
问题原因是本地开了代理程序,关了就能连上了,远端服务器是没有问题的。
Django连接Redis集群问题排查思路和总结
参考技术A 直接就一个连接失败确认账号密码和端口没问题后,问题同事配置有没验证过,他说直接从网上 cv 的,完全没经过验证。坑啊!!!
把生产的配置和测试配置比较好,修改了几个地方
信心满满,重启启动 django shell 测试,结果还是连接不上!这时候心情开始有点糟糕~
冷静, django shell 不行,那用 python shell 直连试试?
一点毛病都没有,直接连上了!
一脸懵逼,这到底是啥问题啊!
结果依然是连接不上。
不知不觉已经到了晚上九点,好累,不想卷了。下班回家吧
回家路上整个脑子都被这个问题困扰着。难道密码中含有 @ 符号的 redis 集群,Django 真的连接不上?反复的问自己。
问了其他同事,生产环境是否有其他的 redis 集群可以用来调试。很遗憾,并没有。
要不,我自己创建一个 redis 集群,把密码设置成含有 @ 符号?
可是,自己本地创建 redis 集群好麻烦啊。要本地安装虚拟机,想到一堆配置就直接劝退。
洗完澡,和老婆聊了 1h 左右的视频。已经到 11 点多,准备睡觉?
那是不可能的,带着问题是很难入睡!哎,这个是老毛病了。
突然想到了一个点,最小试错原则。自己搭建本地集群很麻烦,公司又没有多余的集群。
那直接买一个云版的 redis 集群?说干就干,直接从床上起来,打开电脑。
这时问题又来了,阿里云还是腾讯云?
鉴于双 11 买了腾讯云 2c 4g 8m 的服务器,只要 199 就能 3 年。
再对比之前买阿里云那个 1c 2g 1m 服务器,3 年也要 100 多。
瞬间对腾讯云好感倍增,决定先买腾讯云。
一顿操作,发现腾讯云是真的难用:
最最最重要,给把实例绑定了安全组后,外网还是无法访问???(不管了,反正我就是很生气)
对腾讯云太失望了,不得不把最后一根稻草压在阿里云身上。
所幸,阿里云没有让我失望!
咔咔咔,一顿操作:
密码中含有 @ 符号,但连接一点毛病都没有!!!
至此,问题终于解决了!!!
我已经迫不及待明天去公司验证,但回过头一看,已经是深夜一点半。
自言自语的说了一句:"睡吧,卷王"
经过对比,发现配置只需要生产的配置仅需要在测试的配置上加多一个 :
修复最磨人的 bug,往往仅需要一点小小的改动~
为什么测试环境没报错了呢???
因为测试环境的 redis 集群不需要密码
以上是关于AWS 连接不上实例的端口的排查思路的主要内容,如果未能解决你的问题,请参考以下文章