У меня проблемы с использованием net / ftp для подключения к ftp-серверу Windows NT.
Кажется, у некоторых других клиентов возникают проблемы с подключением к этому серверу, но FileZilla не имеет никаких проблем.
Вот результаты отладки попытки подключения ruby:
[151] pry(main):1> ftp = Net::FTP.new(ftp_address)
=> #<Net::FTP:0x0000010e236fe0
@binary=true,
@debug_mode=false,
@last_response="220 Microsoft FTP Service\n",
@last_response_code="220",
@logged_in=false,
@mon_count=0,
@mon_mutex=#<Mutex:0x0000010e236f90>,
@mon_owner=nil,
@open_timeout=nil,
@passive=false,
@read_timeout=60,
@resume=false,
@sock=#<Net::FTP::BufferedSocket io=#<TCPSocket:0x0000010e236f18>>>
[152] pry(#<Site>):1> ftp.debug_mode = true
=> true
[153] pry(#<Site>):1> ftp.passive = true
=> true
[154] pry(#<Site>):1> ftp.login(ftp_user, ftp_password)
put: USER <redacted>
get: 331 Password required for <redacted>.
put: PASS ********
get: 230 User logged in.
put: TYPE I
get: 200 Type set to I.
=> true
[155] pry(#<Site>):1> ftp.chdir("/")
put: CWD /
get: 250 CWD command successful.
=> nil
[156] pry(main):1> ftp.putbinaryfile("/Users/home/Desktop/testupload.csv")
put: PASV
get: 27 Entering Passive Mode (0,1,2,3,192,119)
Net::FTPReplyError: 27 Entering Passive Mode (0,1,2,3,192,119)
from /Users/home/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/net/ftp.rb:978:in `parse227'
[157] pry(main):1> ftp.putbinaryfile("/Users/home/Desktop/testupload.csv")
put: PASV
get:
Net::FTPProtoError:
from /Users/home/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/net/ftp.rb:329:in `getresp'
А вот результат работы filezilla:
Status: Resolving address of <redacted host>
Status: Connecting to <redacted ip>:21...
Status: Connection established, waiting for welcome message...
Response: 220 Microsoft FTP Service
Command: USER <redacted>
Response: 331 Password required for <redacted>.
Command: PASS ********
Response: 230 User logged in.
Command: OPTS UTF8 ON
Response: 200 OPTS UTF8 command successful - UTF8 encoding now ON.
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/" is current directory.
Status: Directory listing successful
Status: Resolving address of <redacted host>
Status: Connecting to <redacted ip>:21...
Status: Connection established, waiting for welcome message...
Response: 220 Microsoft FTP Service
Command: USER <redacted>
Response: 331 Password required for <redacted>.
Command: PASS ********
Response: 230 User logged in.
Command: OPTS UTF8 ON
Response: 200 OPTS UTF8 command successful - UTF8 encoding now ON.
Status: Connected
Status: Starting upload of /Users/home/Desktop/testupload.csv
Command: CWD /
Response: 250 CWD command successful.
Command: TYPE I
Response: 200 Type set to I.
Command: PASV
Response: 27 Entering Passive Mode (0,1,2,3,192,121)
Command: STOR testupload.csv
Response: 150 Opening BINARY mode data connection.
Response: 226 Transfer complete.
Status: File transfer successful, transferred 97 bytes in 1 second
Status: Retrieving directory listing...
Command: PASV
Response: 27 Entering Passive Mode (0,1,2,3,192,122)
Command: LIST
Response: 150 Opening BINARY mode data connection.
Response: 226 Transfer complete.
Status: Directory listing successful
(обратите внимание, что в приведенных выше 27 строках входа в пассивный режим (0,1,2,3,192,122) 0,1,2,3 был IP-адресом сервера, к которому мы подключаемся).
Есть идеи, что может вызвать это? Я получал похожие (на ответ ruby) странные ответы FTP при использовании CyberDuck в качестве клиента.