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, BitTorrent protocol. IPv6 is fully supported. There are lots of tunable parameters, including rate limitation, number of connections limitation and more.
| Tags | Internet FTP http client SFTP Mirroring Bittorrent IPv6 |
|---|---|
| Licenses | GPL |
| Operating Systems | POSIX |
| Implementation | C++ |
Recent releases


Release Notes: The sftp backend was improved with symlink info retrieving (readlink). A new cls option -a was added for showing dot files. A new cmd:cls-exact-time setting was added. A NULL dereference when torrent:use-dht is off was fixed. A torrent issue where info_hash contained a NUL character was fixed.


Release Notes: User/group name lookup performance was fixed.


Release Notes: Support for the TLS SNI extension, UDP tracker support, a cls -a option for showing dot files, and a new cmd:show-status setting.


Release Notes: Increased CPU usage when there are many cached directories was fixed along with a configure problem with the included regex.


Release Notes: New cmd:at-background and cmd:at-terminate settings were added. Plus sign handling in URLs was fixed. Uninstall was fixed to also remove modules.
Recent comments
30 Dec 2010 20:52
laupi's comment is pretty close - I haven't encountered a better command-line ftp/http/... client
30 Dec 2006 19:40
Re: 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.
23 Nov 2006 21:46
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.
27 Jan 2006 07:47
Best ftp client ever
Transferring the power of the shell to FTP. Couldn't get much better.
26 Jan 2006 11:33
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
> 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.