公网请求slb端口发现大概率会被拒绝连接

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
简介: 公网请求slb端口发现大概率会被拒绝连接

问题背景

用户通过类似nginx代理TCP协议的方案来暴露业务服务,但是发现请求多次有偶发不通的情况,严重影响他们使用。


排查信息收集


问题排查

1 拿到这个问题后,首先抓包确认下,这个请求是被拦截了,还是服务端自身返回的,同时在slb以及客户端侧做了抓包


2 通过对比slb和客户端的数据包发现是服务端直接做了拒绝,ttl值也可以做辅助佐证,但是健康检查全部是正常的,这个地方其实当时我有点疑惑,从抓包来看基本可以确认可能是某个rs有问题,导致请求转发给对应的rs后,不通引发了异常

3 进一步登录服务器里面做问题排查,首先客户端50000是转发到ecs上的30295端口,集群用的ipvs的转发策略,使用ipvsadm -L |grep 30295 看了下转发的rs,发现转发给了nginx-ingress-controller的50000端口做处理,信息如下:


4 经过slb的抓包,我怀疑可能是转发给这 10.122.15.220 or 10.122.16.101 这两个IP其中一个不通,然后在ecs上 telnet做测试,果然发现请求10.122.15.220 50000不通,这也就想通了,为什么会偶发的不通(其实健康检查能通过是符合预期的, 因为三次里面才会有一次不通,所以健康检查的错误阈值没到,认为是OK的)


解决方案

在集群里面找的10.122.15.220 IP对应的pod后,进入pod里面看,发现果然没有50000的端口监听,也就导致了ipvs通过rr轮训的机制,把请求转发给这个pod后,因为没有50000的端口监听引发了异常,让用户把这个异常的重建下,重新reload加载了下配置后解决。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
3月前
|
Unix Linux Shell
指定端口-SSH连接的目标(告别 22 端口暴力破解)
本文介绍了 SSH 命令 `ssh -p 44907 root@IP` 的含义与使用方法,包括命令结构拆解、完整示例及执行过程详解,帮助用户安全地远程登录服务器。
316 0
|
8月前
|
JSON 测试技术 API
优化你的 REST Assured 测试:设置默认主机与端口、GET 请求与断言
REST Assured 是一个强大的 Java 库,用于简化 RESTful API 测试。本文详解了其核心功能:设置默认主机和端口以减少代码重复、发起 GET 请求并验证响应结果,以及通过断言确保接口行为符合预期。同时推荐 Apipost 工具,助力开发者提升 API 测试效率,实现更高效的接口管理与团队协作。掌握这些技巧,可显著优化测试流程与代码质量。
|
网络协议 Linux 网络安全
在Linux中,如何将本地 80 端口的请求转发到 8080 端口?当前主机 IP 为10.0.0.104。
在Linux中,如何将本地 80 端口的请求转发到 8080 端口?当前主机 IP 为10.0.0.104。
|
网络协议 Linux Unix
面试官:服务器最大可以创建多少个tcp连接以及端口并解释下你对文件句柄的理解
面试官:服务器最大可以创建多少个tcp连接以及端口并解释下你对文件句柄的理解
340 0
面试官:服务器最大可以创建多少个tcp连接以及端口并解释下你对文件句柄的理解
|
NoSQL Linux 网络安全
【Azure Redis】Redis-CLI连接Redis 6380端口始终遇见 I/O Error
【Azure Redis】Redis-CLI连接Redis 6380端口始终遇见 I/O Error
209 0
|
SQL 网络协议 NoSQL
【Azure 应用服务】App Service/Azure Function的出站连接过多而引起了SNAT端口耗尽,导致一些新的请求出现超时错误(Timeout)
【Azure 应用服务】App Service/Azure Function的出站连接过多而引起了SNAT端口耗尽,导致一些新的请求出现超时错误(Timeout)
193 0
|
缓存 NoSQL Linux
【Azure Redis 缓存】Linux VM使用6380端口(SSL方式)连接Azure Redis (redis-cli & stunnel)
【Azure Redis 缓存】Linux VM使用6380端口(SSL方式)连接Azure Redis (redis-cli & stunnel)
273 0
|
网络协议 Ubuntu Linux
在Linux中,如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.16.1,其中本地网卡eth0。
在Linux中,如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.16.1,其中本地网卡eth0。
|
SQL 网络协议 Java
JAVA SQLServerException: 通过端口 1433 连接到主机 127.0.0.1 的 TCP/IP 连接失败
JAVA SQLServerException: 通过端口 1433 连接到主机 127.0.0.1 的 TCP/IP 连接失败
344 0
|
5月前
|
SQL Apache Windows
Windows服务器80端口被占用的全面解决方案
在服务管理器中启动apache2服务,即可正常使用80端口。若系统中还安装了其他微软产品如sql等,也可尝试停止其服务进行测试,但请注意,SQL通常不会使用80端口,因此一般不会受到影响。以上就是关于80端口被system占用的详细解决方法,希望对你有所帮助。

热门文章

最新文章