‘壹’ 记一次解决阿里云服务器偶尔连接不上的问题(由tcp_tw_recycle参数引发的)
阿里云服务器偶尔连接不上的问题出现在我做了一些TCP优化之后,出现了公司内网偶尔会出现连接不上服务器的问题,但是切换袭冲其他的网络就可以正常连接。
1,登陆服务器查看资源使用top,vmstat等命令查看了一番发现服务器各项指标都没有异常。于是将问题转向了网络层。
2,本地使用ping服务器外网ip正常返回,无丢包,延迟也正常。
3,登录服务器查看tcp相关数据。
发现在卡顿时有大量tcp syn包被丢弃,数值一直在增长。
在查阅资料并结合实际情况后,发现该服务器同时启用了 tcp_timestamps和tcp_tw_recycle参数。
后想起,之前同事为改善time_wait连接数过多问题曾改过该内核参数。
解决办法是,关闭tcp_tw_recycle:
再观察,发现服务已正常,偶尔连接不上的现象消失。
我们先来man一下这两个参数(man tcp):
cp_timestamp 是 RFC1323 定义的优化选项,主要用于 TCP 连接中 RTT(Round Trip Time) 的计算,开启 tcp_timestamp 有利于系统计算更加准确的 RTT,也就有利于 TCP 性能的提升。(默认开启)
关于tcp_timestamps详情请见: https://tools.ietf.org/pdf/rfc7323.pdf
开启tcp_tw_recycle会启用tcp time_wait的快速回收,这个参数不建议在NAT环境中启用,它会引起相关问题。
tcp_tw_recycle是依赖tcp_timestamps参数的,在一般网络环境中,可能不会有问题,但是在NAT环境中,问题就来了。比如我遇到的这个情况,办公室的外网地址只有一个,所有人访问后台都会通过路由器做SNAT将内网地址映射为公网IP,由于服务端和客户端都启用了tcp_timestamps,因此TCP头部中增加时间戳信息,而在服务器看来,同一客户端的时间戳必然是线性增长的,但是,由于我的客户端网络环境是NAT,因此每台主机的时间戳都是凳禅卜有差异的,在启用tcp_tw_recycle后,一旦有客户端断开连接,服务器可能就会丢弃那些时间戳较小的客户端的SYN包,这也就导致了网站访问极不稳定。
主机A SIP:P1 (时间戳T0) ---> Server 主机A断开后
主机B SIP:P1 (时枣穗间戳T2) T2 < T0 ---> Server 丢弃
经过此次故障,告诫我们在处理线上问题时,不能盲目修改参数,一定要经过测试,确认无误后,再应用于生产环境。同时,也要加深对相关内核参数的认识和理解。
本文解决灵感来自于 https://blog.51cto.com/hld1992/2285410
https://blog.csdn.net/chengm8/article/details/51668992
‘贰’ 云服务器出现502错误怎么办
1.检查服务器连接
大多数网站都是通过多个服务器或第三方代理来运行的。如果你所在的服务器由于维护或其他原因关闭,你的网站可能会出现502 Bad Gateway Error页面。唯一的解决办法就是等待服务器完成维护或是修复好故障。
2.检查是否更改了DNS
如果你近期更改了主机服务器或将网站移动到了其他IP地址下,就会更改网站的DNS服务器。这可能导致该网站无法访问,出现502 Bad Gateway Error页面。在这些DNS更改完成之前,你的网站可能需要几个小将才能启动并运行。
3.检查服务器日志
服务器的日记的工作任务就是记录网站被访问的全过程,什么时间到什么时间有哪些人来过,什么搜索引擎来过,有没有收录你的网页。可以通过它来查看网站的健康状态。仔细检查日志内容可能会找出问题所在。
4.修复防火墙故障
网站防火墙相当于网站的守卫者,保护你的网站免受非法用户的侵入和分布式拒绝服务(DDOS)的攻击。有时,防火墙设置错误会导致防火墙将从内容分发网络(CDN)过来的访问请求视为对服务器的攻击,因此拒绝其访问,从而导致502错误网关。
5.梳理网站代码查找漏洞
如果网站的代码出现错误,服务器可能无法响应来自内容分发网络(CDN)的请求。梳理代码以查找漏洞或将代码复制到开发工具中。它将执行一个彻底的程序调试过程,该过程将模拟502错误网关是如何发生的,从而找出漏洞。
‘叁’ 阿里云服务器运行中总是无法访问怎么办
延迟高、或者安全组没有添加对应端口,都有可能导致这个问题。
‘肆’ 为什么阿里云ecs服务器老是出现503错误,每天都要几次 好烦
503是因为服务器资源过载而无法处理请求时发出的错误。。
此情况可能性有很多,需要排查:
1、服务器资源不够了,需要扩展服务器。。如访问量过大;
2、服务器配置不正确,如PHP配置问题而导致并发处理能力不够,或NGINX配置问题等
3、网站程序中可能有死循环,SQL语句不规范,查询浪费的资源过大等
‘伍’ 阿里云主机突然出现服务器500错误,怎么办
可能有三种情况:
第一种就是你可能误改了后台那个地方的程序,导致无法正确读取;
第二种是你如果是新站在空间管理页面要点击有个按钮叫写入权限,因为一般新站都会被限制
第三中是系统原因,出错了,从其服务器,正确连接数据库
‘陆’ 为什么阿里云服务器远程桌面经常连不上
连不上,大多原因是网络问题。
首先,判断是不是机房网络问题,可以尝试访问其他网站,排除本地线路故障。
其次,针对云服务器IP做路由测试,追踪是不是线路路由中间节点问题,进一步确认是否机房线路问题。
最后,大致可以锁定是机房线路问题,需要联系对方技术人员协助解决。
当然,连不上还有2种情况,一种是系统设置问题,由于系统某个软件设置导致或设置了远程端口号都有可能连不上。另一种是本地问题,如果本地做有策略无法使用远程。
希望中电华联的回答能够帮助到你。