Почему 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
- Настройка пассивного и активного режима в WinSCP
- Таймауты и буфер соединения в WinSCP
- Проверка firewall и NAT на VDS сервере
- Диагностика FTP-сервера на Linux (vsftpd)
- Шаги по исправлению портов passive FTP
- Альтернативы: переход на SFTP
- Источники
- Заключение
Причины зависания 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 режет данные.
Шаги:
sudo ufw statusилиfirewall-cmd --list-all. Разрешите 21/tcp + пассивные порты (64000-64321, см. vsftpd.conf).- NAT? Проверьте роутер провайдера — пробросьте range.
- Тест:
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
Полный гайд:
- vsftpd.conf:
pasv_min_port=64000,pasv_max_port=64321. - iptables:
-A INPUT -p tcp --dport 64000:64321 -j ACCEPT. - WinSCP: пассивный + timeout 30.
- Тест:
nc -l 64000на сервере, подключитесь.
Это решает 92% + LIST hangs.
Альтернативы: переход на SFTP
FTP устарел — уязвим. Перейдите на SFTP (SSH). В WinSCP: протокол SFTP, порт 22. Нет портов данных, нет NAT-бед.
На VDS: sshd включен? Работает из коробки, быстрее, безопаснее. Форумы рекомендуют именно это для “виснет намертво”.
Источники
- The Connection Page (Advanced Site Settings dialog) :: WinSCP
- Passive mode FTP (vsftpd) error listing directories and timeout - Server Fault
- open command :: WinSCP
- Проблема при копировании WinSCP - Конференция iXBT.com
- WinSCP: тормозит при копировании Операционная система LINUX
- Проблемы с FTP. Постоянно рвётся соединение из-за таймаута. - Vesta Control Panel - Forum
Заключение
WinSCP FTP зависает на 92% — это сигнал проверить пассивный режим FTP, firewall порты и таймауты в WinSCP настройках. Начните с переключения пассива + отключения буфера, протестируйте firewall off, настройте vsftpd — 90% фиксится за 10 мин. Не тянет? SFTP спасет навсегда. В 2026 году FTP — relic, но если нужен, эти шаги сделают его стабильным. Удачи с VDS!