我已经配置了一个运行 Ubuntu 14.04.4 LTS 的 Amazon EC2 实例,使其仅使用一个 AWS 安全组,该安全组打开所有出站流量,限制传入流量,以允许来自任何地方的传入 TCP 连接达到 22、80、443、5000。我还配置并运行了 ufw,以便根据以下内容打开这些端口ufw status
:
Status: active
To Action From
-- ------ ----
Nginx Full ALLOW Anywhere
5000 ALLOW Anywhere
22 ALLOW Anywhere
Nginx Full (v6) ALLOW Anywhere (v6)
5000 (v6) ALLOW Anywhere (v6)
22 (v6) ALLOW Anywhere (v6)
尽管如此,当我在本地机器上运行 nmap 到服务器的地址时,我得到了以下信息:
Starting Nmap 7.12 ( https://nmap.org ) at 2016-08-17 22:55 EDT
Nmap scan report for xxxxxxx.com (xx.xx.xx.xx)
Host is up (0.013s latency).
rDNS record for xx.xx.xx.xx: ec2-xx-xx-xx-xx.compute-1.amazonaws.com
Not shown: 996 filtered ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
5000/tcp closed upnp
Nmap done: 1 IP address (1 host up) scanned in 5.61 seconds
为什么端口 5000 显示为已关闭而不是已打开?这里缺少什么?
答案1
所以,端口 5000 显示为关闭的原因在于服务器上尚未运行任何程序来接受传入连接。在服务器端运行应用程序后,端口显示为打开。
将本质上是三元(可用、打开、关闭)的状态强行塞入二元状态将不可避免地引起混乱。没有任何技术原因导致这种区别不能在服务器应用程序和工具中显现出来。为了每个人的利益,他们总共浪费了无数的时间来弄清楚这一点,应该这样做。