我已经尽我所能进行了研究,但仍在尝试在两个 Windows 2008 服务器之间建立 telnet 连接。
服务器 A 上的应用程序需要通过端口 1433 (ms sql) 连接到服务器 B。我已验证服务器 B 的防火墙已打开并且正在接受端口 1433 上的连接,因为我可以从 3 个不同的服务器通过端口 1433 远程登录到服务器 B。
问题是我仍然无法从服务器 A 进行 telnet。我认为这是由于软件或硬件防火墙造成的。
为了排除故障,我确保控制面板防火墙和高级防火墙均已关闭。我还完全停止了这台计算机上的 Windows 防火墙服务。没有任何组合允许我在端口 1433 上进行 telnet。我总是收到相同的错误:
C:\>telnet YY.XX.XYX.XY 1433 连接到 YY.XX.XYX.XY...无法在端口 1433 上打开与主机的连接 : 连接失败
我已经向服务器 A 的专用托管提供商提出要求,他们坚持认为没有路由器或任何其他硬件可以阻止出站 1433 流量。
谁在骗我?我的 Windows 服务器?还是托管公司?
任何想法都将不胜感激!
答案1
从您的描述来看,问题似乎出在服务器 A 上。从头开始。确保 Telnet 程序确实成功发送了数据包。我倾向于使用 Wireshark 来验证这一点。
答案2
那么服务器 A 和服务器 B 应该在同一个网络上吗?您可以使用 来验证中间是否存在任何问题tracert
。如果服务器 A 与您用于远程登录到服务器 B 的其他 3 台服务器位于不同的网络上,那么它实际上并不是有效的连接测试。可能仍然有防火墙规则或路由器 ACL 阻止来自服务器 A 网络的连接。您可以从服务器 A ping 服务器 B 或远程登录到服务器 B 正在监听的另一个端口吗?
将 Wireshark 放在服务器 A 上并监控连接尝试以查看发生的情况。
另外,您是否尝试过使用服务器 A 上的 SQL 工具连接到服务器 B?例如 SQL Server Management Studio?
(请记住,从服务器 A 发出的流量实际上仅发往端口 1433。源端口将会有所不同。)
答案3
我将从一些基本的网络故障排除步骤开始。
- 您能 ping 通服务器吗?
- 您能跟踪到服务器的路由吗?(如果可以,它是否会通过可能阻止流量的防火墙)
您可以从网段上的另一台设备 telnet 到服务器吗?
如果这不能解决问题,我建议使用 wireshark 之类的工具来真正了解发生了什么。
答案4
服务器 B 是否有多个外部 IP 地址?SQL Server 可能未监听全部IP 地址。使用 netstat -n -a 验证 0.0.0.0:1433 是否存在,或者每个外部 IP 地址是否列为正在监听 :1433
从服务器 A 执行 ping 操作,并确保它解析为与其他 3 台服务器解析相同的 IP 地址。
如果没有,您将需要重新配置 SQL 服务器网络接口。