江湖医生一样的程序员

2009年7月20日星期一

Windows XP RDP 远程无法连接解决过程

File: windows-rdp.txt -*- Encoding: utf-8 -*-
Time-stamp: <luanma 07/20/2009 09:51:33>

### Windows XP RDP 远程无法连接解决过程

事情是这样的, 我们公司给一个客户做了一套 HA 的解决
方案, 因为我是新人, 并且目前在公司的工作只是一个
WEB Boy, 系统实施的过程中老板根本没考虑我, 直接就
请了外地一位外援工程师. 故事正式开始了, 这位工程师
(以下简称 Y 工)要求我们这边给配个 Windows 机器的远
程.

我先按照他的要求 QQ 远程, 结果发现那个速度简直没法
用.

于是我说, 那咱们用 Windows 的远程终端吧, 于是我配
好这边的路由器的 DMZ 转发到我的机器, 然后我检查"我
的电脑"->"属性"->"远程"->"允许用户远程连接到此计算
机"的选项是选中的, 然后"开始"->"启动"->"mstsc"准备
连连看自己的机器能不能连, 我先试了 127.0.0.1 这个
回路 IP, 提示"客户端无法连接, 您已连接到这台计算机
的控制台, 无法建立新的控制台会话.", 我以为一切正常
呢, 不允许我在本机再次登陆本机. 好吧, 于是我换我在
同一个局域网内的 Mac OS X 装好微软的远程终端客户端,
输入 XP 机器的 IP, 连接, 连接失败, 我还尝试了一下
公网 IP, 也是一样. 我用公网 IP 访问了一下我 XP 机
器上开的 nginx HTTP 服务(主要用来和其他机器同步
Git 仓库), 那么说路由器的 DMZ 设置的确是生效了的.
我的 XP 机器没有使用防火墙, 连 Windows 自带的那个
防火墙我也是一支关闭的. 然后我以为是路由器屏蔽了
RDP 所用的 3389 TCP 端口, 于是在 D-Link的无线路由
器里边一顿狂翻, 也没找到哪个设置可能屏蔽了 3389 端
口. 于是我放弃了, 跟 Y 工说, 要不存储我来设置吧.

等过两天闲了下来, 我决定看看这到底是什么鬼呢. 于是
又翻了路由器的设置, 发现是在没有什么可疑的. 我在
XP 机器底下把一个 Rails APP 跑在了 3389 端口底下,
然后在 Mac 上访问 http://公网IP:3389, 发现访问正常.
我才明白路由器没有搞鬼, 是 XP 机器上的远程没有监听
3389 端口, 杀掉 Rails APP 之后在 Cygwin 下
netstat -aon | grep 3389, 没有任何输出, 然后在
cmd.exe 底下 telnet 127.0.0.1 3389 也连接不上.
这下我知道是远程终端的服务没有跑起来了, 于是"我的
电脑"->"管理"->"服务和应用程序"->"服务", 找到
Terminal Services, 发现这个服务被禁用了(不知道什么
时候头脑发热干的了). 启用这个服务之后, 3389 端口
也在监听了, 远程连接就正常了.

其实整个过程也没什么值得写的, 浪费了一些时间, 教训
就是任何网络服务不正常, 首先要确认服务端程序正确跑
起来没有, 先检查端口有没有在监听, 看看 telnet 能不
能连上那个端口, 然后才是去检查网络是否通畅.

没有评论:

发表评论

没事儿就省省吧, 有事儿请给我发邮件.