По запросу «Filezilla ошибка ENETUNREACH» поисковая система выдает, что проблема в антивирусе (Касперский) и для ее решения необходимо добавить filezilla.exe в исключения (доверенные приложения). На форуме этого FTP клиента описывается механизм как антивирус анализурует трафик приложения. Дальше будет приведен перевод:
Касперский перенаправляет весь сетевой трафик через свой процесс avp.exe по адресу 127.0.0.1 порт 1110.
Как просходит нормальное FTP подключение без сетевого сканирования:
- Filezilla создает управляющее TCP-соединение до адреса 93.184.216.23
- Операционная система назначает адрес источника IP пакета как адрес исходящего интерфейса допустим 10.0.0.123
- После установления соединения для передачи команд Filezilla создает соединение для передачи данных
- Адреса источника и получателя IP пакета используются те же, что и в управляющем соединении Т.е. у соеденения для передачи данных адрес источника будет 10.0.0.123, а получателя — 93.184.216.23.
Как происходит FTP подключение с сетевым сканированием:
- Filezilla создает управляющее TCP-соединение до адреса 93.184.216.23
- Касперский переписывает адрес получателя на 127.0.0.1:1110, для того чтобы пропустить через свой фильтр
- Операционная система назначает адрес источника IP пакета как 127.0.0.1 (loopback)
- После установления соединения для передачи команд Filezilla создает соединение для передачи данных
- Адреса источника и получателя IP пакета используются те же, что и в управляющем соединении
- Т.е. у соеденения для передачи данных адрес источника будет 127.0.0.1, а получателя — 93.184.216.23. IP адрес истоника называется loopback, он используется для диагностики и за пределы хоста IP пакет не передается. Таким образом подключение на удаленный хост с адресом источника 127.0.0.1 невозможно, о чем и говорит ошибка ENETUNREACH.
Почему этого не происходило раньше:
В более ранних версиях Filezilla при установлении соединяния для передачи данных клиент запрашивал адрес источника в IP пакете у системы. И благодаря особой конфигурации Касперского, система возвращала корректный адрес исходящего интерфейса. В новых же версиях Filezilla при передаче данных статически использует адрес источника в IP пакете такой же как в соединении для передачи команд, без обращения к системе.
Почему это не баг:
Помимо заботы о безопастностии перехвата соедененеия для передачи данных (connection stealing). Приводятся в пример ситуации, когда IP адрес исходящего интерфейса поменялся после установки управляющего соединения (VPN, IPv6 Stateless Autoconfiguration). Поэтому данное поведение со стороны Filezilla менять не планируется.
Встречается данное особенность не только у Filezilla, но и других NIX утилит портированных на Windows.
Рекомендации
Добавить Filezilla в исключения сетевого фильтра антивируса. Как это сделать описано в источнике.