经验分享:C/S系统故障排查之服务器端口telnet失败
2015-04-07 10:46
162 查看
(在过去的10+年基于 ESFramework 做了很多的C/S系统,也协助客户解决了诸多开发和运行时的技术问题,个人觉得这些历史经验是非常宝贵的,接下来我会将这些经验逐步分享出来,希望对碰到类似问题的人有所启发和帮助。) telnet命令的主要作用是与目标端口进行TCP连接(即完成TCP三次握手)。 当服务端启动后,但是telnet其监听的端口,却失败了。或者,当服务端运行了一段时间后,突然其监听的端口telnet不通了。当类似这样的telnet失败的情况出现时,都可以按照如下方面进行排查:
1.观察一下服务端进程的CPU和内存是否有异常。
比如,当CPU持续在100%时,就有可能导致来自客户端的TCP连接请求被丢弃或无暇处理。2.端口监听器是否运行正常?
可以通过IRapidServerEngine的Advanced属性的GetPortListenerState方法来获取端口监听器的状态,该方法返回一个PortListenerState对象,其包含3个属性:(1)IsMaxConnection:是否达到了最大连接数的限制。(2)IsListening:是否正在监听端口。如果未授权,或达到了最大连接数限制,则将会停止监听端口。(3)LastDetectTime:最后一次检测TCP连接队列(已完成OS底层的三次握手,但尚未被ESFramework提取的TCP连接存放于该队列中)的时间。 如果上述两点都正常,则接下来,需要专业的运维人员或网管人当员参与进来协助排查。3.在当前服务器上执行telnet命令,看能否连接成功?
如果能连接成功,至少表明本机的TCP握手请求是能正常地被接收和处理的。4.在服务器上执行netstat命令
netstat是一个非常有用的查看端口状态的命令,执行netstat命令后,请注意查看以下信息:(1)目标端口是否处于监听状态?(2)目标端口上是否存在已成功建立的TCP连接(ESTABLISHED)?其数量是多少?(3)是否存在半开连接(SYN_RECV)?其数量是多少?(4)是否存在等待关闭的连接(TIME_WAIT)?其数量是多少? 这里,最有可能的原因是半开连接数达到最大限制,导致windows系统丢弃后续的TCP连接请求。5.TCP三次握手是否正常?
对于一些奇怪现象的跟踪与分析,数据抓包工具是不可缺少的。 在服务器上将抓包工具运行起来,然后在其他的电脑上telnet该服务器的目标端口,通过抓包工具观察目标端口上TCP三次握手的过程是否正常:(1)目标端口是否收到了来自客户端的SYN请求?(2)目标端口有回复SYN_ACK给客户端?(3)目标端口有收到来自客户端的第三次握手? 只有当TCP三次握手顺利完成后,windows底层才会将建立好的TCP连接放入队列中,提交给上层的应用程序。6.服务器网络拓扑结构、防火墙、路由器、网络安全监控等相关软硬件
在抓包分析的同时,结合服务器的网络拓扑接口进行考虑是很有必要的。很可能来自客户端的三次握手请求被防火墙、路由器、或某些网络完全监控的相关软硬件给挡住了。 此时,需要专业的运维人员或网管人员参与进来,协助排查问题,比如:(1)在服务器上执行netstat命令,查看目标端口的相关状态信息。(2)在服务器上执行抓包工具,监测目标端口上是否有数据从客户端过来。(3)分析服务器的网络拓扑结构,并以服务器为中心,依次向外检查防火墙、路由器、网络安全监控等相关软硬件等的设定,并进行针对性的排查测试。 经过以上的排查分析,应该都可以找到问题的根源所在,如果还是没有结果,可以给我留言,我们一起讨论下啊。相关文章推荐
- 故障排查:是什么 导致了服务器端口telnet失败?
- 故障排查:是什么 导致了服务器端口telnet失败?
- 故障排查:是什么 导致了服务器端口telnet失败?
- 故障排查:是什么 导致了服务器端口telnet失败?
- 故障排查:是什么 导致了服务器端口telnet失败?(转)
- linux服务器系统中手动配置lamp服务器的经验分享
- 专访阿里陶辉:大规模分布式系统、高性能服务器设计经验分享
- CentOS6.4系统启动失败故障排查An error occurred during the file sytem check 推荐
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 服务器故障诊断排查工具
- 排查DHCP服务器故障的经验
- 关于Exchange邮箱服务器角色故障排查及解决思路分享
- Atitit.播放系统的选片服务器,包厢记时系统 的说明,教程,维护,故障排查手册p825
- CentOS6.4系统启动失败故障排查
- [经验分享] windows2008服务器设置系统启动时程序自动运行
- Atitit.播放系统的选片服务器,包厢记时系统 的说明,教程,维护,故障排查手册p825
- 大规模分布式系统、高性能服务器设计经验分享
- 故障代码0xC004F074,系统与KMS服务器之间激活失败的解决办法
- 排查DHCP(动态获取IP)服务器故障的经验 (好文推荐)
- 专访阿里陶辉:大规模分布式系统、高性能服务器设计经验分享
- Microsoft Windows 服务器系统的端口要求