michaellukashov/Far-NetBox — Issue #5: В версии 2.х не удаётся соединится с FTP сервером для анонимного логина
Author: VictorVG
Created: 2012-01-15 16:29:26+00:00
State: open

В версии 2.х не удаётся соединится с FTP сервером используя анонимный доступ. В версии 1.19 - это ещё удавалось. Для проверки использованы все возможные варианты ввода логина и пароля. Комбинация ftp://anonimous:@ftpserver не проходит. Я считаю что это из-за ошибок WinSCP который не работает с FTP. В то же время, старая версия 1.19 основанная на коде FileZilla такой проблемы не возникает. Вот лог соединения с сервером ftp://pcbsd.com/ допускающим анонимный доступ:

. 2012-01-15 17:47:21.859 --------------------------------------------------------------------------
. 2012-01-15 17:47:21.875 NetBox Version 2.0.5 (OS 5.1.2600 Service Pack 3)
. 2012-01-15 17:47:21.875 Configuration: Software\Far2\Plugins\NetBox 2\
. 2012-01-15 17:47:21.875 Local account:
. 2012-01-15 17:47:21.875 Login time: 2012-Jan-15
. 2012-01-15 17:47:21.875 --------------------------------------------------------------------------
. 2012-01-15 17:47:21.875 Session name: PC-BSD (ftp) (Stored session)
. 2012-01-15 17:47:21.875 Host name: ftp://ftp.pcbsd.com/ (Port: 21)
. 2012-01-15 17:47:21.875 User name: anonymous (Password: Yes, Key file: No)
. 2012-01-15 17:47:21.875 Tunnel: No
. 2012-01-15 17:47:21.890 Transfer Protocol: FTP
. 2012-01-15 17:47:21.890 Ping type: C, Ping interval: 30 sec; Timeout: 90 sec
. 2012-01-15 17:47:21.890 Proxy: none
. 2012-01-15 17:47:21.890 FTP: FTPS: None; Passive: Yes [Force IP: No]
. 2012-01-15 17:47:21.890 Local directory: default, Remote directory: home, Update: No, Cache: Yes
. 2012-01-15 17:47:21.890 Cache directory changes: Yes, Permanent: Yes
. 2012-01-15 17:47:21.906 DST mode: 0
. 2012-01-15 17:47:21.906 --------------------------------------------------------------------------
. 2012-01-15 17:47:22.000 Connecting to ftp://ftp.pcbsd.com/ ...
. 2012-01-15 17:47:22.156 Затребованное имя допустимо и оно найдено в базе данных,
. 2012-01-15 17:47:22.156 но для имени отсутствуют связанные с ним данные, которые были разрешены для него.
. 2012-01-15 17:47:22.156 Connection failed.
* 2012-01-15 17:47:22.156 (exception) Connection failed.
* 2012-01-15 17:47:22.156 Затребованное имя допустимо и оно найдено в базе данных,
* 2012-01-15 17:47:22.156 но для имени отсутствуют связанные с ним данные, которые были разрешены для него.
* 2012-01-15 17:47:22.156 Connection failed.
* 2012-01-15 17:47:22.156 Connection failed.
. 2012-01-15 17:49:11.437 --------------------------------------------------------------------------
. 2012-01-15 17:49:11.453 NetBox Version 2.0.5 (OS 5.1.2600 Service Pack 3)
. 2012-01-15 17:49:11.453 Configuration: Software\Far2\Plugins\NetBox 2\
. 2012-01-15 17:49:11.453 Local account:
. 2012-01-15 17:49:11.453 Login time: 2012-Jan-15
. 2012-01-15 17:49:11.453 --------------------------------------------------------------------------
. 2012-01-15 17:49:11.453 Session name: PC-BSD (ftp) (Stored session)
. 2012-01-15 17:49:11.453 Host name: ftp://ftp.pcbsd.com/ (Port: 21)
. 2012-01-15 17:49:11.453 User name: anonymous (Password: Yes, Key file: No)
. 2012-01-15 17:49:11.453 Tunnel: No
. 2012-01-15 17:49:11.453 Transfer Protocol: FTP
. 2012-01-15 17:49:11.453 Ping type: C, Ping interval: 30 sec; Timeout: 90 sec
. 2012-01-15 17:49:11.453 Proxy: none
. 2012-01-15 17:49:11.453 FTP: FTPS: None; Passive: Yes [Force IP: No]
. 2012-01-15 17:49:11.453 Local directory: default, Remote directory: home, Update: No, Cache: Yes
. 2012-01-15 17:49:11.453 Cache directory changes: Yes, Permanent: Yes
. 2012-01-15 17:49:11.453 DST mode: 0
. 2012-01-15 17:49:11.453 --------------------------------------------------------------------------
. 2012-01-15 17:49:11.453 Connecting to ftp://ftp.pcbsd.com/ ...
. 2012-01-15 17:49:11.453 Затребованное имя допустимо и оно найдено в базе данных,
. 2012-01-15 17:49:11.468 но для имени отсутствуют связанные с ним данные, которые были разрешены для него.
. 2012-01-15 17:49:11.468 Connection failed.
* 2012-01-15 17:49:11.468 (exception) Connection failed.
* 2012-01-15 17:49:11.468 Затребованное имя допустимо и оно найдено в базе данных,
* 2012-01-15 17:49:11.468 но для имени отсутствуют связанные с ним данные, которые были разрешены для него.
* 2012-01-15 17:49:11.468 Connection failed.
* 2012-01-15 17:49:11.468 Connection failed.
. 2012-01-15 17:49:31.734 --------------------------------------------------------------------------
. 2012-01-15 17:49:31.750 NetBox Version 2.0.5 (OS 5.1.2600 Service Pack 3)
. 2012-01-15 17:49:31.750 Configuration: Software\Far2\Plugins\NetBox 2\
. 2012-01-15 17:49:31.750 Local account:
. 2012-01-15 17:49:31.750 Login time: 2012-Jan-15
. 2012-01-15 17:49:31.750 --------------------------------------------------------------------------
. 2012-01-15 17:49:31.750 Session name: PC-BSD (ftp) (Stored session)
. 2012-01-15 17:49:31.750 Host name: ftp://ftp.pcbsd.com/ (Port: 21)
. 2012-01-15 17:49:31.750 User name: anonymous (Password: No, Key file: No)
. 2012-01-15 17:49:31.750 Tunnel: No
. 2012-01-15 17:49:31.750 Transfer Protocol: FTP
. 2012-01-15 17:49:31.750 Ping type: C, Ping interval: 30 sec; Timeout: 90 sec
. 2012-01-15 17:49:31.750 Proxy: none
. 2012-01-15 17:49:31.750 FTP: FTPS: None; Passive: Yes [Force IP: No]
. 2012-01-15 17:49:31.750 Local directory: default, Remote directory: home, Update: No, Cache: Yes
. 2012-01-15 17:49:31.750 Cache directory changes: Yes, Permanent: Yes
. 2012-01-15 17:49:31.750 DST mode: 0
. 2012-01-15 17:49:31.750 --------------------------------------------------------------------------
. 2012-01-15 17:49:31.765 Connecting to ftp://ftp.pcbsd.com/ ...
. 2012-01-15 17:49:31.765 Затребованное имя допустимо и оно найдено в базе данных,
. 2012-01-15 17:49:31.765 но для имени отсутствуют связанные с ним данные, которые были разрешены для него.
. 2012-01-15 17:49:31.765 Connection failed.
* 2012-01-15 17:49:31.765 (exception) Connection failed.
* 2012-01-15 17:49:31.765 Затребованное имя допустимо и оно найдено в базе данных,
* 2012-01-15 17:49:31.765 но для имени отсутствуют связанные с ним данные, которые были разрешены для него.
* 2012-01-15 17:49:31.765 Connection failed.
* 2012-01-15 17:49:31.765 Connection failed.
. 2012-01-15 17:52:44.453 --------------------------------------------------------------------------
. 2012-01-15 17:52:44.468 NetBox Version 2.0.5 (OS 5.1.2600 Service Pack 3)
. 2012-01-15 17:52:44.468 Configuration: Software\Far2\Plugins\NetBox 2\
. 2012-01-15 17:52:44.468 Local account:
. 2012-01-15 17:52:44.468 Login time: 2012-Jan-15
. 2012-01-15 17:52:44.468 --------------------------------------------------------------------------
. 2012-01-15 17:52:44.468 Session name: PC-BSD (ftp) (Stored session)
. 2012-01-15 17:52:44.468 Host name: ftp.pcbsd.com/ (Port: 21)
. 2012-01-15 17:52:44.468 User name: (Password: No, Key file: No)
. 2012-01-15 17:52:44.468 Tunnel: No
. 2012-01-15 17:52:44.468 Transfer Protocol: FTP
. 2012-01-15 17:52:44.468 Ping type: C, Ping interval: 30 sec; Timeout: 90 sec
. 2012-01-15 17:52:44.468 Proxy: none
. 2012-01-15 17:52:44.468 FTP: FTPS: None; Passive: Yes [Force IP: No]
. 2012-01-15 17:52:44.468 Local directory: default, Remote directory: home, Update: No, Cache: Yes
. 2012-01-15 17:52:44.468 Cache directory changes: Yes, Permanent: Yes
. 2012-01-15 17:52:44.468 DST mode: 0
. 2012-01-15 17:52:44.468 --------------------------------------------------------------------------
. 2012-01-15 17:52:44.468 Username prompt (no username provided)
. 2012-01-15 17:52:49.953 Connecting to ftp.pcbsd.com/ ...
. 2012-01-15 17:52:56.968 Can't resolve host name
. 2012-01-15 17:52:56.968 Connection failed.
* 2012-01-15 17:52:56.984 (exception) Connection failed.
* 2012-01-15 17:52:56.984 Can't resolve host name
* 2012-01-15 17:52:56.984 Connection failed.
* 2012-01-15 17:52:56.984 Connection failed.
. 2012-01-15 17:53:38.875 --------------------------------------------------------------------------
. 2012-01-15 17:53:38.875 NetBox Version 2.0.5 (OS 5.1.2600 Service Pack 3)
. 2012-01-15 17:53:38.875 Configuration: Software\Far2\Plugins\NetBox 2\
. 2012-01-15 17:53:38.875 Local account:
. 2012-01-15 17:53:38.890 Login time: 2012-Jan-15
. 2012-01-15 17:53:38.890 --------------------------------------------------------------------------
. 2012-01-15 17:53:38.890 Session name: PC-BSD (ftp) (Stored session)
. 2012-01-15 17:53:38.890 Host name: ftp.pcbsd.com (Port: 21)
. 2012-01-15 17:53:38.890 User name: anonymous (Password: Yes, Key file: No)
. 2012-01-15 17:53:38.890 Tunnel: No
. 2012-01-15 17:53:38.890 Transfer Protocol: FTP
. 2012-01-15 17:53:38.890 Ping type: C, Ping interval: 30 sec; Timeout: 90 sec
. 2012-01-15 17:53:38.890 Proxy: none
. 2012-01-15 17:53:38.890 FTP: FTPS: None; Passive: Yes [Force IP: No]
. 2012-01-15 17:53:38.890 Local directory: default, Remote directory: home, Update: No, Cache: Yes
. 2012-01-15 17:53:38.890 Cache directory changes: Yes, Permanent: Yes
. 2012-01-15 17:53:38.890 DST mode: 0
. 2012-01-15 17:53:38.890 --------------------------------------------------------------------------
. 2012-01-15 17:53:38.890 Connecting to ftp.pcbsd.com ...
. 2012-01-15 17:54:06.640 Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера.
. 2012-01-15 17:54:06.640 Connection failed.
* 2012-01-15 17:54:06.640 (exception) Connection failed.
* 2012-01-15 17:54:06.640 Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера.
* 2012-01-15 17:54:06.640 Connection failed.
* 2012-01-15 17:54:06.640 Connection failed.

В качестве тестовой сборки использовалась сборка Far 3.0,2386 SVN r7265 только с базовыми плагинами и NetBox 2.05 для Far 3.0.

Как бы я решал такую проблему? Мне думается, что стоит рассмотреть вариант с возвратом ядра FTP на код FileZilla Client, но использовать код версий 3.5.2.1 или лучше 3.5.3. Что мы тогда можем получить?

1) стабильный FTP код не имеющий проблем и умеющий работать с симлинками FTP - этим сразу мы решим проблему использующих симлинки серверов, например, ftp.freebsd.org - те же порты FreeBSD UNIX используют симлинки для экономии места - без симлинков порты FreeBSD 8.2 занимают на диске 118 ГБ, с использованием симлинков (а многие файлы имеют по 3 - 4 и более симлинков) примерно 36 ГБ. Обычно симлинки ведут из каталога ALL на один из каталогов тематического порта. Например - WWW, FTP, NET, X11 и т.д.;

2) решим проблему анонимного логина к серверам;

3) решение проблемы фонового трафика возможно уже отработанным вариантом, например вызывая в виде фонового потока CURL, а для выгрузки данных на сервера Wput - у этого клиента я пока проблем с выгрузкой на сервера не наблюдал.

4) возможный вариант решения - если мы используем анонимный доступ к FTP серверу, то вызывать например системный FTP стек умеющий работать с такими серверами.

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