我是 AWS 新手,所以很可能我遗漏了一些简单的东西,但这是我遇到的问题。我按照教程创建了一个 EC2 实例 (t2.micro),并配置了一个安全组以允许来自任何来源的 HTTP (端口 80),但该端口未打开。
我可以毫无问题地 ssh 到我的服务器,并且当我使用端口扫描应用程序时(例如http://ping.eu/port-chk/),我看到端口 22 已打开,但端口 80 未打开。当我尝试时wget http://localhost
,我得到:
Connecting to localhost (localhost)|127.0.0.1|:80... failed: Connection refused.
如果这有帮助,以下是结果sudo netstat -plunta | grep LISTEN
:
tcp 0 0 0.0.0.0:55171 0.0.0.0:* LISTEN 2334/rpc.statd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2313/rpcbind
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2500/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2530/sendmail
tcp 0 0 :::111 :::* LISTEN 2313/rpcbind
tcp 0 0 :::22 :::* LISTEN 2500/sshd
tcp 0 0 :::56605 :::* LISTEN 2334/rpc.statd
编辑:
我正在使用此 EC2 实例从 dockerhub 构建容器。我能够使用 在本地构建容器docker run -p 8000:8000 -t hsdetect
,因此我将其放在 dockerhub 上并尝试使用以下命令通过端口 80 连接到它:docker run -d -p 80:8000 jss367/hsdetect:new_port python app.py
答案1
在安全组中打开端口 80 不会在 EC2 实例中创建侦听该端口的进程。您需要安装一个应用程序(例如 Apache)来侦听端口 80。
假设您希望在实例中运行 Web 服务器,请安装 Apache。
示例命令:
sudo yum update -y
sudo yum install -y httpd24
sudo service httpd start
sudo chkconfig httpd on
这将为您提供一个简单的 Apache 默认安装。
注意:我假设您的实例是 Amazon Linux。其他发行版的命令可能有所不同。