从我从Ubuntu 9.04到Debian 6.0,我一直有这个问题:
Filezilla将这样做:
Status: Connecting to xxxx:21... Status: Connection established, waiting for welcome message... Response: 220-Connected! Response: 220 xxx Home Server Command: USER xxx Response: 331 Password required for xxx Command: PASS ******** Response: 230-Welcome! Response: 230 User xxx logged in Command: SYST Response: 230 Ls oi a:2011-11-06 00:41:06 Command: FEAT Response: 215 UNIX Type: L8 Status: Connected Status: Retrieving directory listing... Command: PWD Response: 211-Features: Response: LANG en-US.UTF-8*;en-US Response: MDTM Response: MFMT Response: TVFS Response: UTF8 Response: MFF modify;UNIX.group;UNIX.mode; Response: MLST modify*;perm*;size*;type*;unique*;UNIX.group*;UNIX.mode*;UNIX.owner*; Response: REST STREAM Response: SIZE Response: 211 End Error: Failed to parse returned path. Error: Failed to retrieve directory listing Response: 257 "/" is the current directory Error: Connection closed by server
但是,如果我再次点击快速连接:
Status: Connecting to xxxx:21... Status: Connection established, waiting for welcome message... Response: 220-Connected! Response: 220 xxxx Home Server Command: USER xxxx Response: 331 Password required for xxxx Command: PASS ******** Response: 230-Welcome! Response: 230 User xxxx logged in Status: Connected Response: 230 Ls oi a:2011-11-06 00:48:32 Status: Retrieving directory listing... Command: PWD Response: 257 "/" is the current directory Status: Directory listing successful
哇,奇怪,我也看到,function不打印,如果我尝试与在线FTPtesting仪:
Status: Connecting to xxxx Status: Connected, waiting for welcome message Reply: 220-Connected! Reply: 220 xxxx Home Server Command: CLNT http://ftptest.net on behalf of yyyy Reply: 500 CLNT not understood Command: USER xxxx Reply: 331 Password required for xxxx Command: PASS ******** Reply: 230-Welcome! Reply: 230 User xxxx logged in Command: SYST Reply: 230 Ls oi a:2011-11-06 00:44:45 Command: FEAT Reply: 215 UNIX Type: L8 Command: PWD Reply: 211-Features: Reply: LANG en-US.UTF-8;en-US* Reply: MDTM Reply: MFMT Reply: TVFS Reply: UTF8 Reply: MFF modify;UNIX.group;UNIX.mode; Reply: MLST modify*;perm*;size*;type*;unique*;UNIX.group*;UNIX.mode*;UNIX.owner*; Reply: REST STREAM Reply: SIZE Reply: 211 End Error: No path found in PWD reply
我一直在configuration一段时间,并完全沉迷于从哪里去(这似乎与ProFTPd如何响应请求有关,但我还没有确定为什么随机吐出function列表) 。 :(有什么想法吗?ProFTPd是否在1.3.3中打破了自己?
proftpd.conf中:
LoadModule mod_sql.c LoadModule mod_sql_mysql.c #LoadModule mod_tls.c ServerName xxxx ServerType standalone ServerIdent on "xxxx Home Server" DeferWelcome on DefaultServer on AllowStoreRestart on AllowRetrieveRestart on RequireValidShell off PathDenyFilter "\\.ftp)|\\.ht)[az]+$" DefaultRoot ~ DenyFilter \*.*/ UseReverseDNS off IdentLookups off # Various messages. DisplayLogin /etc/proftpd/.welcome # Textfile to display on login DisplayConnect /etc/proftpd/.connect # Textfile to display on connection DisplayChdir /etc/proftpd/.firstchdir # Textfile to display on first changedir Port 21 PassivePorts 49152 65535 MaxInstances 15 MaxClientsPerHost 50 "Only %m connections per host allowed" MaxClients 100 "Only %m total simultanious logins allowed" MaxHostsPerUser 10 User nobody Group nogroup Umask 000 ScoreboardFile /var/log/scoreboard Include /etc/proftpd/sql.conf <Global> DeferWelcome on </Global>
sql.conf:
# Set up authentication via SQL # =========== AuthOrder mod_sql.c SQLAuthTypes Backend SQLConnectInfo proftpd_admin@localhost user pass SQLUserInfo usertable userid passwd uid gid homedir shell SQLGroupInfo grouptable groupname gid members SQLUserWhereClause "disabled=0 and (NOW()<=expiration or expiration=-1 or expiration=0)" # Log the user logging in SQLLog PASS counter SQLNamedQuery counter UPDATE "lastlogin=now(), count=count+1 WHERE userid='%u'" usertable # logout log SQLLog EXIT time_logout SQLNamedQuery time_logout UPDATE "lastlogout=now() WHERE userid='%u'" usertable # display last login time when PASS command is given SQLNamedQuery login_time SELECT "lastlogin from usertable where userid='%u'" SQLShowInfo PASS "230" "Last login was: %{login_time}" # xfer Log in mysql SQLLog RETR,STOR transfer1 SQLNamedQuery transfer1 INSERT "'%u', '%f', '%b', '%h', '%a', '%m', '%T', now(), 'c', NULL" xfer_stat SQLLOG ERR_RETR,ERR_STOR transfer2 SQLNamedQuery transfer2 INSERT "'%u', '%f', '%b', '%h', '%a', '%m', '%T', now(), 'i', NULL" xfer_stat
ProFTPd v1.3.3中有一个多行输出的bug 。
这行输出不应该在那里,或者至less不应该看起来像这样:
Reply: 230 Ls oi a:2011-11-06 00:44:45
它被解释为'SYST'的输出,所以当它发出'FEAT'命令时,正在读'SYST'输出,当'PWD'发出时,正在读取一些特征响应。
第二个连接不要求SYST和FEAT,所以时间似乎更宽容。
互联网知道另一个谁有这个问题的人 (与字母组合的缺失!),他们的解决方法是:
尝试从sql.conf文件中注释SQLShowInfo行。
这个Debian的bug说这个问题已经在1.3.4上游预发布版本中解决了,并且build议你可能不得不使用一个backport来获得正确的行为,因为它不太可能被认为是关键的function或安全性,因此需要一个稳定的补丁。