lftp is a sophisticated command line based file transfer program. Supported protocols include FTP, HTTP, SFTP, and FISH. It has a multithreaded design allowing you to issue and execute multiple commands simultaneously or in the background. It also features mirroring capabilities and will reconnect and continue transfers in the event of a disconnection. Also, if you quit the program while transfers are still in progress, it will switch to nohup mode and finish the transfers in the background. Additional protocols supported: FTP over HTTP proxy, HTTPS and FTP over SSL. There are lots of tunable parameters, including rate limitation, number of connections limitation and more.
| Tags | Internet FTP Web |
|---|---|
| Licenses | GPL |
| Operating Systems | POSIX |
| Implementation | C++ |
Recent releases


Changes: A core dump on the "mput -d" and "kill" commands was fixed. mkdir -p was implemented for the sftp protocol.


Changes: Dynamic commands are added in alphabetical order (as output by help). Pget -c was fixed. The "exit kill" command was fixed. The sleep time left in status is shown. A specific error message is recognized and the REST command is turned off. The ftp:prefer-epsv setting was added. Support was added for IPv6 scope for link-local addresses. Compilation on OpenBSD was fixed. Parsing was fixed for NT Unix-like listings where the hour is one digit.


Changes: Upload via FTPS in encrypted mode was fixed.


Changes: This release has a new FTP proxy auth type and a new ftp:trust-feat setting. The GPL version has changed.


Changes: Support was added for two-argument SITE UTIME and MFMT commands. A workaround was added for paramiko sftp server. Newer gnulib sources are included using gnulib-tool. A core dump when sending HTTP cookies was fixed. An assertion failure for FTP over HTTP proxy (CONNECT mode) was fixed. CWD tracking was fixed for FTPS. Time 12:00:00 is used instead of 12:00:30 when the time is unknown. sftp:use-full-path is now on by default. sftp du on non-existent files was fixed. Translations were updated.
- All comments
Recent commentsRe: Secure ftp
> Works nice, thanks. I do have a
> question. When using
> ssl:verify-certificate what is required
> for the certificate to be signed by a
> known Certificate Authority? I'm
> getting "Fatal: self-signed
> certificate". This may be a vsftpd
> problem because the only certificate I
> found which works is created by 'openssl
> req -new -x509 -nodes \
> -out vsftpd.pem -keyout vsftpd.pem'.
> However, I'm hoping to find a way around
> this. Thanks for any help.
Found a way around this, visit the vsftpd project to see my comments.
Also made some other discoveries which I hope help someone else.
lftp requires both ssl:cert-file and ssl:key-file in order to deliver it's certificate upon request.
Also, when using ssl:verify-certificate, it reuires nsCertType = server as a part of the server's certificate.
Secure ftp
Works nice, thanks. I do have a question. When using ssl:verify-certificate what is required for the certificate to be signed by a known Certificate Authority? I'm getting "Fatal: self-signed certificate". This may be a vsftpd problem because the only certificate I found which works is created by 'openssl req -new -x509 -nodes \
-out vsftpd.pem -keyout vsftpd.pem'. However, I'm hoping to find a way around this. Thanks for any help.
Best ftp client ever
Transferring the power of the shell to FTP. Couldn't get much better.
Re: Building Lftp for aix 5.2
> Good morning,
> I would like to share some items I had
> to fix building lftp in aix 5.2 env:
>
> Trying to configure and make lftp 3.0.3
> in aix 5.2 using vacpp 6.0
> and some libraries from aix toolbox for
> linux app:
> Readline-4.3.1
> openssl-0.9.6m-1
> I use this command:
> ./configure --with-ssl=/usr/linux
> --prefix=/usr/local5
>
> I got the following warning msg:
>
> configure: WARNING: term.h: present but
> cannot be compiled
> configure: WARNING: term.h: check for
> missing prerequisite headers?
> configure: WARNING: term.h: see the
> Autoconf documentation
> configure: WARNING: term.h: section
> "Present But Cannot Be
> Compiled"
> configure: WARNING: term.h: proceeding
> with the preprocessor's result
> configure: WARNING: term.h: in the
> future, the compiler will take
> precedence
> configure: WARNING: ##
> ------------------------------------ ##
> configure: WARNING: ## Report this to
> lftp-bugs@lftp.yar.ru ##
> configure: WARNING: ##
> ------------------------------------ ##
>
> I have also found three little problems
> in the sources:
> 1) in the file post-config.h (line 25)
> there is a comment
> // should be included before any real
> code.
> I have to change in
> /* should be included before any real
> code. */
> 2) in file src/getdate.c (if I remember
> well) there is a <cntrl L > char
> and
> I deleted it.
> 3) in file src/lftp_rl.c there is an
> external veriable declaration:
> extern int _rl_mark_modified_lines;
> never defined
>
> To try to fix I defined it in
> src/lftp_rl.h in this way:
> int _rl_mark_modified_lines=0;
>
> I'm not sure it is the right thing to do
> I would like to have an hint about this
> point.
>
> In any case after these 3 little
> modifications make all and make install
> run fine.
>
> The program runs fine if I run it from a
> telnet terminal window, if I use
> ssh in place of telnet to open the
> terminal the program hungs and there is
> no way to see the lftp
> prompt, I have to kill it and close the
> ssh connection (I know it is strange).
>
> A last thing, I got the CVS snapshot
> named 3.0.4rc2, and after the same 3
> fixes
> It worked fine in ssh windows too (!!).
>
> Any help to understand this apparently
> strange behaviour will be
> appreciated.
>
Can U please post a link to the binary?
I tried you tips but couldnt compile the code.
updated lftp po file for locale zh_TW
here is a link to that file:
http://rt.openfoundry.org/Foundry/Project/Download/Attachment/36034/25435/lftp.po