Как настроить передачу файлов на облачный сервер с Windows Server: FTP-сервер IIS с шифрованием FTPS, пользователи и права, пассивный режим и брандмауэр, а также более простой вариант — SFTP через OpenSSH.
Содержание
Передавать файлы на сервер с Windows можно двумя способами: через FTP-сервер, входящий в IIS, или по SFTP — протоколу передачи файлов поверх SSH, который обеспечивает встроенный OpenSSH. SFTP проще в настройке и шифрует данные без отдельного сертификата. FTP нужен, если программа или подрядчик работают только по этому протоколу.
SFTP через OpenSSH
Установите сервер OpenSSH, как описано в разделе «Роли, компоненты и SSH». После этого к серверу можно подключаться программами FileZilla или WinSCP по протоколу SFTP на порт 22 с именем и паролем учётной записи Windows.
Установка FTP-сервера IIS
Команды выполняйте в PowerShell, запущенном от имени администратора:
Install-WindowsFeature Web-Ftp-Server -IncludeManagementToolsУчётная запись для FTP
Создайте для входа по FTP отдельную учётную запись — не используйте для этого Administrator — и дайте ей права на папку сайта:
$p = Read-Host "Пароль" -AsSecureString
New-LocalUser -Name "ftpuser" -Password $p -PasswordNeverExpires
icacls "C:\inetpub\example.ru" /grant "ftpuser:(OI)(CI)M"FTP-сайт
- В IIS Manager в контекстном меню раздела Sites выберите Add FTP Site, укажите имя и папку, например
C:\inetpub\example.ru. - На шаге Binding and SSL оставьте IP-адрес All Unassigned и порт 21. Если для сайта уже получен сертификат (например, программой win-acme), выберите его и режим Require SSL. Без сертификата доступен только режим No SSL: имя, пароль и файлы передаются в открытом виде, поэтому используйте его лишь временно.
- На шаге Authentication and Authorization включите Basic, в разделе Authorization выберите Specified users, укажите
ftpuserи отметьте права Read и Write.
Как получить сертификат для домена, описано в статье Сайт на IIS в Windows Server.
Пассивный режим и брандмауэр
Большинство FTP-клиентов работают в пассивном режиме: для передачи данных сервер выделяет дополнительный порт из заданного диапазона. Задайте диапазон в IIS Manager на уровне сервера: FTP Firewall Support → Data Channel Port Range, например 50000-50100. Затем откройте порты в брандмауэре и перезапустите службу FTP:
New-NetFirewallRule -DisplayName "FTP" -Direction Inbound -Protocol TCP -LocalPort 21 -Action Allow
New-NetFirewallRule -DisplayName "FTP passive" -Direction Inbound -Protocol TCP -LocalPort 50000-50100 -Action Allow
Restart-Service ftpsvcЕсли по FTP работают только известные вам адреса, добавьте в оба правила параметр -RemoteAddress со списком этих адресов.
Подключение клиента
В FileZilla укажите хост — домен или IP-адрес сервера, порт 21, шифрование «Требовать явный FTP через TLS», имя ftpuser и пароль. Общие сведения о работе с FTP-клиентами — в статье Загрузка файлов по FTP и SFTP.
Не нашли ответ? Напишите в поддержку — подскажем.


