远程端口打开了吗?

现在我们已经能够路由至目标设备,但仍然无法在端口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是否处于阻断状态。


相关内容