tôi đã cố gắng sử dụng FTP với chế độ thụ động: Lỗi
ruby FTP chế độ thụ động lỗi
require 'net/ftp'
ftp = Net::FTP.new
ftp.passive = true
ftp.connect('mydomain.com')
ftp.login
filenames = ftp.nlst
Nhưng đã có:
Errno::ETIMEDOUT: Connection timed out - connect(2)
Mặc dù với chế độ hoạt động nó hoạt động tốt!
Tôi sử dụng ruby 1.9.3. Khi tôi đặt debuge chế độ:
ftp.debug_mode = true
tôi thấy:
**ftp.connect('mydomain.com')**
connect: mydomain.com, 21
get: 220---------- Welcome to Pure-FTPd [privsep] ----------
get: 220-You are user number 3 of 50 allowed.
get: 220-Local time is now 11:43. Server port: 21.
get: 220-IPv6 connections are also welcome on this server.
get: 220 You will be disconnected after 15 minutes of inactivity.
=> nil
irb(main):103:0> ftp.login
put: USER anonymous
get: 230 Anonymous user logged in
put: TYPE I
get: 200 TYPE is now 8-bit binary
=> true
irb(main):104:0> filenames = ftp.nlst
put: TYPE A
get: 200 TYPE is now ASCII
put: PASV
get: 227 Entering Passive Mode (1,27,13,19,17,15)
put: TYPE I
get: 200 TYPE is now 8-bit binary
Errno::ETIMEDOUT: Connection timed out - connect(2)
Ngoài ra tôi đã phát hiện ra, mà trong chức năng transfercmd
từ Net::FTP
máy chủ được sử dụng, khác với địa chỉ ip tên miền của tôi! Có lẽ nó là một địa chỉ IP riêng? Có gì sai ở đây?
Bạn có chắc chắn máy chủ của mình cho phép chế độ thụ động không? Có vẻ như các cổng đã bị đóng –
Bạn đã kiểm tra thời tiết máy chủ của bạn có cung cấp khả năng kết nối chế độ thụ động không? – xyz
Có, máy chủ của tôi cung cấp khả năng kết nối chế độ thụ động. Tôi đã kiểm tra bằng ứng dụng FTP. – Vasilina