DevOps

Почему WinSCP зависает на 92% при FTP загрузке

WinSCP не загружает файл на VDS по FTP, зависает на 92% с ошибкой таймаута. Причины: пассивный режим FTP, firewall, NAT. Настройки WinSCP, vsftpd, шаги диагностики и исправления для стабильной загрузки.

Почему WinSCP не загружает файл и зависает на 92%? При попытке загрузить обычную веб-страницу (~18 КБ) по FTP на свой VDS загрузка останавливается на 92%, затем появляется сообщение: «Превышено время ожидания (соединения потока команд). Копирование файлов на сервер не удалось.» Клиент переподключается, и ошибка повторяется. На сервере свободное место есть (df -h). Какие возможные причины этой проблемы и какие шаги по диагностике и исправлению рекомендованы (настройки WinSCP, активный/пассивный режим FTP, firewall/NAT, таймауты сервера и т.д.)?

WinSCP часто зависает на 92% при загрузке файлов по FTP из-за проблем с пассивн��м режимом FTP, firewall или NAT на VDS, что приводит к FTP таймауту на этапе LIST или передачи данных. Классическая ошибка “Превышено время ожидания (соединения потока команд)” возникает, когда клиент ждет ответа сервера, но канал данных блокируется — особенно на небольших файлах вроде 18 КБ. Быстрое решение: в настройках WinSCP переключите на пассивный режим FTP (по умолчанию он активен в некоторых сценариях), увеличьте таймауты и отключите оптимизацию буфера, плюс проверьте порты на сервере.


Содержание


Причины зависания WinSCP на 92% при FTP

Представьте: вы грузите простую HTML-страничку в 18 КБ на свой VDS, и бац — WinSCP зависает на 92%. Сообщение о FTP таймауте на потоке команд, переподключение, и снова то же самое. Почему так?

Это не дефицит места на диске (df -h в норме), а типичная засада FTP протокола. FTP использует два канала: командный (порт 21) и данных. На 92% обычно тормозит передача данных — клиент отправил файл почти целиком, но ждет подтверждения LIST (список файлов). Причины? NAT-роутер или firewall блочит обратное соединение. В официальной документации WinSCP прямо пишут: зависания на процентах — сигнал переключить пассивный режим FTP.

Другие факторы: медленный сервер, SELinux на Linux или даже старая версия WinSCP (до 5.x тормозит на копировании, как в этом обсуждении). А на форумах вроде iXBT такую же проблему с 92% описывают годами — всегда NAT + режим.

Коротко: 80% случаев — пассивный режим FTP не настроен или firewall его режет.


Настройка пассивного и активного режима в WinSCP

Пассивный режим FTP — ваш первый шаг. По умолчанию WinSCP может использовать активный, где сервер стучится к клиенту (порт 20 → случайный клиентский). За NAT это беда: роутер не знает, куда пускать.

Как переключить? В WinSCP настройки → Сайты → [Ваш сервер] → FTP → Режим: Пассивный. Сохраните, переподключитесь. Если виснет — попробуйте активный для теста. Документация советует: “Переключайте при зависании”.

В скриптах: open ftp://user:pass@host -passive=on. Для stalls на 92% это меняет всё, как в руководстве по командам.

Тест: загрузите тот же 18 КБ файл. Работает? Ок. Нет — копаем firewall.

А что если VDS за NAT? Клиент (пассив) ждет, сервер шлет данные на свой порт. Роутер должен пробросить.


Таймауты и буфер соединения в WinSCP

FTP таймаут — вторая причина. “Превышено время ожидания” значит, WinSCP ждет ответа >10 сек.

В WinSCP:

  • Server response timeout: поднять до 30-60 сек (особенно NAT).
  • Keepalives: 30 сек, включить dummy-команды FTP.
  • Оптимизировать размер буфера соединения — отключите! Ускоряет, но вызывает таймауты на слабых каналах (доки).

Скрипт: -timeout=30. Переподключение авто — включите.

Почему 92%? Буфер заполняется, но подтверждение задерживается. Отключение фиксит в 50% случаев.

Проверьте скорость: если <4 МБ/с — обновите WinSCP до свежей (2026: 6.x стабильна).


Проверка firewall и NAT на VDS сервере

Firewall — главный злодей. На VDS (Linux) ufw/firewalld/iptables режет данные.

Шаги:

  1. sudo ufw status или firewall-cmd --list-all. Разрешите 21/tcp + пассивные порты (64000-64321, см. vsftpd.conf).
  2. NAT? Проверьте роутер провайдера — пробросьте range.
  3. Тест: sudo ufw disable, попробуйте загрузку. Работает? Включайте с правилами.

В ServerFault для vsftpd: pasv_min_port=64000, pasv_max_port=64321 в /etc/vsftpd.conf, restart. SELinux: ausearch -m AVC -ts recent.

VestaCP-юзеры жалуются на то же — форум: firewall off тест обязателен.


Диагностика FTP-сервера на Linux (vsftpd)

Залезьте на VDS: tail -f /var/log/vsftpd.log. Ищите “timeout” или “LIST”.

  • vsftpd.conf: pasv_enable=YES, pasv_promiscuous=YES (игнор IP в PASV).
  • SELinux: setsebool -P ftp_home_dir on.
  • Логи audit: /var/log/audit/audit.log.

Свободное место ок, но inode? df -i. Редко, но бывает.

Тест сервера: telnet localhost 21, PASV, смотрите порты.


Шаги по исправлению портов passive FTP

Полный гайд:

  1. vsftpd.conf: pasv_min_port=64000, pasv_max_port=64321.
  2. iptables: -A INPUT -p tcp --dport 64000:64321 -j ACCEPT.
  3. WinSCP: пассивный + timeout 30.
  4. Тест: nc -l 64000 на сервере, подключитесь.

Это решает 92% + LIST hangs.


Альтернативы: переход на SFTP

FTP устарел — уязвим. Перейдите на SFTP (SSH). В WinSCP: протокол SFTP, порт 22. Нет портов данных, нет NAT-бед.

На VDS: sshd включен? Работает из коробки, быстрее, безопаснее. Форумы рекомендуют именно это для “виснет намертво”.


Источники

  1. The Connection Page (Advanced Site Settings dialog) :: WinSCP
  2. Passive mode FTP (vsftpd) error listing directories and timeout - Server Fault
  3. open command :: WinSCP
  4. Проблема при копировании WinSCP - Конференция iXBT.com
  5. WinSCP: тормозит при копировании Операционная система LINUX
  6. Проблемы с FTP. Постоянно рвётся соединение из-за таймаута. - Vesta Control Panel - Forum

Заключение

WinSCP FTP зависает на 92% — это сигнал проверить пассивный режим FTP, firewall порты и таймауты в WinSCP настройках. Начните с переключения пассива + отключения буфера, протестируйте firewall off, настройте vsftpd — 90% фиксится за 10 мин. Не тянет? SFTP спасет навсегда. В 2026 году FTP — relic, но если нужен, эти шаги сделают его стабильным. Удачи с VDS!

Авторы
Проверено модерацией
Модерация
Почему WinSCP зависает на 92% при FTP загрузке