Устранение неполадок с подключением приложений на виртуальных машинах в Azure

Применимо к: ✔️ виртуальным машинам Linux ✔️ виртуальным машинам Windows

Сводка

В этой статье приведены подробные инструкции по устранению неполадок при подключении к приложениям, работающим на виртуальных машинах в Azure.

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

Если у вас возникают проблемы при подключении к виртуальной машине по протоколу RDP или SSH, сначала ознакомьтесь с одной из следующих статей:

Если вам понадобится дополнительная помощь в процессе чтения этой статьи, вы можете обратиться к экспертам Azure на форумах MSDN Azure и Stack Overflow. Кроме того, можно подать инцидент в поддержку Azure. Перейдите на сайт поддержка Azure и выберите Get Support.

Быстрые действия по устранению неполадок

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

Дополнительные сведения см. в статье Устранение неполадок подключения к конечной точке (сбои RDP, SSH, HTTP и другие сбои).

Подробный обзор устранения неисправностей

Существует четыре основных области, которые помогут устранить неполадки с доступом к приложению, работающему на виртуальной машине Azure.

Схема показывает, что два клиентских устройства подключены к приложению на V M по Интернету и VPN соответственно. Выделены 4 основные области для устранения неполадок с доступом.

  1. Приложение, работающее на виртуальной машине Azure.
    • Приложение работает правильно?
  2. Виртуальная машина Azure.
    • Виртуальная машина работает правильно и отвечает на запросы?
  3. конечные точки сети Azure
    • Конечные точки облачной службы для виртуальных машин в классической модели развертывания.
    • Группы сетевой безопасности и правила входящего NAT для виртуальных машин в модели развертывания Resource Manager.
    • Может ли трафик передаваться от пользователей к виртуальной машине и приложению на ожидаемых портах?
  4. Ваше устройство на границе интернета.
    • Нет ли правил брандмауэра, которые препятствуют правильной передаче трафика?

Для клиентских компьютеров, которые обращаются к приложению через VPN типа "сеть — сеть" или "ExpressRoute", основные области, которые могут вызвать проблемы, являются приложением и Azure виртуальной машиной.

Чтобы определить источник проблемы и исправить ее, выполните приведенные ниже действия.

Шаг 1. Доступ к приложению с целевой виртуальной машины

Попробуйте обратиться к приложению с помощью соответствующей клиентской программы из виртуальной машины, на которой оно работает. Используйте имя локального узла, локальный IP-адрес или петлевой адрес (127.0.0.1).

Схема доступа к приложению непосредственно из виртуальной машины в Azure VNet.

Например, если приложение является веб-сервером, откройте браузер на виртуальной машине и попытайтесь перейти к веб-странице, размещенной на виртуальной машине.

Если доступ к приложению есть, перейдите к шагу 2.

Если доступ к приложению получить не удается, проверьте следующие настройки.

  • Приложение выполняется в целевой виртуальной машине.
  • Приложение прослушивает ожидаемые порты TCP и UDP.

На виртуальных машинах на основе Linux и Windows используйте команду netstat -a для отображения активных портов прослушивания. Изучите выходные данные для ожидаемых портов, которые должно прослушивать приложение. При необходимости перезапустите приложение или настройте его для использования ожидаемых портов и попытайтесь снова получить доступ к приложению локально.

Шаг 2. Доступ к приложению с другой виртуальной машины в той же виртуальной сети

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

Диаграмма доступа к приложению непосредственно из другой виртуальной машины в той же виртуальной сети в Azure VNet.

Например, если приложение является веб-сервером, попробуйте обратиться к веб-странице из браузера в другой виртуальной машине из той же виртуальной сети.

Если у вас есть доступ к приложению, перейдите к шагу 3.

Если доступ к приложению получить не удается, проверьте следующие настройки.

  • Брандмауэр узла в целевой виртуальной машине пропускает трафик входящих запросов и исходящих ответов.
  • Программы для обнаружения вторжений или мониторинга сети, работающие в целевой виртуальной машине, разрешают прохождение сетевого трафика.
  • Конечные точки облачных служб или группы сетевой безопасности разрешают трафик:
  • Отдельный компонент, выполняющийся в виртуальной сети на пути между тестовой виртуальной машиной и вашей виртуальной машиной, такой, как, например, подсистема балансировки нагрузки или брандмауэр, разрешает прохождение трафика.

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

Шаг 3. Доступ к приложению из-за пределов виртуальной сети

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

Схема доступа к приложению с компьютера за пределами виртуальной сети.

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

Если доступ к приложению получить не удается, проверьте следующие настройки.

  • Для виртуальных машин, созданных с использованием классической модели развертывания:

    • Убедитесь, что конфигурация конечной точки для виртуальной машины разрешает входящий трафик, в частности протокол (TCP или UDP), а также номера общедоступных и частных портов.
    • Убедитесь, что списки управления доступом (ACL) для конечной точки не блокируют входящий трафик из Интернета.
    • Дополнительные сведения см. в статье Настройка конечных точек виртуальной машины.
  • Для виртуальных машин, созданных с помощью модели развертывания Resource Manager:

    • Убедитесь, что конфигурация правила NAT для входящего трафика для виртуальной машины разрешает входящий трафик, в частности протокол (TCP или UDP), а также номера общедоступных и частных портов.
    • Убедитесь, что группы безопасности сети разрешают трафик входящих запросов и исходящих ответов.
    • Дополнительные сведения см. в статье Безопасность сети.

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

  • Проверьте правильность протокола зонда (TCP или UDP) и номера порта.
  • Если протокол пробы и порт отличаются от протокола и порта с балансировкой нагрузки:
    • Проверьте, прослушивает ли приложение протокол пробы (TCP или UDP) и порт с этим номером (используйте netstat -a на целевой виртуальной машине).
    • Убедитесь, что брандмауэр узла на целевой виртуальной машине разрешает трафик входящих запросов и исходящих ответов пробы.

Если у вас есть доступ к приложению, убедитесь, что пограничное устройство сети Интернет разрешает следующее:

  • Исходящий трафик запросов приложения с клиентского компьютера на виртуальную машину Azure.
  • Входящий трафик ответов приложения из виртуальной машины Azure.

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

Дополнительные сведения см. в разделе Обзор мониторинга сети Azure.

Дополнительные ресурсы

Устранение неполадок подключений Remote Desktop к виртуальной машине на платформе Azure на базе Windows

Устранение неполадок подключения Secure Shell (SSH) к виртуальной машине Azure под управлением Linux