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

Как запустить клиент-серверную программу на двух виртуальных машинах в разных местах в Azure?

Я создал две виртуальные машины в Azure. Один из них находится на юге Австралии, а другой - в Центральной Индии. Я запускал клиентскую программу на одной машине и серверную программу на другой машине. Нет возможности подключиться друг к другу. После небольшого поиска в Google я создал группу сетевой безопасности на обеих виртуальных машинах и добавил следующие правила для входящего и исходящего трафика.

Источник - Любой

Место назначения - любое

Сервис - Custom (Любая / 32000-32200)

Действие - Разрешить

Я подключаюсь к портам между 32000-32200 в своей программе, но машины по-прежнему не подключаются друг к другу. Я использую Ubuntu Server 16.04 и классическую модель развертывания. Убедительно прошу вас помочь мне. Прилагаю скриншоты моей группы сетевой безопасности и вывод команды netstat.

Группа сетевой безопасности

netstat

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

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

  2. Если вы хотите, чтобы связь осуществлялась через частную сеть, вам необходимо соединить их с виртуальной сетью виртуальной сети VPN. Поскольку ваши виртуальные сети находятся в разных регионах, вы не можете использовать пиринг виртуальных сетей. После настройки VPN вы сможете общаться через частные IP-адреса машин. Вам все равно потребуются открытые порты fm в NSG и брандмауэре. Видеть Эта статья о том, как создать VPN.

Сначала проверьте подключение к порту приложения. Если вы не можете использовать telnet, откройте порт в брандмауэре Linux. После этого вы можете проверить конфигурацию своего приложения, проверить, правильно ли вы используете адрес и порт.

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

1. Используйте, пожалуйста, вы можете подключить порт 32000-32200 от одной виртуальной машины Azure к другой виртуальной машине, вы можете использовать telnet тестировать.

2.Проверьте результат netstat -ant|grep 32000(Linux), убедитесь, что ваш порт прослушивает tcp и 0.0.0.0.

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

4. Проверьте брандмауэр вашей виртуальной машины. Если ваша виртуальная машина работает под управлением ОС Windows, вам нужны открытые порты в брандмауэре Windows (правила для входящих подключений).

Обновить:

Для классической виртуальной машины вы должны открывать порты на конечной точке, дополнительную информацию см. ссылка на сайт.