十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
阿里云服务器偶尔连接不上的问题出现在我做了一些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详情请见:
开启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 丢弃
经过此次故障,告诫我们在处理线上问题时,不能盲目修改参数,一定要经过测试,确认无误后,再应用于生产环境。同时,也要加深对相关内核参数的认识和理解。
本文解决灵感来自于
服务器连接失败原因有很多:首先检查输入的ip、服务器名称及密码是否正确;然后检查设备的线路是否都连接正常;再检查服务器是不是被防火墙所拦截,一般连接需要把防火墙关闭,最后检查一下远程服务器是否处于睡眠状态,若实在睡眠状态是无法连接成功的。远程服务器连接失败的原因手动找起来其实是很复杂的,用服务器管理工具可以进行对所要连接服务器一键检测,很方便。望采纳
主要原因有两个:
1、所在的网络环境不稳定,网速太慢。
2、所连接的服务器内存不足。
解决办法:
1、打开控制面板——系统和安全——允许远程访问。
2、如下图所示,勾选允许连接到此计算机。这样就可以连接了。
远程桌面:
是从Windows 2000 Server开始由微软公司提供的,在WINDOWS 2000 SERVER中他不是默认安装的。该组件开启之后就可以在网络的另一端控制这台计算机了就好像是直接在该计算机上操作一样。
官网的解决方案地址(没效果)
解决方案1:
1.修改/etc/ssh/sshd_config中#MaxStartups 10,将其改为MaxStartups 1000
2.重启SSH服务,service sshd restart
解决方案2:
把ip加入云盾白名单 地址