VSFTPD: Не удалось установить соединение данных: ETIMEDOUT – Время подключения истекло

Вопрос или проблема

7 июля наш веб-сервер перестал работать. Мы перезагрузили его и обнаружили, что он получил ошибку Kernel 41, но это не наша проблема на данный момент.

У нас на этом сервере три машины: одна с Windows (она работает прекрасно), вторая – это Gateway с CentOS, и она тоже работает. Третья машина вызывает проблемы, это Ubuntu 18.4 и FTP.

После перезагрузки наш FTP-сервер запускает ufw, я закрыл/остановил его, так что теперь мы можем подключаться к FTP, но не всегда.

FileZilla не работает с ним должным образом, всегда возникает ETIMEOUT, 425 не удалось установить соединение, и невозможно получить список.
Я дважды проверял, что брандмауэр (на Gateway и на FTP) был выключен, на Gateway я проверил iptables, и там есть правила ACCEPT ALL.

Вот наш vsftpd.conf:

listen=YES

pasv_enable=YES

pasv_min_port=62000

pasv_max_port=65535

port_enable=YES

anonymous_enable=YES

no_anon_password=YES

anon_root=/home/ftpadmin

local_enable=YES

#local_umask=022 #local_root=/home/ftpadmin

write_enable=YES

listen_port=2121

connect_from_port_20=YES

chmod_enable=YES

chroot_local_user=YES

allow_writeable_chroot=YES

passwd_chroot_enable=YES

ascii_upload_enable=YES

ascii_download_enable=YES

pasv_adress=xx.x.xxx.xxx

pasv_addr_resolve=NO

dirlist_enable=NO

user_config_dir=/etc/vsftd_conf_dir

Ошибка FileZilla:
Ответ: 227 Вход в пассивный режим (46,4,134,230,252,52).
Команда: LIST
Ошибка: Данные не удалось установить: ETIMEDOUT – Время ожидания соединения истекло

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

Эта проблема может иметь множество причин, но когда я вижу вашу конфигурацию, я сразу дам вам следующий совет:

Измените dirlist_enable=NO на dirlist_enable=YES

Кроме того, убедитесь, что вы улучшили ведение журнала, добавив следующие строки в ваш vsftpd.conf:

xferlog_enable=YES
log_ftp_protocol=YES
xferlog_file=/var/log/ftp/xferlog

Также убедитесь, что вы проверили /var/log/vsftpd.log на наличие ошибок.

Ответ или решение

Когда вы сталкиваетесь с ошибкой подключения FTP, особенно с сообщением об ошибке ETIMEDOUT - Connection attempt timed out, это может указывать на несколько возможных проблем, связанных с конфигурацией сервера или сетью. Давайте рассмотрим ваши настройки и поработаем над разрешением этой ситуации.

1. Анализ конфигурации vsftpd

Ваш конфигурационный файл vsftpd.conf содержит несколько хороших настроек, но есть моменты, которые следует проверить и изменить:

  • PASV-режим: Вы используете пассивный режим (pasv_enable=YES), что требует, чтобы клиент FTP подключался к серверу на случайные порты между 62000 и 65535. Убедитесь, что ваш брандмауэр (если он хоть как-то настроен) разрешает проходящие подключения на эти порты:

    sudo iptables -A INPUT -p tcp --dport 62000:65535 -j ACCEPT
  • Параметры PASV: Проверьте, правильно ли указан IP-адрес сервера в строке pasv_address. Он должен быть публичным IP-адресом, доступным для FTP-клиентов. Убедитесь, что клиент FTP видит именно этот IP-адрес.

  • Проблемы с соединениями: Строка connect_from_port_20=YES указывает, что сервер должен использовать порт 20 для FTP-соединений. Убедитесь, что порты 20 и 21 также разрешены в брандмауэре:

    sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT

2. Проверка логов

Для более детального изучения проблемы стоит включить расширенное логирование. Добавьте в ваш конфигурационный файл:

xferlog_enable=YES
log_ftp_protocol=YES
xferlog_file=/var/log/ftp/xferlog

Это позволит вам следить за активностью FTP и легче находить причины проблем. После изменения позаботьтесь о создании директории для логов, если она ещё не существует:

sudo mkdir -p /var/log/ftp
sudo chown ftp:ftp /var/log/ftp

Затем просмотрите лог-файлы, чтобы выявить возможные ошибки или проблемы с подключением:

tail -f /var/log/vsftpd.log

3. Проверка клиентских настроек

Убедитесь, что в настройках FileZilla выбран правильный режим подключения. Если вы используете пассивный режим, он должен быть правильно включён в настройках клиента, иначе может возникнуть конфликт.

4. Диагностика сети

При использовании tracert важно убедиться, что трафик проходит не только до шлюза, но и обратно к клиенту. Если пакеты застревают, это может указывать на проблемы маршрутизации. Проверьте настройки вашего маршрутизатора или используйте альтернативные сети, чтобы исключить их влияние.

5. Заключение

Данная проблема требует многопланового подхода, включая корректировку параметров сервера FTP, проверку логирования и сетевых настройках. После внесения изменений проведите тесты с разными FTP-клиентами, чтобы убедиться в стабильности соединения.

Если проблема не устранена, пожалуйста, предоставьте больше логов и информации о конфигурации сети. Это упростит диагностику и ускорит решение проблемы.

Оцените материал
Добавить комментарий

Капча загружается...