我是一名 Linux 用户,试图阻止一名 Windows 用户登机去检查“似乎未运行”的服务器。
设置
- 远程网络上的 Windows 服务器,IP 为 10.55.0.56(您对此一无所知)
- 您可以从办公室中的 Windows 工作站获取** TCP 端口转发到 10.55.0.56 上的任何端口
- 您无权访问远程网络上的任何 Linux/Unix 机器。
** 远程网络上有一块可用于端口转发的商用硬件。它有一个笨重的 Web 界面,添加每个端口都需要几个步骤。进行完整的端口扫描是不可行的。
问题
- 你如何检查它是否还活着?
答案1
验证任何服务器是否正在运行的最可靠方法是坐在服务器前面并摇动鼠标。但好消息是任何人可以做到这一点。我不确定您将这台服务器放在哪里,但必须有人在登机前对其进行物理检查。如果您是 MSP,并且它是客户的服务器,则您的客户应该可以物理访问该服务器。如果它在主机托管中,那么您的服务协议会指定有人可以物理访问该服务器。
但除此之外,让我们从基础开始。
你可以吗平服务器?从远程网络外部对公共 IP 地址执行 ping 操作将告诉您互联网是否已启动且远程防火墙是否正常工作。从远程网络内部执行 ping 操作将告诉您内部网络是否已启动以及服务器是否响应。如果无法 ping 通,则服务器或网络已关闭。(请注意,某些管理员会阻止 ICMP,并且某些版本的 Windows 附带的 ICMP 被 Windows 防火墙阻止,这意味着 ping 操作将始终失败。虽然通常是为了安全起见,但在我看来,这是一个愚蠢的决定。这就像试图在没有轮胎扳手的情况下更换轮胎一样。)
你能连接到应用程序使用的特定端口吗?在大多数情况下,转发端口就是转发端口,因此除非你正在执行第 3 层数据包检查和过滤以仅允许特定协议,否则你可以远程测试是否有服务在特定端口上侦听。你可以对这些端口使用 telnet 会话(例如telnet localhost 25
测试 SMTP)。你可以使用以下应用程序简化端口测试:哭泣以类似 ping 的格式进行类似 telnet 的测试。
如果您的 ping 测试失败,有时可以使用“跟踪路由”来识别故障点。“跟踪路由”本质上会向从您的工作站到目标 IP 的路径上的每个路由器发送“ping”。但这并不总是准确的,因为许多 ISP 会阻止 ICMP,您的跟踪将停滞。如前所述,如果目标服务器的软件防火墙阻止了 ICMP,则 ping 也会失败。
如果 ping 测试成功,则您需要访问服务器。请注意,有时即使 shell 崩溃且无响应,服务器也会响应 ping。
你能打开远程主机的远程 shell 吗?对于 Windows 服务器,如果端口 3389 已转发且远程桌面已启用,则可以使用远程桌面客户端进行连接。如果你可以访问远程网络上的本地 Windows 工作站,则可以尝试从该工作站使用远程桌面,也可以尝试使用远程 Powershell 或执行程序从系统内部。
是否启用了 SNMP?许多企业使用 SNMP 来监控和报告系统健康状况。您可以使用免费的 SNMP 工具,例如Paessler SNMP 测试仪或者通常不免费的 SNMP 监控套件,例如太阳风或者这是怎么回事检查远程服务器的状态。对于 Windows 服务器,SNMP 通过 WMI 获取信息,因此如果启用了 SNMP 并返回结果,则服务器肯定已启动并响应。
您有远程带外管理吗?这通常采用集成戴尔远程访问控制器 (Dell iDrac) 或 HP 集成 Lights Out (HP iLO) 控制器的形式。这些设备提供对服务器状态的远程访问,并且使用更昂贵的企业版本,甚至允许远程控制服务器。它们通常只能从本地网络访问,并且需要唯一的根管理凭据(尽管它们可以与 Active Directory 集成以进行身份管理)。请注意,如果您有 iDRAC 或 iLO 控制器,它们通常会分配一个唯一的 IP 地址。如果您可以 ping iDRAC 或 iLO 但不能 ping 服务器,那么您就知道网络已启动,服务器已关闭。(除了一些大型企业,出于安全原因,它们将其带外管理放在具有有限访问权限的单独管理网络上。)
对于虚拟服务器,您是否可以访问 VM 虚拟机管理程序?这通常以 VMWare vSphere 或 vCenter 或 Microsoft Hyper-V Manager 的形式出现。(我听说有些人仍然使用 Citrix XenServers 作为虚拟机管理程序……)如果您可以访问虚拟机管理程序,那么您对服务器的访问与物理访问完全相同,而且您不必乘坐飞机。对于最新版本的 VMWare ESXi,您甚至可以通过浏览器管理虚拟机管理程序。如果它不是虚拟服务器,请问问自己为什么不这样做?
您需要考虑一些事项。仅仅因为您的应用程序不再通过这些端口连接到目标服务器并不意味着目标服务器已关闭,甚至不意味着目标网络防火墙正在阻止它。您的 ISP 可能阻止了这些端口,可能是您的本地网络防火墙,甚至可能是您的操作系统防火墙阻止了应用程序的访问。不要害怕从不同的本地网络(您的办公室,也可能是您的家用网络)尝试上述所有测试。
服务器可能正常运行,但其承载的应用服务可能已崩溃或挂起。在这种情况下,服务器本身将响应 ping 和其他测试,但应用程序使用的端口将被关闭。
您提到远程网络上没有对 *nix 工作站的远程访问,但您有对 Windows 工作站的远程访问吗?即使是 Mac 也会为您提供本地工作站,您可以从中测试 ping、跟踪路由、服务甚至远程桌面。
交换机是否连接到托管交换机?如果是,并且您可以登录到该交换机的 CLI,则可以检查服务器所连接接口的状态。如果接口显示关闭或断开连接,则服务器处于离线状态,网线出现故障或被拔出,或者交换机端口出现故障 - 如果现场没有合格的技术人员,所有这些都需要制定飞行计划。
您是否可以远程访问防火墙?所有防火墙都具有基本的诊断功能,例如 ping 和跟踪路由。您可以使用这些功能在本地网络上测试远程服务器,而无需访问远程网络上的工作站。有些甚至允许 telnet 或 SSH,允许您从一个防火墙连接到远程网络上的路由器和交换机。如果您的防火墙在 GUI 中没有这些功能,并且没有您可以访问的 CLI,请让您的伙伴上飞机 - 不是检查服务器,而是更换您正在使用的 POS 防火墙。当他在外面时,他可以修复服务器问题,对其进行 P2V,安装 ESXi 或 Hyper-v,并转发远程虚拟机管理程序管理和带外 iDRAC 或 iLO,这样您就不必再经历这些了。
重新阅读这篇文章后,我意识到我应该补充几点。
如果您有权访问防火墙进行端口转发,则可以暂时将 ICMP 流量转发到远程服务器,这样您就可以直接对其进行 ping 测试。您还可以转发任何其他端口以通过 WAN 测试各种 Windows 服务。
此外,几乎每台戴尔或惠普服务器都配备了基本的带外管理接口至少可以让您关闭并重新启动远程服务器。白盒与 OOB 管理不太一致。
如果远程服务器启用了 Windows 远程管理 (WinRM),您可以远程管理服务 MMC,但 WinRM 需要经过许多安全环节才能正常工作。如果您精通 CLI,则可以使用 PSTools 执行相同的功能(即重新启动服务),但仍需要经过一些安全环节才能正常工作。这两个选项都需要在防火墙上设置适当的端口转发。
在这种情况下,问题是只需知道服务器已打开电源对您没有帮助。即使 Windows 正常运行,无法访问应用程序服务也意味着您的应用程序崩溃了,无法远程访问服务器意味着您无法修复应用程序。
假设应用服务在启动时运行,那么在无法访问远程无头服务器的情况下,最简单的解决方案就是让现场人员对其进行电源循环。但这个特定案例似乎是一场由糟糕的设计决策(表面上是由其他人做出的)导致某人登上飞机的完美风暴。