2012-12-06 10 views
14

„500 poleceń Illegal PORT” Jeśli mogę wykonać to lokalnie, wszystko działa prawidłowo:Próbujesz pobrać plik z wynikami FTP w błąd

require 'net/ftp' 

ftp=Net::FTP.new("myftpserver.com", "username", "password") 

ftp.getbinaryfile("/myfile.zip","localfile.zip") 
ftp.close 

Gdybym próby uruchomienia go na serwerze Linux używam, wynikiem jest:

/usr/local/lib/ruby/1.9.1/net/ftp.rb:273:in `getresp': 500 Illegal 
PORT command. (Net::FTPPermError) from 
/usr/local/lib/ruby/1.9.1/net/ftp.rb:281:in `voidresp' from 
/usr/local/lib/ruby/1.9.1/net/ftp.rb:304:in `block in voidcmd' from 
/usr/local/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' from 
/usr/local/lib/ruby/1.9.1/net/ftp.rb:302:in `voidcmd' from 
/usr/local/lib/ruby/1.9.1/net/ftp.rb:317:in `sendport' from 
/usr/local/lib/ruby/1.9.1/net/ftp.rb:325:in `makeport' from 
/usr/local/lib/ruby/1.9.1/net/ftp.rb:358:in `transfercmd' from 
/usr/local/lib/ruby/1.9.1/net/ftp.rb:420:in `block (2 levels) in 
retrbinary' from /usr/local/lib/ruby/1.9.1/net/ftp.rb:166:in 
`with_binary' from /usr/local/lib/ruby/1.9.1/net/ftp.rb:419:in `block 
in retrbinary' from /usr/local/lib/ruby/1.9.1/monitor.rb:201:in 
`mon_synchronize' from /usr/local/lib/ruby/1.9.1/net/ftp.rb:418:in 
`retrbinary' from /usr/local/lib/ruby/1.9.1/net/ftp.rb:539:in 
`getbinaryfile' 

Co może być problemem?

+1

prawdopodobnie powinien zostać przeniesiony do serverfault .. –

Odpowiedz

34

Znalazłem odpowiedź na http://www.ruby-forum.com/topic/161274:

Beyond zapór, aktywny ftp nie będzie działać za urządzeniem NAT. Serwery ftp czasami powiedzieć polecenie nielegalne portu jeśli powiesz im, że Twój adres jest prywatny adres IP jak 192.168.x (Twój adres w sieci za urządzenia NAT )

dodania:

ftp.passive = true 

naprawiono.

+1

+1 ... Otrzymuję ten sam błąd w Netbeans Remote Editor, Naprawiony przez przejście do trybu pasywnego. –

+0

Użyłem tego klejnotu "paperclip-storage-ftp" i otrzymuję błąd podobny do Net :: FTPPermError 500 podczas przesyłania zdjęcia. więc możesz mi powiedzieć, gdzie powinienem umieścić ten wiersz ftp.passive = true w modelu? możesz to również zobaczyć http://stackoverflow.com/questions/33540851/getting-random-error-while-upload-photo-with-paperclip-on-my-ftp-server –