Как настроить FTP на виртуальной машине Azure

Мне нужна помощь в настройке FTP на моем экземпляре Azure VM.

виртуальной машиной является Win Server 2012 R2. Я настроил роль веб-сервера и создал FTP-сайт в IIS. Я подтвердил, что могу получить доступ к FTP-серверу с помощью

ftp command: open localhost

Я также настроил конечную точку FTP для виртуальной машины на портале Azure, настроенном для стандартного порта 21.

наконец, я открыл созданное правило брандмауэра, чтобы разрешить весь трафик в / из порта 21.

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

Я где-то пропустил шаг конфигурации?

спасибо

5 ответов


есть большое пошаговое руководство с июля 2012 года'хостинг FTP на IIS 7.5 в Windows Azure VM ' by Рональд Wildenberg об этом. Он вторит Дэвид. Вот через какие стадии он проходит:--14-->

  1. прежде всего, вам нужна виртуальная машина. Мне нужна была машина Windows с базой данных SQL Server, поэтому я выбрал "Microsoft SQL Server 2012 Evaluation Edition" из доступных шаблонов.
  2. как только машина загрузился, вы можете RDP в него через опцию connect в нижней части портала управления.
  3. когда вы находитесь в, вам нужно настроить IIS. Резюме необходимых шагов:
    • добавьте роль "веб-сервер (IIS)" на сервер.
    • добавьте необходимые функции IIS.
    • добавьте конечную точку TCP к виртуальной машине на портале управления с открытым и частным портом 80.
  4. чтобы включить FTP, убедитесь, что вы включили ' FTP Службы ролей сервера для роли IIS:
  5. следующим шагом является создание фактического FTP-сайта в IIS. Щелкните правой кнопкой мыши "сайты" в диспетчере IIS и выберите " Добавить FTP-сайт..."
  6. Укажите имя и локальный путь для сайта:
  7. укажите привязку и информацию SSL:
  8. и, наконец, укажите, кто должен иметь доступ к FTP-сайту.
  9. теперь вы должны иметь доступ к FTP-сайту из виртуальной машины. Откройте командную строку, введите ftp 127.0.0.1 и логин
  10. для активного FTP вам нужно разрешить доступ к портам 21 (FTP command port) и 20 (FTP data port), поэтому вам нужно добавить две конечные точки к вашей VM
  11. для настройки пассивного FTP. Чтобы это работало, нам нужно сообщить FTP-серверу IIS диапазон портов, который он может использовать для подключения к данным, и нам нужно добавить конечные точки к виртуальной машине, соответствующие этому диапазону портов.
  12. настройте диапазон портов и внешний IP-адрес для пассивных подключений к данным. Этот можно найти в диспетчере IIS
  13. внешний IP-адрес должен быть виртуальным IP-адресом, который можно найти на портале управления Azure.
  14. если вы не можете указать диапазон портов канала данных в Диспетчере IIS, используйте утилиту appcmd, которую можно найти в %windir%\system32\inetsrv: appcmd set config /section:system.ftpServer/firewallSupport /lowDataChannelPort:7000 /highDataChannelPort:7014
  15. вы можете указать все 15 новых конечных точек на портале Azure, но это займет годы, поэтому используйте командлеты Windows Azure Powershell.
  16. скачать файл параметров публикации. Один из способов-запустить Windows Azure Powershell и использовать командлет Get-AzurePublishSettingsFile. Он открывает браузер и позволяет загрузить файл параметров публикации, соответствующий вашему идентификатору Windows Live id.
  17. после загрузки файла параметров публикации его можно импортировать с помощью командлета Import-AzurePublishSettingsFile, и мы готовы начать добавление конечных точек.
  18. я просто создал текстовый файл, содержащий список команд я хотел запустить и скопировал это в окно Powershell:Get-AzureVM -ServiceName 'myServiceName' -Name 'ftpportal' | Add-AzureEndpoint -Name 'FTPPassive00' -Protocol 'TCP' -LocalPort 7000 -PublicPort 7000 | Update-AzureVM где "myServiceName" - это имя моего облачного сервиса, а "ftpportal" - имя моей виртуальной машины.
  19. хотя Брандмауэр Windows, кажется, разрешает весь трафик, который требуется, вам также необходимо включить фильтрацию FTP с состоянием на брандмауэре:netsh advfirewall set global StatefulFtp enable
  20. перезапустите службу FTP Windows, и мы должны быть и бегущий:
    • net stop ftpsvc
    • net start ftpsvc

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

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


Если вы не возражаете использовать FTP-сервер FileZilla,

вот что я сделал, чтобы включить FTP-соединение с моей виртуальной машиной.

1. Go to Azure VM (manage.windowsazure.com), and add 2 endpoints:
    1. Name: FTP (Protocol TCP, Public Port 21, Private Port 21)
    2. Name: FTP Passive (Protocol TCP, Public Port 60000, Private Port 60000)
2. Go back to VM (via RDP), Open connection for port 21, and 60000 on Windows Firewall inbound rule.
3. Download and open FileZilla Server.
4. Click Edit -> Users and add user and shared directory as needed.
5. Click Edit -> Settings. On the sidebar click Passive Mode Settings.
6. Check "use custom port range" and enter 60000 - 60000
7. On ip4specific part, select radio button "use the following ip", and enter your xxxx.cloudapp.net.
8. Save, and run the server. That's it, you can now connect to FTP from outside of VM.

надеюсь, это кому-то поможет.

Ура


после отставания на некоторое время с 15 - точечным списком выше, я получил сообщение, которое MS пытается передать - "нет (легко) FTP для вас"...

поэтому я вернулся в старый добрый и открытый мир Linux-настроил сервер SCP с помощью Cygwin. Вы даже получаете удаленную оболочку в качестве бонуса...

1) Запустите программу установки Cygwin -https://cygwin.com/setup-x86.exe

2) в' Select Packages ' поиск

  • cygrunsrv (выберите один под 'Admin')
  • openssh (выберите один под 'Net)

3) Когда закончите, запустите терминал Cygwin и введите:

  • ssh-host-config-y-pwd S0me-Str0ng-pa55w0rd

  • cygrunsrv-S sshd

4) из виртуальной машины Azure добавьте конечную точку SSH

5) в Брандмауэре Windows добавьте входящее правило для TCP-порта 22

и viola-вы можете подключиться с помощью WinSCP, Notepad++ и Замазка, конечно...

Примечания:

  • Unix чувствителен к регистру, поэтому введите своего пользователя в точном случае, например, администратор с капиталом a
  • ваши диски находятся под /cygdrive (c:\ находится в /cygdrive/C и т. д.)

удачи!


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

вам нужно создать кучу входных конечных точек, каждая из которых представляет один из портов в указанный диапазон портов. Обратите внимание, что у вас ограниченное количество входных конечных точек (не уверен в точном количестве, но вы должны легко открыть, скажем, 50 входных конечных точек в смежных портах). Затем просто настройте ftp-сервер для использования того же диапазона. Кроме того, вы захотите отобразить входной открытый порт конечной точки На тот же номер частного порта, иначе соединения не будут созданы должным образом.


ссылке dumbledad это в настоящее время недоступен. У меня все еще были проблемы с запуском пассивного FTP на новой виртуальной машине Azure после выполнения там шагов.

после небольшого поиска я нашел эту статью create пассивный FTP и динамические порты. Это отличное пошаговое руководство и предоставляет простой скрипт для запуска с вашей виртуальной машины, чтобы получить FTP и работает в течение минуты. Если вы настраиваете несколько виртуальных машин, сценарий-гораздо более быстрый способ настройки FTP-доступ, а не ручная настройка конечных точек IIS и Azure.