Получите общедоступный IP-адрес Azure из развернутого приложения

Я реализую режим PASV на сервере FTP и отправляю клиенту IP-адрес и порт конечной точки данных. Это глупо, потому что IP-адрес на самом деле находится там, где клиент уже подключается, поэтому есть два варианта:

  1. Как я могу получить общедоступный адрес IP из данного экземпляра? Не VIP, а общественный.

  2. Как я могу получить исходный целевой адрес IP, который пользователь использовал, из объекта Socket? Учитывая маршрутизаторы и балансировщики нагрузки посередине: P

Подойдет ответ на любой из этих вопросов, хотя есть и другой способ, который может сработать... могу ли я получить общедоступный IP адрес, выполняя DNS поиск myapp.cloudapp.net?

Четвертый вариант — использовать библиотеку API управления Azure... но слишком много проблем: P.

Ваше здоровье.


person vtortola    schedule 16.03.2011    source источник


Ответы (2)


Не уверен, что вы когда-нибудь догадывались об этом, но вот мой взгляд на это. Все экземпляры отдельных ролей находятся за балансировщиком нагрузки Windows Azure и не имеют представления об исходном внешнем IP-адресе. Кроме того, отсутствует вызов Management API, который возвращает IP-адрес — Get Deployment возвращает URL-адрес, но не IP-адрес. Я думаю, что единственным вариантом будет поиск DNS.

Сказав это: я не думаю, что вы можете разместить пассивный ftp-сервер в своем экземпляре роли (по крайней мере, не элегантно). Вы можете открыть до 25 входных конечных точек для своей роли (вместо 5 — см. мой недавний запись в блоге об этом обновлении), но настройка выполняется вручную. Я не знаю, позволяет ли ваше ftp-приложение ограничить диапазон портов таким небольшим количеством портов. Также:

  • Вам нужно будет определить каждый порт как свою собственную входную конечную точку (это часть ручного труда, о которой я упоминал) - входные конечные точки не позволяют указывать диапазон портов, в отличие от внутренних конечных точек.
  • Вам нужно будет указать номер порта, который используется внутри, и номера портов должны быть последовательными.

И последнее, что касается ftp: вы должны без проблем разместить sftp-сервер, поскольку весь трафик проходит через один порт.

person David Makogon    schedule 28.05.2011
comment
Привет. Ну, в общем... Я собираюсь использовать внешний сервер, чтобы вернуть общедоступный IP-адрес, это то, что делает сервер Filezilla. И у меня работает первая версия моего пассивного FTP-сервера, хе-хе. Единственная проблема заключается в том, что он поддерживает только 4 одновременных подключения с одного и того же IP-адреса, но я думаю, что все будет в порядке! Ваше здоровье. - person vtortola; 30.05.2011

Взлом, о котором я сейчас думаю, — это получить http://www.icanhazip.com/. Это не элегантно и зависит от доступности этой услуги, но выполняет свою работу. Лучшее решение приветствуется!

person TravisThomas    schedule 23.04.2014