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

Невозможно получить доступ к серверу EC2 через IP-адрес

У меня возникла проблема с доступом к моему эластичному общедоступному IP-адресу для моего экземпляра EC2 в веб-браузере. Установил REDHAT 6.3 и веб-сервер nginx (запущен и работает), а также убедился, что я включил порт 80 и все необходимое было настроено.

Теперь пора ввести общедоступный IP-адрес, чтобы просмотреть веб-страницу nginx по умолчанию, и ничего не происходит. Мне не удалось получить доступ к IP-адресу.

Теперь я мог пинговать другие сайты, но не мог пинговать свой IP-адрес.

Теперь, после нескольких часов попыток и попыток понять, что происходит ... я решил, что должен проверить сеть в ОС REDHAT, и всякий раз, когда я пытаюсь редактировать что-либо, связанное с сетью ... то есть я потерял соединение с сервером и не может перезапустить сеть.

Что я здесь не так? Почему просто получить доступ к моему серверу через IP так сложно? Что мне теперь делать?

Спасибо.

РЕДАКТИРОВАТЬ. вот группа безопасности, связанная с экземпляром EC2

Ports   Protocol    Source
20-21   tcp 0.0.0.0/0   
22  tcp 0.0.0.0/0   
80  tcp 0.0.0.0/0   
14000-14050 tcp 0.0.0.0/0

Если это всего лишь веб-трафик, и вы все еще можете подключиться к своему экземпляру по ssh, то это почти наверняка связано с вашей конфигурацией nginx.

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

  1. Сначала проверьте, можете ли вы подключиться к порту извне. Для этого используйте эту команду

    # telnet IP 80
    

    Если вы можете подключиться через это, значит, что-то определенно не так с настройками вашего веб-сервера, и вам не следует смотреть на следующие правила.

  2. Если первый не работает, второе, что нужно проверить, - это ваши iptables на вашем компьютере, а не только группу безопасности AWS. Чтобы сделать то же самое, проверьте вывод этой команды.

    # iptables -L -n
    

    Политики по умолчанию всегда должны быть ПРИНЯТО, если вы специально не указываете DROP или REJECT. Чтобы проверить, является ли iptables проблемой или нет, вы можете попробовать отключить iptables, сбросив правила или остановив службу iptables.

    Чтобы очистить правила, используйте эту команду:

    # iptables -F
    

    Чтобы остановить службу iptables:

    # service iptables stop
    

    Теперь попробуйте получить доступ к вашему сайту.

  3. Третий вариант - проверить Selinux на вашем компьютере. На машине redhat по умолчанию включен SElinux. Чтобы проверить то же самое, используйте эту команду и проверьте статус:

    # getsebool
    

    Он должен сказать что-то вроде этого:

    getsebool:  SELinux is disabled
    

    Если он включен, то это может быть причиной. Просто попробуйте временно отключить его с помощью этой команды:

    # setenforce 0
    

    Это временно отключит SElinux на вашем компьютере. Если это решит вашу проблему, просто обновите состояние из Enforcing к disabled в /etc/sysconfig/selinux и он навсегда отключит SElinux на вашем компьютере.

Надеюсь, это помогло.

GeekRide отлично справился с выделением различных шагов по устранению неполадок. Ответ для моего развертывания был связан с iptables. Остановка службы - отличный совет, чтобы быстро выявить проблему.

Чтобы решить проблему, обязательно «вставьте» свой порт в таблицу. Не добавляйте, так как вы, скорее всего, будете добавлять после записи «отклонить все», которая находится в конце списка. В этом примере 5 после правила порта 22. В aws, поскольку вы подключаетесь как пользователь ec2, добавьте команду sudo.

# sudu su
# iptables -L -n
# iptables -I INPUT 5 -p tcp --dport XXXXX -j ACCEPT

Если это сработает, не забудьте сохранить на случай перезапуска службы iptables.

# iptables-save

Помимо настроек группы безопасности AWS, разрешающих порт 80, также проверьте свой брандмауэр Redhat. Порт 80 по умолчанию не открыт.

В вашей системе redhat запустите system-config-firewall-tui чтобы открыть утилиту настройки брандмауэра для redhat, затем разрешите доступ http-порту 80.

Вы редактировали брандмауэр групп безопасности, чтобы разрешить веб-трафик ssh и т. Д.?
брандмауэр группы безопасности по умолчанию довольно жесткий.

с вашей консоли EC2

Network & security -> Security groups -> default -> inbound

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

add rule -> apply rule changes

изменения должны быть почти мгновенными