问题描述
我有一个配置了 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 (将#修改为@)