经验分享:C/S系统故障排查之服务器端口telnet失败

(在过去的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)分析服务器的网络拓扑结构,并以服务器为中心,依次向外检查防火墙、路由器、网络安全监控等相关软硬件等的设定,并进行针对性的排查测试。

经过以上的排查分析,应该都可以找到问题的根源所在,如果还是没有结果,可以给我留言,我们一起讨论下啊。

时间: 2024-10-04 04:17:39

经验分享:C/S系统故障排查之服务器端口telnet失败的相关文章

故障排查:是什么 导致了服务器端口telnet失败?

telnet命令的主要作用是与目标端口进行TCP连接(即完成TCP三次握手). 当服务端启动后,但是telnet其监听的端口,却失败了.或者,当服务端运行了一段时间后,突然其监听的端口telnet不通了.当类似这样的telnet失败的情况出现时,都可以按照如下方面进行排查: 1.观察一下服务端进程的CPU和内存是否有异常. 比如,当CPU持续在100%时,就有可能导致来自客户端的TCP连接请求被丢弃或无暇处理. 2.端口监听器是否运行正常? 可以通过IRapidServerEngine的Adva

故障排查:是什么 导致了服务器端口telnet失败?(转)

telnet命令的主要作用是与目标端口进行TCP连接(即完成TCP三次握手).当服务端启动后,但是telnet其监听的端口,却失败了.或者,当服务端运行了一段时间后,突然其监听的端口telnet不通了.当类似这样的telnet失败的情况出现时,都可以按照如下方面进行排查: 1.观察一下服务端进程的CPU和内存是否有异常. 比如,当CPU持续在100%时,就有可能导致来自客户端的TCP连接请求被丢弃或无暇处理.  2.端口监听器是否运行正常? 可以通过IRapidServerEngine的Adva

血泪经验分享--->SQL Server 2012建立链接服务器

现在我有一个需求是需要在两个不同的SQL SERVER 2012的服务器之间进行数据访问和更新.我们需要把Server One的数据插入到Server Two的服务器上去,一天执行一次任务.我们的首选方案是在两个服务器之间建立链接服务器,下面介绍下如何建立链接服务器. 我需要做的事情是,我需要定时的全量的把Server one的数据插入到Server Two里去.所以这里就涉及到需要把Server Two里的表的信息做删除操作,由于我们都知道delete表是需要记录日志,他是为了回滚用的.所以要

企业使用VMware vSphere进行服务器虚拟化的经验分享

企业使用VMware vSphere进行服务器虚拟化的经验分享 对于很多中小企业来说,虚拟化已经成为节省IT开支的一种重要手段,下面就根据公司Vmware虚拟化产品部署案例,同大家来详细分享一下在使用vSphere产品组建虚拟化数据中心的一些小小经验,希望对企业虚拟化产品以及服务器.存储选择有所帮助. 一.虚拟化产品的选择 在组建虚拟化数据中心时,虚拟化产品选择至关重要,诚恺科技作为专业的虚拟化解决方案提供商,一直以来都选择的是VMware vSphere:其实,在此期间,我们也选择过其它产品,

Linux运维经验分享与思路

本文根据讲课笔记整理 1.如何最小化安装系统 精简安装策略: 仅安装需要的,按需安装.不用不装 开发包.基本网络包.基本应用包 Centos6.x下的设置: Centos7.x下的设置: 2.网络设置问题与经验 1).服务器IP地址配置 /etc/sysconfig/network-scripts/ ifcfg-eth0/1/2-. 重启网卡命令: service network restart或者 /etc/init.d/network restart 2).网关/主机名配置 /etc/sys

项目经验分享[转自min.jiang]

最近三个月,我非常荣幸的做为TeamLeader带领几个小组成员做了一个国外项目,这里想为大家分享一些小经验,尽管我佣有六年多的项目经验,但我一直的方向是架构师.大家知道架构师一般情况是偏向技术方向,我也不例外,前三年,主要精力都花在技术架构上,挖空心思在通用平台上做出自己的东西,体现个人价值.但最近一年也想在项目管理上有所突破,有人可能认为方向走偏了,但我不这样认为,在中国的软件环境下,在很大程度上,公司更希望全才,或者说有些公司并不仅仅希望架构师只懂技术.而架构师如果一味的只走技术路线,在某

NSX 虚拟网络故障分析经验分享

今天的题目是关于NSX的虚拟网络故障分析,问题排查定位的经验分享,严格地说,不属于终端用户计算的范畴,但是终端用户计算以及软件定义的网络已经结合得越来越密不可分,有越来越多的用户开始使用NSX搭建EUC产品的专有网络环境,例如给VDI的计算资源池分配专有的网络空间,参见之前的博客利用NSX搭建专有子网. 笔者最近也搭建了一套基于NSX虚拟网络的EUC实验环境,通过使用NSX提供的logical network的能力,可以随心所欲的构建自己的网络,互联互通,网络微分段,分布式防火墙,完全不必麻烦公

阿里巴巴校招四面经验分享

总结 06.20我从北京xxxx有限公司离职,结束了一年的见习生涯.07.05-08.04在帮我姐夫做翻译:毕竟这段时间比较空闲,在空闲的时候我都是在准备面试,不管是Java基础.JVM.数据库.数据结构.分布式.集群还是项目都准备的差不多,期间我看过<数据结构与算法分析>和<Java编程思想>等书籍.08.03我回到深圳,08.04开始的阿里一面到08.22的四面,今天得知四面挂了感觉很可惜,毕竟差Offer仅一步之遥,但又在意料之中:你选择公司,公司同样也选择你,如果你没有足够

MySQL 性能优化的最佳20多条经验分享

今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的                    事,而这更是我们程序员需要去关注的事情. 当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过多的SQL语                句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这些优化技巧对你有用. 1. 为查询缓存优化你的查询 大多数的M