最近遇到了一个比较棘手的问题,用户远程桌面没法链接,个人博文中以前也写到了一篇远程桌面排错,可是此次的和以前的大不相同服务器
= = 缘由排查步骤ide
1)首先固然是查看报错,这个是我本身机器上截图的,报错信息都同样spa
2)首先查看服务器是否开启了远程访问3d
3)查看目标是否能够ping通日志
4)查看服务是否正常启动orm
5)若是要正常远程到目标必须能够telnet到目标的远程端口,默认为3389,这个端口不通,咱们以前已经将防火墙关闭了blog
6)本机上telnet 127.0.0.1 3389,这么作的话能够排除外界因素的干扰,固然仍是不通事件
7)而后我在本机使用netstat -ano 命令查看监听的端口是否有3389,并无找到3389端口,5800和5900端口是VNC服务器的端口,也是一款远程软件,还好有它否则都无法排错ip
Proto Local Address Foreign Address State PIDci
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 924
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:1311 0.0.0.0:0 LISTENING 2260
TCP 0.0.0.0:5800 0.0.0.0:0 LISTENING 2344
TCP 0.0.0.0:5900 0.0.0.0:0 LISTENING 2344
TCP 0.0.0.0:9083 0.0.0.0:0 LISTENING 1488
TCP 0.0.0.0:9527 0.0.0.0:0 LISTENING 1740
TCP 0.0.0.0:49152 0.0.0.0:0 LISTENING 636
TCP 0.0.0.0:49153 0.0.0.0:0 LISTENING 248
TCP 0.0.0.0:49154 0.0.0.0:0 LISTENING 532
TCP 0.0.0.0:49183 0.0.0.0:0 LISTENING 744
TCP 0.0.0.0:49214 0.0.0.0:0 LISTENING 736
TCP 0.0.0.0:49219 0.0.0.0:0 LISTENING 4200
TCP 10.124.84.165:3181 0.0.0.0:0 LISTENING 2036
TCP 10.124.84.165:5900 10.124.84.17:61778 ESTABLISHED 2344
TCP 10.124.84.165:49155 10.124.84.62:135 TIME_WAIT 0
TCP 10.124.84.165:49156 10.124.84.62:49159 TIME_WAIT 0
TCP 10.124.84.165:49162 10.124.84.61:135 TIME_WAIT 0
TCP 10.124.84.165:49163 10.124.84.61:49155 TIME_WAIT 0
TCP 10.124.84.165:49184 10.124.84.62:49155 TIME_WAIT 0
TCP 10.124.84.165:49188 9.9.200.232:80 CLOSE_WAIT 2028
TCP 10.124.84.165:49190 9.9.200.232:37527 ESTABLISHED 1836
TCP 10.124.84.165:49192 10.124.84.62:135 TIME_WAIT 0
TCP 10.124.84.165:49193 10.124.84.62:49155 TIME_WAIT 0
TCP 10.124.84.165:49220 10.124.84.62:135 ESTABLISHED 532
TCP 10.124.84.165:49221 10.124.84.62:49155 ESTABLISHED 532
TCP 10.124.84.165:49237 10.124.84.87:8014 ESTABLISHED 4040
TCP 10.124.84.165:49238 10.124.84.16:3183 ESTABLISHED 2036
TCP 10.124.84.165:49246 10.124.84.62:135 TIME_WAIT 0
TCP 10.124.84.165:49247 10.124.84.62:49155 ESTABLISHED 744
TCP 10.124.84.165:49265 9.9.200.232:80 CLOSE_WAIT 5260
TCP 10.124.84.165:49270 9.9.200.232:80 TIME_WAIT 0
TCP 10.124.84.165:49271 10.124.84.16:2059 TIME_WAIT 0
TCP 10.124.84.165:49273 9.9.200.232:80 TIME_WAIT 0
TCP 10.124.84.165:49278 10.124.84.102:445 ESTABLISHED 4
TCP 10.124.84.165:49282 111.108.54.16:80 SYN_SENT 12
TCP 127.0.0.1:36600 0.0.0.0:0 LISTENING 1836
TCP [::]:80 [::]:0 LISTENING 4
TCP [::]:135 [::]:0 LISTENING 924
TCP [::]:445 [::]:0 LISTENING 4
TCP [::]:1311 [::]:0 LISTENING 2260
TCP [::]:9527 [::]:0 LISTENING 1740
TCP [::]:49152 [::]:0 LISTENING 636
TCP [::]:49153 [::]:0 LISTENING 248
TCP [::]:49154 [::]:0 LISTENING 532
TCP [::]:49183 [::]:0 LISTENING 744
TCP [::]:49214 [::]:0 LISTENING 736
TCP [::]:49219 [::]:0 LISTENING 4200
UDP 0.0.0.0:123 *:* 540
UDP 0.0.0.0:500 *:* 532
UDP 0.0.0.0:4500 *:* 532
UDP 0.0.0.0:5355 *:* 12
UDP 0.0.0.0:9528 *:* 1740
UDP 0.0.0.0:36599 *:* 2028
UDP 0.0.0.0:58868 *:* 2028
UDP 0.0.0.0:58869 *:* 2028
UDP 0.0.0.0:58870 *:* 2028
UDP 10.124.84.165:3001 *:* 1740
UDP 127.0.0.1:51709 *:* 4040
UDP 127.0.0.1:52623 *:* 1488
UDP 127.0.0.1:52685 *:* 280
UDP 127.0.0.1:58867 *:* 1836
UDP 127.0.0.1:59657 *:* 744
UDP 127.0.0.1:59660 *:* 12
UDP [::]:123 *:* 540
UDP [::]:500 *:* 532
UDP [::]:4500 *:* 532
UDP [::]:5355 *:* 12
UDP [::]:9528 *:* 1740
8)端口都找不到,是否是有人修改了默认的3389端口,在注册表以下路径
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber查看值是否为3389,我这里并无修改,可是我考虑多是端口被占用?
9)我就修改端口试试看吧,修改端口的话须要修改两个值,修改完以后重启RDS服务便可
基数调整为十进制而后填入3390
从新启动服务后就会生效
= = 考虑第三方因素
1)以前同事处理过一个问题,就是由于其余服务占用了3389端口后,修改端口就能够访问了,可是我处理的这台服务器有一个不一样点就是他本地都监听不到端口
2)修改端口后依旧是以前的问题,以后听客户说他们有一块心跳网卡,以前远程仍是正常的,多是心跳网卡有关系,将心跳网卡禁用后,我重启了服务器,好像和它没什么关系
3)考虑第三方服务形成了服务故障?cmd中输入msconfig,这个操做须要重启,我还关闭了杀毒软件
4)多是RDS组件没法使用3389端口?,我就下载了一些RDS组件的更新,系统是08R2企业版,前三个正常安装,后面的不适用,没有什么影响,安装完成后重启
升级RDS相关的组件:
Package: Winscard.dll
-----------------------------------------------------------
KB Article Number (s) : 2531912
Language: All (Global)
Platform: x64
Package: Mstsc.exe
-----------------------------------------------------------
KB Article Number (s) : 2870165
Language: All (Global)
Platform: x64
Location: ( http://hotfixv4.microsoft.com/Windows%207/Windows%20Server2008%20R2%20SP1/sp2/Fix451420/7600/free/465746_intl_x64_zip.exe )
Package: mstscax.dll
-----------------------------------------------------------
KB Article Number (s) : 2925429
Language: All (Global)
Platform: x64
Location: ( http://hotfixv4.microsoft.com/Windows%207/Windows%20Server2008%20R2%20SP1/sp2/Fix495746/7600/free/474212_intl_x64_zip.exe )
Package:Win32k.sys
-----------------------------------------------------------
KB ArticleNumber (s) : 2866519
Language:All (Global)
Platform:x64
Package:termsrv.dll
-----------------------------------------------------------
KBArticle Number (s) : 2878424
Language:All (Global)
Platform:x64
Package:Winscard.dll
-----------------------------------------------------------
KBArticle Number (s) : 2833914
Language:All (Global)
Platform:x64
5)到事件查看器的如下路径:Application and services log\Microsoft\Windows\Remote desktop service或者terminal service,而后我就发现了这条日志,提示RDS服务启动失败
7)将RDS服务启动类型设置为自动,而后检查服务器是否安装了KB2621440 和 KB2667402,这两个更新也是和RDS服务有关的,我检查到服务器是将全部更新都安装了的,若是想检查是否安装了哪一个更新能够在cmd中中输入 systeminfo > c:\xx.txt 而后点击文本文档查找KB号便可
补丁下载地址https://technet.microsoft.com/zh-cn/library/security/ms12-020.aspx
这个补丁是Windows 7 和 Server2008 可用的,在下方按照系统版本进行下载
8)基本寻常的方法都试过了,对比有问题和没有问题的服务器,而后将没有问题的服务器RDS文件替换到有问题的服务器,文件在Windows\System32目录下,repcorekmts.dll \ rdpwsx.dll \ rdrmenmptylst.exe(而后从新启动服务器,结果为False)
= = 终极大招
1)一个问题不会平白无故的出现,最后我只能怀疑是有人动了注册表中的值,最快捷最方便的解决方法即是将没问题的服务器注册表值导入到有问题服务器的注册表中
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server下的两个值导出
注意,这项操做两台服务器都要进行,有问题的服务器最好将注册表项进行备份
2)而后把导出来的注册表值在问题服务器上运行,就会进行导入操做,若是你是导出的Terminal Server这个项,是不能够进行导入的
3)在导入完成后,要想让注册表生效最好是重启一下服务器
4)重启完成后,我已经能够telnet到3389端口了,这是一个好消息,然而问题并无解决
5)客户端在mstsc时出现了闪退的现象,和我以前的远程桌面排错服务有点类似
6)报错图以下,看下方,远程许可服务器是可用的
7)形成此现象的缘由,这台服务器导入的注册表值中没有配置远程桌面主机服务,我将此服务器上的远程桌面服务删除,而后添加,这样注册表中才会存在远程桌面主机服务的值,此时就能够进行远程桌面链接了
8)从新安装远程桌面服务
每一个人的环境不一样,若是你的环境没有远程桌面许可服务器的话不要安装此角色
问题处理完成,若是在导出注册表项,准备导入后出现错误,多是导出的值损坏了,从新导出导入便可
最后在连接一个别人的博文,其中也写到了一篇远程桌面排错的