首页 > 技术那瓷碗饭 > 解决Xenu死链接检测工具no connection错误

解决Xenu死链接检测工具no connection错误

2013年2月1日 发表评论阅读评论

用Xenu死链接检测工具检测一个大概有15万个URI的站点,下班后就把Xenu挂在服务器上了,心想让它跑一个晚上,网站出现的链接问题将一目了然,不耽搁工作。今早登录服务器却发现只检测了20%左右,剩下全部no connection。通过重新检测和重装Xenu都没能解决问题。

Xenu死链接检测工具

Xenu死链接检测工具错误

no connection意思是没有可用的连接资源,于是在Xenu出现no connection提示并结束检测时,我立即使用netstat -an -p tcp >D:\timewait.txt,查看当前连接资源的使用情况。

把当前TCP连接状态导入到timewait.txt文件,删除不相关的内容,文件大小为257K。里面有近4000条状态为TIME_WAIT的TCP连接,末尾一个是5000!多么熟悉的数字呀,系统分配给软件使用的TCP端口最高正好是5000。

于是我想,系统把TCP端口限制在5000以下,系统5000以下的TCP端口被用光了,处于TIME_WAIT的还没被释放,5000以上端口又不给用,不出问题才怪。于是就出现no connection问题了。

time_wait

TCP连接中的time_wait

出现这个问题先别慌,首先要庆贺一下才对,这说明你和网站之间是条高速公路。但不能因为是高速公路就任由no connection出现。既然知道问题症结所在,处理起来就相当简单了。

综述:Xenu所在机器使用1024-5000端口访问网站所在的服务器80端口。因系统限制端口只能在1024-5000之间,因此如果在4分钟内发起了大概4000个连接,就会发生异常。系统无法给Xenu分配端口而让Xenu出现no connection。

解决办法一

1、把Xenu检测线程降低,默认30,你设置成10,如果还出现问题就设置成5。

2、如果Xenu挂在服务器上,那就移植下来放到本地,服务器上跑Xenu那是肆无忌惮啊,4分钟4000个请求小菜一碟。放本机因网站访问需要等待时间,可让资源消耗慢些。

综合1、2当Xenu还没有占用完1024-5000端口,处于TIME_WAIT的连接已被释放时,就不会出现no connection问题。如果还没能解决问题,参看吓一跳。

解决办法二

更改MaxUserPort和TCPTimedWaitDelay值,通过授权系统使用大于5000的TCP端口和降低TIME_WAIT的等待时间来解决问题。

MaxUserPort描述:确定在应用程序从系统请求可用用户端口时,TCP/IP可指定的最高端口号。TCPTimedWaitDelay:TCP/IP可释放已关闭连接并重用其资源前,必须经过的时间。关闭和释放之间的此时间间隔通称TIME_WAIT。

1. 启动注册表编辑器。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

TcpTimedWaitDelay设置和MaxUserPort设置

TcpTimedWaitDelay设置和MaxUserPort

2. 新建值名称:MaxUserPort;值类型:DWORD;值数据:65534(十进制)。新建 值名称:TCPTimedWaitDelay;值类型:DWORD;值数据:30(十进制)

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.

www.gznaturechem.com www.whhjdzcL.com www.dLLsLfs.com