linux lftp 登陆卡死在 Connecting...怎么解决?

2015-01-30 09:38:31 +08:00
 lx19891024
怎么传图?。。。。我大概手打一下

lftp -u asd,gggf ftp://1.1.1.1 #不存在的用户名和ip
`ls' at 0 [Connecting...] #输入完则会卡在这里

如图所示:随便用户名和地址,肯定都是错的,然后登陆进去按照网上搜的去掉什么 ssl,但是还是不行,就卡在这儿。

lftp是个非常好用的工具,支持ftp,sftp..等,有丰富的命令,我想编程人员的初衷肯定不会有这么浅显的bug存在,一定有可以配置的参数,但是苦恼于找不到,所以求助大家。

解决方案我猜想的话有两个:

1。是设置操作超时,比如这个连接超过1分钟,则退出lftp。但是观察所有配置,只有个set net:timeout 1 这个我试了下,还是不行。这个大概的意思好像是你登陆成功了,不做操作,1分钟退出,和我想要的执行命令卡在那儿超时是两回事

2。是解决这个[Connecting...],出现Delaying before reconnect xx 就好办了,表示开始重新连接,这时候我设置重连次数和时间即可,但是跳不到这一环节里,就在第一步就卡住了。望大神解答
9156 次点击
所在节点    问与答
6 条回复
Havee
2015-01-30 09:48:17 +08:00
这是我的配置,你参考参考

#debug 3
set xfer:clobber on
set ftp:charset "gbk"
set sftp:charset "UTF-8"
set file:charset "UTF-8"
alias gbk "set ftp:charset gbk; set file:charset UTF-8"
alias utf8 "set ftp:charset UTF-8; set file:charset UTF-8"
alias passive "set ftp:passive-mode"
set ftp:ssl-auth TLS-P
set ftp:ssl-protect-data yes
set ftp:use-feat no
set ssl:verify-certificate no
set ftp:ssl-allow no
set ftp:ssl-force no
set ftp:passive-mode yes
set pget:default-n 1
sftp:connect-program "ssh -a -x -i /path/key"
#set persist-retries 5
set reconnect-interval-base 999
set reconnect-interval-multiplier 1
#set net:limit-rate 61440,1024000
set prompt "\[\e[1;36m\]lftp\[\e[m\] \[\e[0;32m\]\S\? \u\@\h:\w>\[\e[m\] "
set ftp:list-empty-ok yes
ETiV
2015-01-30 10:00:52 +08:00
先确定ftp服务器在别的地儿能不能连的上

再推荐个FTP工具,ncftp套件

上传用ncftpput,下载用ncftpget
lx19891024
2015-01-30 10:02:26 +08:00
@Havee 首先谢谢回答,但是我打了你写的所有配置,然后再ls的时候,还是出现
`ls' at 0 [Connecting...]
不知道你是否像我一样试过随便写一个ip和用户名,然后ls会不会卡住呢。。
lx19891024
2015-01-30 10:04:44 +08:00
@ETiV 嗯?谢谢回答,现在就是不是ftp服务器的问题,我随便写一个ip和用户名。。连接就会卡死,这样导致我的程序在路由正常的时候能正常运作,而一旦路由挂程序会一直卡在那儿不退出
lx19891024
2015-01-30 10:06:34 +08:00
完善一下过程,少打了一行。。

lftp -u asd,gggf ftp://1.1.1.1 #不存在的用户名和ip
ls
`ls' at 0 [Connecting...] #输入完则会卡在这里

其实不管是ls或是cd命令,都会这样卡主
lx19891024
2015-01-30 10:55:43 +08:00
@Havee 解决了,谢谢,唉2了。。就是set net:timeout 1就是连接等待时长,之前我试了怎么不行呢。。。debug3非常有用。。
完整的配置如下:
set net:timeout 1;set net:max-retries 2;set net:reconnect-interval-base 5;set net:reconnect-interval-multiplier 1;
set net:max-retries 2;也非常有用,设置最大重连次数,程序就不会卡住无脑连了。
写出来也送给出现问题的朋友们~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/166692

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX