我是AWS Ec2的新手。 我只是启动一个实例,上传了一个test.php和test.html,都只是显示一个“Hello world”文本。
我复制了我的公共DNS:ec2-XXX-XXX-XXX-XXX.compute.amazonaws.com
但它总是有连接超时。
我设法连接到实例,我做了一个netstat,这里是结果:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN - tcp 0 0 :::22 :::* LISTEN - udp 0 0 0.0.0.0:68 0.0.0.0:* - udp 0 0 XX.XXX.XXX.XX:123 0.0.0.0:* - udp 0 0 127.0.0.1:123 0.0.0.0:* - udp 0 0 0.0.0.0:123 0.0.0.0:* - udp 0 0 XXXX::XXXX:XXXX:XXX:123 :::* - udp 0 0 ::1:123 :::* - udp 0 0 :::123 :::* - -
我不能看到端口80这是为websvr,所以我试过这个:
ec2-authorize default -p 80
它总是要求我包括私钥和证书,所以我包含它们
ec2-authorize default -p 80 -K XXX.pem -C cert-XXX.pem
然后,它总是说证书未能validationSOAP。
我的证书有问题吗? (即使我要求一个新的,它仍然是一样的)
或者我该怎么做才能查看我的网页(test.php或test.html)?
编辑:
当我运行:sudo tcpdump -pn端口80
结果:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
在网页打开后:
09:43:16.353743 IP XXX.XXX.X.XXX.4570 > XX.XXX.XXX.XX.http: Flags [S], seq 1XXXXXXXX6, win 8190, options [mss 1440], length 0 09:43:16.353779 IP XX.XXX.XXX.XX.http > XXX.XXX.X.XXX.4570: Flags [R.], seq 0, ack 1XXXXXXXX7, win 0, length 0 ... etc
我猜你正在以ec2-user的身份连接到EC2实例,因为这是Amazon Linux AMI Base 2010.11.1的默认login名。 但是要运行tcpdump命令,你需要使用sudo 。
sudo tcpdump ...
我不熟悉tcpdump命令,所以你将不得不自己理清正确的语法。
我可能不熟悉tcpdump ,但是我熟悉Amazon Linux AMI Base 2010.11.1 ,基于你的问题,我想知道你是否安装了Apache,PHP,MySQL等? 这些程序默认不包含在Amazon的基础AMI中。 您可以运行以下命令来查看所有已安装的软件包。
yum list installed
您需要安装的任何未列出的程序都需要使用yum进行安装,或者从源代码进行编译。
sudo yum install <program_name_here>
例如,要安装Apache 2.2,您可以运行:
sudo yum install httpd
这里有一些很好的资源:
如何:开始使用Amazon EC2 api工具
AWS EC2入门指南
希望这一切帮助…
默认情况下不允许http连接到实例: