我试图在Windows上使用Filezilla连接到一个运行vsftpd 2.3.5的linux ec2实例(也试过2.3.2,结果相同),但是服务器一直以500 OOPS:vsf_sysutil_bind作为响应,然后出现一个不同的次级错误在我是否使用主动或被动模式(见下面的日志)。
这个设置几天前工作正常。 据我所知,服务器的configuration没有任何改变,但现在连接后立即抛出。 我已经重新启动vsftpd,但还没有重新启动服务器本身。 什么可能导致这种行为,为什么会突然出现,我该如何解决?
如果我使用主动模式,客户端日志如下:
... Response: 230 Login successful. Command: OPTS UTF8 ON Response: 200 Always in UTF8 mode. Status: Connected Status: Retrieving directory listing... Command: PWD Response: 257 "/" Command: TYPE I Response: 200 Switching to Binary mode. Command: PORT 192,168,1,101,250,178 Response: 200 PORT command successful. Consider using PASV. Command: LIST Response: 500 OOPS: vsf_sysutil_bind Error: Failed to retrieve directory listing Response: 500 OOPS: priv_sock_get_cmd Error: Connection closed by server
如果我使用被动模式连接,客户端日志有点不同:
.... Response: 230 Login successful. Command: SYST Response: 215 UNIX Type: L8 Command: FEAT Response: 211-Features: Response: EPRT Response: EPSV Response: MDTM Response: PASV Response: REST STREAM Response: SIZE Response: TVFS Response: UTF8 Response: 211 End Command: OPTS UTF8 ON Response: 200 Always in UTF8 mode. Status: Connected Status: Retrieving directory listing... Command: PWD Response: 257 "/" Command: TYPE I Response: 200 Switching to Binary mode. Command: PASV Response: 500 OOPS: vsf_sysutil_bind Command: PORT 192,168,1,101,249,253 Response: 500 OOPS: priv_sock_get_int Error: Failed to retrieve directory listing Error: Connection closed by server
无论哪种方式,vsftpd日志只是说:
Tue Dec 27 23:32:18 2011 [pid 19875] CONNECT: Client "XXX.XXX.XXX.XXX" Tue Dec 27 23:32:18 2011 [pid 19874] [username] OK LOGIN: Client "XXX.XXX.XXX.XXX"
我的vsftpd.conf是:
listen=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES idle_session_timeout=600 data_connection_timeout=900 ftpd_banner=Welcome to FTP chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd 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 pasv_enable=YES pasv_promiscuous=YES pasv_min_port=12000 pasv_max_port=12100 pasv_address=XXX.XXX.XXX.XXX port_enable=YES port_promiscuous=YES user_config_dir=/etc/vsftpd/users
我最终摆脱了vsftpd,并切换到proftd ,在主动和被动模式下工作正常,没有任何改变服务器的防火墙设置。 我仍然不确定是什么原因导致了这个问题,但是如果发生在你身上,FTP服务器软件的改变可能就是答案。
过去几天我遇到了这个问题,起初我跟着安装proftpd的一个答案的路线。 这没有按照我所希望的平移,所以我尝试了纯粹的ftpd,失败了,我回到vsftpd,为我解决了这个问题是增加被动端口的数量,我以前只允许范围10090:10100,这只有10个端口。
我已经允许更大范围的vsftpd的端口,它已经解决了我的问题,当我一次上传10个文件的长列表文件时,我不会再遇到这个错误。
希望它能帮助下次遇到这个问题的任何人。
这看起来像一个防火墙的问题。你可以仔细检查,没有其他的端口20/21运行,被动端口允许通过?