ProFTPD: как разобрать ошибку Append/Restart not permitted
Прерванная загрузка большого файла, запрет возобновления и проверка результата: от сообщения FTP-клиента до решения на сервере.
В этой записи
Как выглядела проблема
В июне 2018 года автор загружал архив размером 11 ГБ. После обрыва соединения FTP-клиент не смог продолжить передачу и показал сообщение 451 Append/Restart not permitted, try again. Сервер использовал ProFTPD на CentOS 7.

Сам код 451 не доказывает, что сломалась сеть или закончился диск. Важны полный текст ответа, команда клиента и серверный журнал. В этом случае предмет проверки — возможность продолжить запись уже начатого файла.
Сначала уточните направление и протокол
- Upload: файл передаётся с компьютера на сервер. Это запись; настройка её возобновления —
AllowStoreRestart. - Download: файл скачивается с сервера. Для него ProFTPD имеет отдельную настройку
AllowRetrieveRestart. - SFTP: другой протокол. Похожий интерфейс клиента не делает параметры FTP-сервера применимыми к SSH-серверу.
Что проверить до правки конфигурации
- Зафиксируйте путь назначения, имя аккаунта, время ошибки и размер оставшейся части файла. Проверьте, что частичный файл действительно принадлежит нужному пользователю.
- Найдите действующую конфигурацию ProFTPD и её включаемые файлы. Путь
/etc/proftpd.confиз старой заметки не универсален для всех установок. - Проверьте правила именно того virtual host и каталога, в который пишет клиент. Общий параметр может отличаться от настройки в более узком контексте.
- Посмотрите права записи, свободное место и журнал отказа. Не исправляйте любой отказ одним расширением FTP-разрешений.
Что означает AllowStoreRestart
По документации модуля mod_xfer, AllowStoreRestart разрешает или запрещает продолжение прерванной загрузки на сервер. По умолчанию оно запрещено. Для закрытого каталога конкретного аутентифицированного аккаунта администратор может рассмотреть эту настройку, когда докачка действительно нужна.
# Пример фрагмента для обсуждения с администратором.
# Путь условный: он должен совпадать с реальным закрытым каталогом.
<Directory /srv/ftp/private-upload>
AllowStoreRestart on
</Directory>
Этот фрагмент не создаёт каталог и не настраивает пользователей или права сам по себе. Он не предназначен для анонимного общего incoming-каталога: возможность продолжить чужой файл может позволить изменить его содержимое. Разрешение перезаписи через AllowOverwrite — отдельный вопрос; не включайте его автоматически вместе с докачкой.
Если используется HiddenStores, учитывайте описанное в документации ограничение FTP-команды REST. Изменять сразу несколько связанных параметров без разбора журнала не стоит.
Как применить и проверить
Сохраните копию изменяемого конфигурационного файла. Используйте способ проверки конфигурации, предусмотренный установленной версией ProFTPD, и заранее запишите способ возврата. Если сервер управляется панелью, выясните, не перезапишет ли она ручную правку. Применение выполняет администратор в подходящее время: старую команду перезапуска не нужно запускать вслепую на другом сервере.
Проверку начните с небольшого тестового файла и отдельного имени: прервите передачу, продолжите её, сравните размер и контрольную сумму исходника с результатом. Только затем возвращайтесь к большому архиву. Сообщение клиента «завершено» полезно, но проверка содержимого надёжнее одной зелёной строки.
Первичный источник: ProFTPD, модуль mod_xfer. Для места на диске и состояния сервера пригодится памятка Linux.