Net::ReadTimeout with #<Socket:fd 28> 尝试从配置了 VSFTPD 的 FTP 服务器下载文件时

问题描述

我有一个配置了 VSFTPD 的 FTP 服务器,我可以通过 FileZilla 访问它并下载文件,但我不能从我的 Rails 服务器上下载。

当我尝试从控制台导轨连接到 FTP 服务器时,我有 230 登录成功


var sendSafely = new SendSafely("https://host.sendsafely.com/","apikey","apisecret");

sendSafely.verifyCredentials(function(email)  {
    console.log("Connected to SendSafely as user "  +  email);
});

我可以用 ftp = Net::FTP.new("XX.XX.XXX.XX",ssl: false,username: "username",password: "password") => #<Net::FTP:0x000055fba26152a8 @bare_sock=#<Socket:fd 27>,@binary=true,@debug_mode=false,@host="XX.XX.XXX.X",@last_response="200 Switching to Binary mode.\n",@last_response_code="200",@logged_in=true,@mon_count=0,@mon_mutex=#<Thread::Mutex:0x000055fba2615258>,@mon_mutex_owner_object_id=47269624719700,@mon_owner=nil,@open_timeout=nil,@passive=true,@private_data_connection=false,@read_timeout=60,@resume=false,@sock=#<Net::FTP::BufferedSocket io=#<Socket:0x000055fba2615190>>,@ssl_context=nil,@ssl_handshake_timeout=nil,@welcome="230 Login successful.\n">

进入一个目录

但我既不能用 ftp.chdir('dir/') 下载文件,也不能执行 ftp.getbinaryfile

ftp.ls

这是我的pry(main)> ftp.getbinaryfile(file_name,file,1_024) put: PASV Net::ReadTimeout: Net::ReadTimeout with #<Socket:fd 28> from /usr/local/lib/ruby/2.6.0/net/protocol.rb:217:in `rbuf_fill' pry(main)> ftp.ls put: TYPE A get: 200 Switching to ASCII mode. put: PASV put: TYPE I Net::ReadTimeout: Net::ReadTimeout with #<Socket:fd 29> from /usr/local/lib/ruby/2.6.0/net/protocol.rb:217:in `rbuf_fill'

/etc/vsftpd.conf

我已经尝试连接 listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=YES download_enable=YES force_local_data_ssl=NO force_local_logins_ssl=NO 增加 read_timeout、禁用 SSL、更新 FTP 上的证书......

任何帮助或想法将不胜感激:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)