С FTP интересный эффект - подключаюсь к серверу где файлы выложены симлинками (тестировал на FteeBSD.org), выставляю настройки с учётом симлинков, даю команду скачать - получаю файлы и ... вместо адресуемых симлинками файлов ... каталоги с их именами. Отправил автору [more=баг-репорт]What witness? Setting up the client so that he took into account the symbolic link and give the command to download a file, check the ls -hsR> ../list. The result - instead of the expected listing includes tarball:
.
..
total 49M
1.0K README.TXT
49M ports.tar.gz
We see a completely different directory structure:
.:
total 1.0K
1.0K README.TXT
0 ports.tar.gz
./ports.tar.gz:
total 0
FTP client that is not passed on simliku, but simply creates an empty directory, with please pay attention to the fact that the initial connection is the wrong TCP port 0 and then switches on the TCP port 21 (see log connections). As a possible solution, you can use the same mechanism that is used in FileZill Client v3 or Far NetBox
https://github.com/michaellukashov/Far-NetBox - there is an error with symlinks removed.
FTP log (raw):
2015-11-05 15:29:07 = Неправильный порт ( 0 ). Будет использован порт 21.
2015-11-05 15:29:07 = Подключение к серверу ftp.freebsd.org:21
2015-11-05 15:29:07 < 220 This is ftp0.ydx.freebsd.org - hosted at Yandex.
2015-11-05 15:29:07 > USER anonymous
2015-11-05 15:29:07 < 331 Please specify the password.
2015-11-05 15:29:07 > PASS (hidden)
2015-11-05 15:29:07 < 230-
2015-11-05 15:29:07 < 230-This is ftp0.ydx.FreeBSD.org, graciously hosted by Yandex.
2015-11-05 15:29:07 < 230-
2015-11-05 15:29:07 < 230-FreeBSD files can be found in the /pub/FreeBSD directory.
2015-11-05 15:29:07 < 230-
2015-11-05 15:29:07 < 230 Login successful.
2015-11-05 15:29:07 > SYST
2015-11-05 15:29:07 < 215 UNIX Type: L8
2015-11-05 15:29:07 > FEAT
2015-11-05 15:29:07 < 211-Features:
2015-11-05 15:29:07 < EPRT
2015-11-05 15:29:07 < EPSV
2015-11-05 15:29:07 < MDTM
2015-11-05 15:29:07 < PASV
2015-11-05 15:29:07 < REST STREAM
2015-11-05 15:29:07 < SIZE
2015-11-05 15:29:07 < TVFS
2015-11-05 15:29:07 < UTF8
2015-11-05 15:29:07 < 211 End
2015-11-05 15:29:07 > OPTS UTF8 ON
2015-11-05 15:29:07 < 200 Always in UTF8 mode.
2015-11-05 15:29:07 > TYPE A
2015-11-05 15:29:07 < 200 Switching to ASCII mode.
2015-11-05 15:29:07 > MODE S
2015-11-05 15:29:07 < 200 Mode set to S.
2015-11-05 15:29:07 > STRU F
2015-11-05 15:29:07 < 200 Structure set to F.
2015-11-05 15:29:07 > CWD /
2015-11-05 15:29:07 < 250 Directory successfully changed.
2015-11-05 15:29:07 > PASV
2015-11-05 15:29:07 < 227 Entering Passive Mode (77,88,40,106,198,99).
2015-11-05 15:29:07 > LIST
2015-11-05 15:29:07 = Opening data connection to IP 77.88.40.106 on port 50787
2015-11-05 15:29:07 < 150 Here comes the directory listing.
2015-11-05 15:29:07 < 226 Directory send OK.
2015-11-05 15:29:10 > CWD /pub
2015-11-05 15:29:10 < 250 Directory successfully changed.
2015-11-05 15:29:10 > PASV
2015-11-05 15:29:10 < 227 Entering Passive Mode (77,88,40,106,228,137).
2015-11-05 15:29:10 > LIST
2015-11-05 15:29:10 = Opening data connection to IP 77.88.40.106 on port 58505
2015-11-05 15:29:10 < 150 Here comes the directory listing.
2015-11-05 15:29:10 < 226 Directory send OK.
2015-11-05 15:29:11 > CWD /pub/FreeBSD
2015-11-05 15:29:11 < 250-ISO images of FreeBSD releases may be found in the releases/ISO-IMAGES
2015-11-05 15:29:11 < 250-directory. For independent files and tarballs, see individual
2015-11-05 15:29:11 < 250-releases/${machine}/${machine_arch} directories. For example,
2015-11-05 15:29:11 < 250-releases/amd64/amd64 and releases/powerpc/powerpc64.
2015-11-05 15:29:11 < 250 Directory successfully changed.
2015-11-05 15:29:11 > PASV
2015-11-05 15:29:11 < 227 Entering Passive Mode (77,88,40,106,255,30).
2015-11-05 15:29:11 > LIST
2015-11-05 15:29:11 = Opening data connection to IP 77.88.40.106 on port 65310
2015-11-05 15:29:11 < 150 Here comes the directory listing.
2015-11-05 15:29:11 < 226 Directory send OK.
2015-11-05 15:29:13 > CWD /pub/FreeBSD/ports
2015-11-05 15:29:13 < 250 Directory successfully changed.
2015-11-05 15:29:13 > PASV
2015-11-05 15:29:13 < 227 Entering Passive Mode (77,88,40,106,212,182).
2015-11-05 15:29:13 > LIST
2015-11-05 15:29:13 = Opening data connection to IP 77.88.40.106 on port 54454
2015-11-05 15:29:13 < 150 Here comes the directory listing.
2015-11-05 15:29:13 < 226 Directory send OK.
2015-11-05 15:29:15 > CWD /pub/FreeBSD/ports/ports
2015-11-05 15:29:15 < 250 Directory successfully changed.
2015-11-05 15:29:15 > PASV
2015-11-05 15:29:15 < 227 Entering Passive Mode (77,88,40,106,218,224).
2015-11-05 15:29:15 > LIST
2015-11-05 15:29:15 = Opening data connection to IP 77.88.40.106 on port 56032
2015-11-05 15:29:15 < 150 Here comes the directory listing.
2015-11-05 15:29:15 < 226 Directory send OK.
2015-11-05 15:30:01 > CWD /pub/FreeBSD/ports/ports
2015-11-05 15:30:01 < 250 Directory successfully changed.
2015-11-05 15:30:01 > PASV
2015-11-05 15:30:01 < 227 Entering Passive Mode (77,88,40,106,230,159).
2015-11-05 15:30:01 > LIST
2015-11-05 15:30:01 = Opening data connection to IP 77.88.40.106 on port 59039
2015-11-05 15:30:01 < 150 Here comes the directory listing.
2015-11-05 15:30:01 < 226 Directory send OK.
2015-11-05 15:30:01 > CWD /pub/FreeBSD/ports/ports/ports.tar.gz
2015-11-05 15:30:01 < 550 Failed to change directory.
2015-11-05 15:30:01 = Server request denied
2015-11-05 15:30:01 > TYPE I
2015-11-05 15:30:01 < 200 Switching to Binary mode.
2015-11-05 15:30:01 > PASV
2015-11-05 15:30:01 < 227 Entering Passive Mode (77,88,40,106,221,16).
2015-11-05 15:30:01 > RETR /pub/FreeBSD/ports/ports/README.TXT
2015-11-05 15:30:01 < 150 Opening BINARY mode data connection for /pub/FreeBSD/ports/ports/README.TXT (993 bytes).
2015-11-05 15:30:01 < 226 Transfer complete.[/more]. Похоже что FTP клиент будет доработан - информации достаточно, что происходит понятно....