Ответ 1
В июле 2012 года Рональд Вильденберг (Ronald Wildenberg) рассказал об отличном пошаговом руководстве по хостингу FTP на IIS 7.5 в Windows Azure VM. Он повторяет ответ Дэвида. Вот этапы, которые он проходит:
- Прежде всего, вам нужна виртуальная машина. Мне понадобился компьютер под управлением Windows с базой данных SQL Server, поэтому я выбрал "Microsoft SQL Server 2012 Evaluation Edition" из доступных шаблонов.
- После загрузки машины вы можете подключиться к ней через опцию подключения в нижней части портала управления.
- Когда вы находитесь внутри, вам нужно настроить IIS. Краткое изложение необходимых шагов:
- Добавьте роль "Веб-сервер (IIS)" на сервер.
- Добавьте нужные вам функции IIS.
- Добавьте конечную точку TCP к вашей виртуальной машине на портале управления с общим и частным портом 80.
- Чтобы включить FTP, убедитесь, что вы включили службы ролей "FTP-сервер" для своей роли IIS:
- Следующим шагом является создание фактического FTP-сайта в IIS. Щелкните правой кнопкой мыши "Сайты" в диспетчере IIS и выберите "Добавить FTP-сайт…"
- Укажите имя и локальный путь для сайта:
- Укажите привязку и информацию SSL:
- И, наконец, укажите, кто должен иметь доступ к FTP-сайту.
- Теперь вы сможете получить доступ к FTP-сайту из виртуальной машины. Откройте командную строку, введите
ftp 127.0.0.1
и войдите - Для активного FTP вам нужно разрешить доступ к портам 21 (командный порт FTP) и 20 (порт данных FTP), поэтому вам нужно добавить две конечные точки к вашей виртуальной машине
- настроить пассивный FTP. Чтобы это работало, нам нужно сообщить серверу IIS FTP диапазон портов, который он может использовать для подключений к данным, и нам нужно добавить конечные точки в виртуальную машину, которые соответствуют этому диапазону портов.
- настроить диапазон портов и внешний IP-адрес для пассивных подключений к данным. Это можно найти в IIS Manager
- Внешний IP-адрес должен быть виртуальным IP-адресом, который вы можете найти на портале управления Azure.
- Если вы не можете указать диапазон портов канала данных в диспетчере IIS, используйте утилиту appcmd, которую можно найти в
%windir%\system32\inetsrv
:appcmd set config/section:system.ftpServer/firewallSupport/lowDataChannelPort:7000/highDataChannelPort:7014
- Вы можете указать все 15 новых конечных точек на портале Azure, но это займет много времени, поэтому используйте командлеты Windows Azure Powershell.
- Загрузите файл настроек публикации. Один из способов - запустить Windows Azure Powershell и использовать командлет Get-AzurePublishSettingsFile. Он открывает браузер и позволяет загрузить файл настроек публикации, соответствующий вашему идентификатору Windows Live.
- Загрузив файл параметров публикации, вы можете импортировать его с помощью командлета Import-AzurePublishSettingsFile и быть готовым начать добавление конечных точек.
- Я просто создал текстовый файл, содержащий список команд, которые я хотел выполнить, и скопировал его в окно Powershell:
Get-AzureVM -ServiceName 'myServiceName' -Name 'ftpportal' | Add-AzureEndpoint -Name 'FTPPassive00' -Protocol 'TCP' -LocalPort 7000 -PublicPort 7000 | Update-AzureVM
Get-AzureVM -ServiceName 'myServiceName' -Name 'ftpportal' | Add-AzureEndpoint -Name 'FTPPassive00' -Protocol 'TCP' -LocalPort 7000 -PublicPort 7000 | Update-AzureVM
Get-AzureVM -ServiceName 'myServiceName' -Name 'ftpportal' | Add-AzureEndpoint -Name 'FTPPassive00' -Protocol 'TCP' -LocalPort 7000 -PublicPort 7000 | Update-AzureVM
где "myServiceName" - это имя моей облачной службы, а "ftpportal" - это имя моей виртуальной машины. - Хотя брандмауэр Windows, по-видимому, разрешает весь необходимый трафик, вам также необходимо включить FTP-фильтрацию с
netsh advfirewall set global StatefulFtp enable
состояния на брандмауэре:netsh advfirewall set global StatefulFtp enable
- перезапустите службу FTP Windows, и мы должны быть в рабочем состоянии:
-
net stop ftpsvc
-
net start ftpsvc
-
Стоит следовать этим шагам в оригинальной статье, не в последнюю очередь потому, что он содержит полезные скриншоты для каждого шага, но я подумал, что здесь стоит привести подробные цитаты на всякий случай. В статье также упоминается " Активный FTP против пассивного FTP", однозначное объяснение которого стоит прочитать.
Было бы здорово, если бы я мог сообщить, что после выполнения этих шагов ваш FTP-сервер на базе виртуальной машины Azure будет работать и доступен. Но, к сожалению, шаги, описанные выше, не исправили это для меня :-(