在 AWS 上打开 80 端口

在 AWS 上打开 80 端口

我创建了一个 AWS EC2 VPS(ubuntu v14),我想在其上打开端口 80 以便我的网站可以运行。

但不幸的是,我无法打开80端口。

为此,我首先运行以下命令:

$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

这是我跑步时得到的

 $sudo iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

我明白了,tcp dpt:http 已被接受。

但当我运行 nmap 检查端口 80 时,它说端口 80 已关闭。见下文:

$ nmap x.x.x.x -p80

Starting Nmap 6.40 ( http://nmap.org ) at 2015-05-27 09:13 UTC
Nmap scan report for ec2-52-8-104-113.us-west-1.compute.amazonaws.com (x.x.x.x)
Host is up (0.00038s latency).
PORT   STATE  SERVICE
80/tcp closed http

Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds

我真的被这个问题难住了,请帮帮我。

我甚至尝试过 ufw,但也没有帮助。

谢谢

答案1

您的 iptables 规则是正确的。通过该规则,您基本上是在告诉 iptables 接受到 VPS 上目标端口 80 (http) 的任何传入 TCP 连接。从技术上讲,此规则不是必需的,因为您的INPUT链策略设置为ACCEPT,它接受遍历该链的任何数据包。

您的 Nmap 扫描显示端口已关闭。原因是您的 VPS 响应 Nmap 扫描时出现某种“端口不可用”错误,导致closed端口状态。如果 iptables 丢弃数据包,您将看到端口状态filtered

尝试netstat -anp | grep :80在您的 VPS 上运行。如果输出为空,则表示您没有在 TCP 端口 80 上侦听的 Web 服务器。如果您运行 Apache2 作为 Web 服务器,则命令输出应类似于以下内容:

tcp6 0 0 :::80 :::* LISTEN 1970/apache2

答案2

这会导致您在 AWS 上使用 EC2 时走错路,请转到您的 EC2 控制台并单击您的 EC2 安全组,在传入部分添加 HTTP(端口 80)并保存。

您可以为指定 IP 地址或为所有人(IP 地址 0.0.0.0)打开 HTTP 端口

保存安全组后,您必须能够访问 EC2 HTTP 端口。

答案3

在 AWS 实例上打开 80 端口

转到实例

请检查出站规则..

如果没有开放 80 端口,则

请选择http并开放80端口

您还可以在那里打开 443 端口以进行 https

相关内容