Назад | Перейти на главную страницу

Почему я не могу получить доступ к своим новым инстансам AWS EC2?

Я новичок в 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

Затем он всегда говорил, что сертификат не смог аутентифицировать SOAP.

Что-то не так с моим сертификатом? (хотя я прошу новый, он все тот же)

Или что мне делать, чтобы разрешить просмотр моих веб-страниц (test.php или test.html)?

РЕДАКТИРОВАТЬ:

Когда я запускаю: sudo tcpdump -pn port 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

По умолчанию http-соединение с экземпляром не разрешено:

  • открыто https://console.aws.amazon.com/ec2/
  • СЕТЬ И БЕЗОПАСНОСТЬ-> Группы безопасности
  • выбрать по умолчанию
  • добавить правила в HTTP

Я предполагаю, что вы подключаетесь к экземпляру EC2 как ec2-пользователь, так как это логин по умолчанию для Amazon Linux AMI Base 2010.11.1. Но для запуска команды tcpdump вам нужно использовать судо.

sudo tcpdump ...

Я не знаком с командой tcpdump, поэтому вам придется самостоятельно выбирать правильный синтаксис.

Я может быть не знаком с tcpdump, но я знаком с Amazon Linux AMI Base 2010.11.1, и, исходя из вашего вопроса, мне интересно, установили ли вы Apache, PHP, MySQL и т. д.? Эти программы по умолчанию не включены в базовый AMI Amazon. Вы можете запустить следующую команду, чтобы увидеть все установленные пакеты.

yum list installed

Любые программы, которые вам нужно установить, которые не указаны в списке, должны быть установлены с помощью ням, либо скомпилировано из исходников.

sudo yum install <program_name_here>

Например, чтобы установить Apache 2.2, вы можете запустить:

sudo yum install httpd

Вот несколько хороших ресурсов:

Как: начать работу с инструментами API Amazon EC2

Руководство по началу работы с AWS EC2

Надеюсь, все это поможет ...