这个问题很难只给出一个答案,因为问题分析的中期结果会导致您接下来需要执行的不同步骤。这更有可能是一步一步地帮助追查问题。
不要相信任何防火墙设置(特别是不要相信其他人做过的任何事情,尤其是如果你不认识他,不要相信),除非你测试过。防火墙设置很棘手,即使是经验丰富的专业人员也会时不时地弄错。
在下面的指南中,我将编写<win2008server>
命令,您必须在其中输入要连接的 Windows 2008 服务器的名称或 IP。另一方面,当我指的是您在办公室中的工作站 PC 时,我将使用“办公室 PC”这一表达方式,您正试图从那里连接到 win2008server。
第 1 步:检查端点
1.) 你能远程登录到 RDP 端口吗?
在您的办公室 PC 上,在命令提示符下尝试此操作:
telnet <win2008server> 3389
这是为了确保 DNS 名称解析适用于 telnet,以及网络硬件和路由。应该的,因为你可以使用 RDP 来建立这个连接。但是,任何事情都可能介于两者之间,例如 telnet 命令以任何方式配置为非标准或因任何原因在公司 PC 上被替换(系统管理员有时会有奇怪的想法......)。
2.) 你能在win2008server上本地telnet到数据库吗?
在win2008服务器上使用RDP登录时,在服务器上打开命令提示符,发出命令
telnet <win2008server> <database port>
这意味着您正在尝试从服务器连接到自身。这是为了确保在服务器上打开数据库端口。
第 2 步:检查端点的防火墙
如果对于 1.) 和 2.),您的答案是肯定的,它可以工作,您必须测试是否无法到达远程端或您的位置是否无法连接到您正在测试的端口(数据库端口)上的互联网。为此,您可以将相应的另一端替换为 Internet 上您知道它可以访问或可以访问其他服务器的任何其他主机。通常,您在谷歌上搜索端口检查器;)
3.) 检查是否可以从其他位置访问 win2008server:
3.1.) 检查是否可以从第三方位置访问win2008server的RDP端口:
谷歌端口检查器并获取第一个结果(例如http://www.yougetsignal.com/tools/open-ports/)。输入 win2008server 的名称或 IP 地址和 RDP 端口,通常为 3389 。单击“检查”并等待成功或超时。
3.2.) 检查是否可以从第三方位置访问win2008server的数据库端口:
执行与 3.1 相同的操作。),只是使用数据库端口而不是 RDP 端口。
4.) 检查是否可以在数据库端口上连接到外部服务器:
为此,您需要知道一台服务器或创建一台服务器,该服务器位于 Internet 外部某处,并且侦听数据库端口。您通常通过让您的私人 PC 在家中运行并通过 RDP 或 SSH 访问来做到这一点,然后您打开服务器并配置您的私人互联网路由器以正确转发连接。
进行此测试的另一种方法是使用 SSH 访问的 webspace。如今,许多网络空间提供商都允许使用 SSH 登录(通常是每月 4 美元及以上的任何网络空间)。
假设您可以通过 SSH 访问任何此类第三方位置。您可以使用 nc (netcat) 使用以下命令在数据库端口上打开服务器套接字:
nc -l <database port>
如果它是您家中的私人 PC,您通常还必须配置您的私人路由器并为您的互联网访问设置一个动态 DNS 名称,以便整个故事得以解决。对于基于网络空间的 SSH 登录,您没有这项额外的工作。但是,您无法测试低于 1024 的端口,因为您没有权限。祝你好运;)
得到这个之后,尝试连接到你打开的端口:
4.1.) 从您的办公室 PC 使用
telnet <third party location> <database port>
4.2.) 如果 4.1.) 不起作用,还请尝试使用端口检查器,因为您可能在设置服务器时遇到了问题。看 3.) ,并使用<third party location>
and<database port>
和端口检查器(第四方检查)。
第 3 步:责备 ;)
至少其中一件事现在应该失败了,你可以开始打电话给人们,让他们知道你的测试和结果。你应该能够在逻辑上组合结果,但永远不要从那开始。考虑如何传达信息。从你的发现开始,然后让他们有时间得出自己的结论。很难告诉其他公司或部门的某人他们的防火墙配置不正确。即使有证据,他们也可能否认这一点。要有耐心。再次解释你的发现。提示结论。这可能是整个问题解决方案中最棘手的部分。