Я создал две виртуальные машины в Azure. Один из них находится на юге Австралии, а другой - в Центральной Индии. Я запускал клиентскую программу на одной машине и серверную программу на другой машине. Нет возможности подключиться друг к другу. После небольшого поиска в Google я создал группу сетевой безопасности на обеих виртуальных машинах и добавил следующие правила для входящего и исходящего трафика.
Источник - Любой
Место назначения - любое
Сервис - Custom (Любая / 32000-32200)
Действие - Разрешить
Я подключаюсь к портам между 32000-32200 в своей программе, но машины по-прежнему не подключаются друг к другу. Я использую Ubuntu Server 16.04 и классическую модель развертывания. Убедительно прошу вас помочь мне. Прилагаю скриншоты моей группы сетевой безопасности и вывод команды netstat.
Как вы хотите соединить их? Поскольку ваши машины находятся в разных регионах, они находятся в разных виртуальных сетях, поэтому нет прямого подключения между ними из коробки. Вы можете настроить это одним из двух способов:
Если ваше приложение предназначено для связи между клиентом и сервером через Интернет, все, что вам нужно сделать, это настроить ваш сервер с общедоступным IP-адресом, а затем открыть необходимые порты в группе безопасности сети и межсетевом экране вашего компьютера. Все коммуникации будут осуществляться через общедоступный Интернет, поэтому вы можете использовать SSL и т. Д.
Если вы хотите, чтобы связь осуществлялась через частную сеть, вам необходимо соединить их с виртуальной сетью виртуальной сети 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 (правила для входящих подключений).
Обновить:
Для классической виртуальной машины вы должны открывать порты на конечной точке, дополнительную информацию см. ссылка на сайт.