2

问题:我正在尝试创建公共 FTP 站点的本地镜像。当我lftp用来完成这项工作时,它会毫无问题地创建一个镜像,但是当我几天后尝试更新镜像时,由于卡在几个文件上,它变得非常慢。

运行lftp -d我可以看到对文件lftp发出了几个请求RETR,但是这些请求会产生几条**** Timeout - reconnecting消息,大约 2-3 分钟后我看到了

<--- 150 为 {filename removed} 打开 BINARY 模式数据连接。`

在最后一个命令之后,文件成功下载,lftp 继续进行。

从手册中我了解到 BINARY 是 的默认模式lftp,但不知何故,它似​​乎不适用于早期请求。有人可以建议我如何强制 lftp 始终打开 BINARY 模式数据连接以下载所有文件吗?

这是一个MWE:

``lftp -d -u anonymous,anonymous -c "open {url}; get {file}"``

和回应lftp -d

---- Connecting to {url} ({IP}) port 21
<--- 220 (vsFTPd 3.0.3)                          
---> FEAT
<--- 211-Features:                                     
<---  EPRT
<---  EPSV
<---  MDTM
<---  PASV
<---  REST STREAM
<---  SIZE
<---  TVFS
<--- 211 End
---> USER anonymous
<--- 331 Please specify the password.            
---> PASS anonymous
<--- 230 Login successful.                                      
---> TYPE I
<--- 200 Switching to Binary mode.                         
---> SIZE {file}
<--- 213 3321                                              
---> MDTM {file}
--- 213 20160318190446                                         
---> PASV
<--- 227 Entering Passive Mode ({IP}).        
---- Connecting data socket to ({IP}) port 55380
---- Data connection established                                  
---> RETR {file}
**** Timeout - reconnecting                                     
---- Closing data socket
---- Closing control socket
4

2 回答 2

3

lftp 默认对所有文件传输使用二进制模式,对目录列表使用 ascii 模式。所以二进制模式在这里应该不是问题。

也许您有一个微妙的连接问题,有时将 net:socket-maxseg 设置为较低的值(例如 500)会有所帮助。

于 2016-04-18T11:00:51.127 回答
1

二进制模式的 ftp 命令是在文件bin之前使用该命令get

cd /direc/tory; bin; get file.xml

问题是我看到

---> TYPE I
<--- 200 Switching to Binary mode.                         

在你的输出中,所以你已经处于二进制模式。我想知道你是否有不同的问题?我还看到您使用的是被动PASV模式

您还有其他线索吗,可能来自pingnetstat

于 2016-04-17T02:27:29.823 回答