Подтвердить что ты не робот

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

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

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

ftp command: open localhost

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

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

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

Я пропускаю шаг конфигурации где-нибудь?

Спасибо

4b9b3361

Ответ 1

В июле 2012 года Рональд Вильденберг (Ronald Wildenberg) рассказал об отличном пошаговом руководстве по хостингу FTP на IIS 7.5 в Windows Azure VM. Он повторяет ответ Дэвида. Вот этапы, которые он проходит:

  1. Прежде всего, вам нужна виртуальная машина. Мне понадобился компьютер под управлением Windows с базой данных SQL Server, поэтому я выбрал "Microsoft SQL Server 2012 Evaluation Edition" из доступных шаблонов.
  2. После загрузки машины вы можете подключиться к ней через опцию подключения в нижней части портала управления.
  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) и 20 (порт данных FTP), поэтому вам нужно добавить две конечные точки к вашей виртуальной машине
  11. настроить пассивный FTP. Чтобы это работало, нам нужно сообщить серверу IIS FTP диапазон портов, который он может использовать для подключений к данным, и нам нужно добавить конечные точки в виртуальную машину, которые соответствуют этому диапазону портов.
  12. настроить диапазон портов и внешний IP-адрес для пассивных подключений к данным. Это можно найти в IIS Manager
  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.
  17. Загрузив файл параметров публикации, вы можете импортировать его с помощью командлета Import-AzurePublishSettingsFile и быть готовым начать добавление конечных точек.
  18. Я просто создал текстовый файл, содержащий список команд, которые я хотел выполнить, и скопировал его в окно 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" - это имя моей виртуальной машины.
  19. Хотя брандмауэр Windows, по-видимому, разрешает весь необходимый трафик, вам также необходимо включить FTP-фильтрацию с netsh advfirewall set global StatefulFtp enable состояния на брандмауэре: netsh advfirewall set global StatefulFtp enable
  20. перезапустите службу FTP Windows, и мы должны быть в рабочем состоянии:
    • net stop ftpsvc
    • net start ftpsvc

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

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

Ответ 2

Если вы не против использования 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 it, you can now connect to FTP from outside of VM.

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

Приветствия

Ответ 3

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

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

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

2) В поиске "Выбрать пакеты" для

  • cygrunsrv (выберите тот, который находится под "Admin" )
  • openssh (выберите пункт в разделе "Сеть" )

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

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

  • cygrunsrv -S sshd

4) Из Azure VM добавьте конечную точку SSH

5) В Windows FireWall добавьте правило входящих в порт TCP 22

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

Примечания:

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

Удачи!

Ответ 4

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

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

Ответ 5

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

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