解决了某台服务器的远程终端一连接就提示断开的问题
2006-07-13 | 5:34如题,虽然已放假了。不过由于某台托管到我这里的服务器出现了问题,受教务处同事的委托,协助处理一下。发现,寒,那机器上太多的木马+病毒了。 想来大概是写的并不严谨的asp程序存在bug,而且fso也没有被禁用,以及sql 注入漏洞等造成的。
帮着一一把木马杀除,最后,在进行远程连接的时候,发现win2k自己带的远程终端也被修改了port,我试着用修改注册表的方式修改回了port,但是似乎还是不行!?(服务里提示已经启用了,但是netstat -an 来看的时候,没有监听port的呢)
一不做,二不休,我直接把注册表里所有关于 Terminal Server(注意,有的key是存在空格,有的则是不存在空格的)都删除了。然后从另一台工作良好的windows上把相应位置的注册表导出,然后导入到这台有问题的机器里。
在重新启动后,就可以连接到了。。。不过连接的时候,总是一连上就断,我尝试着重新安装了服务,似乎还是不可以。
最后,发现是 DATA ENCRYPTION 的问题,处理的方法是把 HKEY_LOCAL_MA CHINE\SYSTEM\CurrentCon trolSet\Services\TermService\ Parame ters 下的 Certificate 子键删除掉,然后重新启动就万事ok了。
解决的方法参考了 http://www.yesky.com/ServerIndex/77131904675020800/20050109/1898447.shtml 这里的一则文章,全文如下:
笔者在使用客户端连接Windows 2000 Server终端服务器时,出现无法成功连接的问题,系统显示"终端服务器已结束连接"的提示,笔者反复尝试连接,故障依旧存在。但此时Windows 2000
Server服务器提供的Web和FTP服务均能正常工作,这说明此问题并不是因网络故障而产生的,于是笔者决定在终端服务上寻找问题的解决办法。
在Windows 2000 Server服务器中,多次重新启动系统,问题无法得到解决。笔者在"事件查看器"中查看日志记录,发现一条描述信息为"RDP 的 "DATA ENCRYPTION" 协议组件在协议流中检测到一个错误并且中断了客户机"的日志记录。难道是终端服务的加密级别设置过高所致?但笔者发现加密级别使用的是默认值,并没有随意改动。笔者再根据日志记录中的描述信息进行分析,终于找到了原因,原来是注册表中的"Certificate"子键被损坏,才导致用户无法与终端服务进行正常通信。
这是因为Certificate子键负责终端服务通信中数据信息的认证和加密,它一旦被损坏,终端服务的协议组件就会检测到错误,中断客户机与终端服务器之间的通信。导致Certificate子键损坏的原因很多,如管理员安装和卸载某些系统软件、对终端服务参数的不合理配置等。这时我们需要重置该键值中的内容,才能修复终端服务。
进入注册表编辑器窗口,展开"HKEY_LOCAL_MA CHINE\SYSTEM\CurrentCon trolSet\Services\TermService\ Parame ters",找到名为"Cer tificate"的子键,将它删除,重新启动Windows 2000 Server服务器,系统就会重新生成"Certificate"子键,这样客户端就能正常连接到终端服务器了。
总结:在终端服务器出现无法连接的问题后,我们首先要判断这是不是网络故障引起的,检测远程客户端和Windows 2000 Server服务器是否能够正常连接到网络;然后就要检查终端服务器的加密级别是否设置过高。排除上述原因后,就有可能是"Certificate"子键损坏了。此外,"HKEY_LOCAL _MACHINE\SYSTEM\Cur rentControlSet\Services\Term Service\Parameters"下的"X509 Certificate"和"X509 Certificate ID"损坏了也有可能导致终端服务出现问题,它们的修复方法与"Certificate"子键损坏后的修复方法是相同的。
笔者在使用客户端连接Windows 2000 Server终端服务器时,出现无法成功连接的问题,系统显示"终端服务器已结束连接"的提示,笔者反复尝试连接,故障依旧存在。但此时Windows 2000 Server服务器提供的Web和FTP服务均能正常工作,这说明此问题并不是因网络故障而产生的,于是笔者决定在终端服务上寻找问题的解决办法。
在Windows 2000 Server服务器中,多次重新启动系统,问题无法得到解决。笔者在"事件查看器"中查看日志记录,发现一条描述信息为"RDP 的 "DATA ENCRYPTION" 协议组件在协议流中检测到一个错误并且中断了客户机"的日志记录。难道是终端服务的加密级别设置过高所致?但笔者发现加密级别使用的是默认值,并没有随意改动。笔者再根据日志记录中的描述信息进行分析,终于找到了原因,原来是注册表中的"Certificate"子键被损坏,才导致用户无法与终端服务进行正常通信。
这是因为Certificate子键负责终端服务通信中数据信息的认证和加密,它一旦被损坏,终端服务的协议组件就会检测到错误,中断客户机与终端服务器之间的通信。导致Certificate子键损坏的原因很多,如管理员安装和卸载某些系统软件、对终端服务参数的不合理配置等。这时我们需要重置该键值中的内容,才能修复终端服务。
进入注册表编辑器窗口,展开"HKEY_LOCAL_MA CHINE\SYSTEM\CurrentCon trolSet\Services\TermService\ Parame ters",找到名为"Cer tificate"的子键,将它删除,重新启动Windows 2000 Server服务器,系统就会重新生成"Certificate"子键,这样客户端就能正常连接到终端服务器了。
总结:在终端服务器出现无法连接的问题后,我们首先要判断这是不是网络故障引起的,检测远程客户端和Windows 2000 Server服务器是否能够正常连接到网络;然后就要检查终端服务器的加密级别是否设置过高。排除上述原因后,就有可能是"Certificate"子键损坏了。此外,"HKEY_LOCAL _MACHINE\SYSTEM\Cur rentControlSet\Services\Term Service\Parameters"下的"X509 Certificate"和"X509 Certificate ID"损坏了也有可能导致终端服务出现问题,它们的修复方法与"Certificate"子键损坏后的修复方法是相同的。
小小问题,困扰了我2个小时。。。我的午饭啊,55555。 吃饭去咯~~~~
标签:asp, CU, web, windows, 网络, 软件相关日志





