Linux服务器故障排查指南5:远程端口打开了吗?刀片服务器

2013-03-27    来源:51cto    编辑:轶名
现在我们已经能够路由至目标设备,但仍然无法在端口80上访问web服务器。接下来的测试意在检查端口是否打开。

  远程端口打开了吗?

  现在我们已经能够路由至目标设备,但仍然无法在端口80上访问web服务器。接下来的测试意在检查端口是否打开。要实现这一目的,我们可以选择的方案很多。选择其一,我们可以尝试telnet:

  $ telnet 10.1.2.5 80
  Trying 10.1.2.5...
  telnet: Unable to connect to remote host: Connection refused

  如果大家看到连接被拒绝,那么端口很可能处于关闭状态(可能是Apache未能运行在远程主机上或没有侦听该端口),也可能是防火墙阻断了我们的访问。如果telnet能够连接,那么恭喜各位,现在大家已经解决了所有网络问题。但如果web服务的工作状态与我们的预期不符,则需要检查web1上的Apache配置(web服务器的故障排查工作在本文的其它章节会谈到)。

  但相对于telnet,我个人更偏向使用nmap来进行端口测试,因为它往往能够检测到防火墙的影响。如果大家还没有安装nmap,可以使用软件包管理器快速安装nmap软件包。要对web1进行测试,请输入以下内容:

  $ nmap -p 80 10.1.2.5
  Starting Nmap 4.62 ( http://nmap.org ) at 2009-02-05 18:49 PST
  Interesting ports on web1 (10.1.2.5):
  PORT STATE SERVICE
  80/tcp filtered http
  nmap

  果然不负众望,它一般都能发现所谓"关闭的端口"到底是直接处于关闭状态、还是在防火墙后处于关闭状态。通常情况下,nmap会将真正关闭的端口报告为"关闭",而将防火墙后的端口报告为"过滤"。在我们的测试中它报告其状态为"过滤",意味着期间有防火墙作梗并忽略掉了我们的数据包。如此一来,大家就需要检查网关(10.1.1.1)以及web1上的全部防火墙规则,看看端口80是否处于阻断状态。

1
3