NFTP is a text-mode ftp client for (in alphabetical order):
BeOS (Intel R4 and up), Digital Unix (Alpha), FreeBSD (Intel),
Linux (Intel, SPARC), OS/2,
Solaris (SPARC and Intel), Windows 95/NT.
Here `text-mode' means that it runs in fullscreen mode or
text window -- Command-line
session on OS/2, Command Prompt on Windows 95/NT,
console or xterm on Unix, Terminal on BeOS. However, with version 1.50
the quasi-GUI version has appeared for OS/2. It looks much like textmode
version, but utilizes native GUI menu, some dialog boxes, can be resized
freely etc. This does not mean of course that textmode version will be
abandoned. X11 version (using Xlib) appeared in version 1.51.
One of the main design concepts of NFTP
is speed and effectiveness of text-mode keyboard interface.
Everything can be done without mouse!
To clarify things a little, NFTP is not based on
ncftp; neither on user interface
nor on source code. The code is written from scratch (I have started
the project in 1994, but NFTP was OS/2-only until Feb 1998). Some ideas
might seem to be common but still such ones are floating in the air,
every decent FTP client should support things like directory caching
and restarting transfers. Furthermore, NFTP user interface is quite
different from ncftp's. Name "NFTP" comes from somewhat ugly
"New FTP client". Personally, I think NFTP is one of the most advanced FTP clients
in the Unix world (although you might disagree with my opinion, of course).
Under Windows and OS/2, it stands aside as almost all FTP clients for
these systems are GUI-based (unlike NFTP). While GUI offers prettiness
and ease of use for novices, textmode interface gives speed without
sacrificing power (including speed of use when you learn key combinations).
Besides, textmode interface makes possible the same interface on a variety
of systems, including Unix.
- Restarting interrupted transfers
- NFTP will automatically restart interrupted transfers. The decision
on whether to continue, skip or overwrite existing file is based on
file's timestamp and size. Since version 1.60, NFTP can also restart
broken uploads. Bugs and limitations: not all FTP servers support resume;
NFTP does not yet use this feature with HTTP proxies.
- NFTP reconnects to server as needed -- you don't have to worry
about timeouts, dial-up link drop etc. And if server is busy and
does not allow more logins, NFTP will make a pause and try again --
until it succeeds. Furthermore, NFTP will monitor data and control
connections and when nothing comes down during specified periods
of time, automatic reconnection will be made. Timeouts for this
feature can be set in nftp.ini.
- Secure authentication (PKFA)
- In many organizations FTP user accounts are frowned upon. The reason
is that FTP protocol does not provide a way to pass login information
over network in secure manner. When you login your password travels
over line in clear, unencrypted form and can easily intercepted. When
security concerns are high enough, this is not acceptable. We have
developed an extension to FTP protocol which encrypts passwords and
eliminates this problem. Such solution of course requires installation
of modified FTP server; two ones are provided (FreeBSD ftpd and wu-ftpd).
Read more about secure authentication for
- Versatile firewall/proxy support
- NFTP works through most popular types of proxies/firewalls, including
DeleGate, WinGate, Squid, Netscape Proxy and others. Passive mode is also
supported. Proxy can be switched on/off on-the-fly (no need to restart the
program). SOCKS works on OS/2 and Windows through system-wide layers.
Read more about firewalling support in NFTP.
- Support for many servers
- NFTP can work with many FTP servers running on various machines.
Supported types include Unix, IBM OS/2, Neologic/Hethmon FTPd, Windows NT,
Unisys Series A mainframes, MacOS Peter's FTPD, AS/400 servers,
VMS (support is limited), MVS or OS/390 (not tested well). You can
also set an option in nftp.ini to force NFTP to try new FTP protocol
extensions which are now in the state of
Internet draft. Very few
servers support them yet, but it is expected that this feature will
be very valuable in the near future because it can eliminate many
problems caused by poor and incompatible with each other listing formats.
- High transfer speed
- The speed at which NFTP does transfers is only limited by your
connection and operating system design. On Unix NFTP can fully
saturate 100 MBit/sec Ethernet if disk drives on server and client
are quick enough. This is one of the fastest ways to send huge files
over LAN. Why settle for less?
- Built-in FTP Search
- NFTP has built-in FTP Search
interface. This has several advantages
over typical WWW gateway: NFTP can query several servers and display
results in one panel; search results can be sorted by various criteria
without the need to reload search page. The search results are kept until
next search even if you exit NFTP. You can add search servers.
- NFTP has an ability to create exact copies of directory trees
via FTP. Copying can be done in any direction (remote -> local or
local -> remote). You can also change mirroring behaviour with two
options: whether to delete files from the copy which are not present
in the original, and whether to descend into subdirectories. Together
with scripting this feature can be used to do automatic mirroring.
NFTP error recovery capabilities make it excellent directory
- Pausing/restarting/skipping transfers
- When NFTP is doing transfer, you can pause it, skip files being
transferred, or force reconnection at any time. The latter is especially
useful if link was dropped during transfer and connection to server
need to be reinitialized (on some operating systems TCP/IP stack does
not tell applications when link is dropped).
- Sending arbitrary commands to server
- Even if NFTP does not have a command line per se, you still can
send any command to server. Just press Shift-Q.
- Enabling/disabling symlink resolving
- FTP servers under Unix can use powerful filesystem feature called
symbolic links (or symlinks). These are special kind of files
pointing to other files and directories. FTP protocol does not allow
to determine directly whether symlink points to file or directory,
and therefore working with them could be rather cumbersome. NFTP has an
option to tell server to resolve them, i.e. show attributes
(type, size, date) of files/directories they point to. This allows to
work with them as regular files/directories. And if you need to you can
always disable this feature and see symlinks as-is.
- Preserving timestamps/permissions
- When downloading or uploading, NFTP will preserve all information
it knows about the file, including time of last modification and
Unix access permissions. Your Perl scripts will continue to be
executable when transferred from one machine to another.
On upload this requires special FTP server capabilities (not all servers
- Scrollable control connection history
- Hit space and you'll see what has happened during entire session:
client commands, server responses, error messages. They are colored
to distinguish them from each other. You can scroll control connection
history in both vertical and horizontal directions.
- Download invisible files by their names
- Someone gave you an URL but server does not allow to retrieve
directory listing and you can't click on the file to download?
Hit Shift-G and enter file name. NFTP will download it.
User interface features
- Multi-language user interface
- You can select one of the 19 languages for NFTP user interface:
Brazilian Portuguese, Bulgarian, Chinese, Czech,
Danish, Dutch, English, Finnish, French, German, Hungarian, Italian,
Japanese, Korean, Norwegian, Polish, Russian, Spanish, Swedish, Ukrainian
(Unix versions do not work with Japanese and Chinese translations yet).
Translated are NFTP menus, messages and online help; documentation is
only available in English. Not all languages are supported on all
operating systems; see list for details and screenshots.
If your language is
not listed, you might consider translating NFTP
user interface. All the work was done by volunteers.
Some of them are doing software translations on a regular basis
or even run their companies
(HH Translations/CE Documentation).
- Two panels in Norton Commander(TM) style
- This is a new feature; before version 1.60 NFTP only had single-panel
interface. The old interface is still available (Ctrl-W switches between
them). You can use arbitrary window size and panels will cleverly scale
up or down (except Windows95/98 where operating system limits it to 80x25).
- CUA-style menu in text mode
- Even in console versions NFTP has industry standard, user-friendly
menus in Common User Access (CUA) style. They can be navigated using
keyboard or mouse (when mouse is supported).
- Mouse support
- NFTP supports mouse (except in BeOS version). The mouse support can
be turned off.
- Built-in help
- Even if most things are intuitive in NFTP built-in help is only one key
away. Press F1 and context-sensitive help screen is instantly displayed.
- Customizable colours
- NFTP uses colours for the various part of the interface. If you
don't like them, change them! Right now there's no utility available
for that, and you have to edit colours in nftp.ini by hand. NFTP can
also run in monochrome mode. There aren't many monochrome monitors
out there, but this can be useful even on colour one: some telnet
emulators are braindead enough to not to display colours, and you can't
see anything in NFTP started on remote machine. Solution: run "nftp -m".
Works even on the most dumb ones available out there.
- Highly customizable look and feel
- If you don't like some aspects of NFTP user interface, you can
customize it to your heart's content. Change colours and key combinations,
hide upper menu bar,
dedicate one of two lines to top/bottom status bars, set startup prompt
(menu, login, bookmarks, history), change pseudographics style
(useful on Unix), enable lynx-like navigation keys (left/right
arrows used to leave/enter directories), enable/disable mouse support,
save window size and position (not all platforms support this),
turn off activating menu entries when mouse pointer floats over them,
enable/disable various confirmations (logoff, exit, re-read, walking
directory tree), set 'framed' or 'open' panel look.
You can even turn off shadows hanging off dialog boxes! All these
features are controlled by options in nftp.ini.
- Progress indicator: even in the titlebar or process name
- NFTP has an informative and nice-looking progress indicator.
It displays the total number of files/bytes to process, number of
files/bytes already processed, progress bars for entire transfer and
current file. Exhaustive collection of times is also shown: elapsed,
estimated total, estimated left for both entire transfer and current
file. Also displayed are average transfer rate, number of seconds
passed since last network packet was received/sent, names of remote
and local files.
But not only NFTP has such a great progress panel,
it also changes its window title or process name (on Unix) to display
percentage and transfer rate. Handy when NFTP is run minimized or in the
background. On Unix type "ps" to list running processes and see the
progress. This feature is not available on BeOS.
- End of transfer is indicated by bell
- No need to constantly watch NFTP window: the bell will ring when
transfer is finished. You can also program NFTP to run an
arbitrary command (send mail, play sound etc.) at the end of the
- File/directory management on local and remote
- NFTP also serves as basic filemanager for local and remote files.
You can delete and rename files and directories, create new directories,
change Unix access rights. The file list can be sorted by different
criteria (name, date/time, size). You can select/deselect entries
by mask (using *, ? globbing), invert selection, select/deselect all.
While dedicated filemanager is definitely
better than NFTP for such tasks, the ability to do basic tasks without
launching separate application is very useful.
- Editing files on remote server
- Set external viewer in NFTP to your favourite editor and you're
able to edit remote files! If local temporary copy is modified, NFTP
will ask you whether you want to upload it back to server.
- Remote directory size display and option to compute it
- NFTP offers an option to compute total size of the remote directory
(with all subdirectories). The computed size is visible directly
in the file panel. Very useful to see how many bytes you are going to fetch.
- Built-in file viewer with search capability
- Viewing remote and local files is nearly instant: hit F3 or Ctrl-V.
You can search the contents of the file being viewed. Viewed files are
cached during one session: no need to re-download them if you want to
view them again! NFTP can also call external viewer (Shift-V) which
can be set in nftp.ini.
- Bookmark system with folders
- Organize your bookmarks (site--directory--login combinations)
into the tree-like structure (currently, only one level of nesting
is allowed). Easy shortcuts allow to reorder entries and move them
between folders -- no need to mouse around!
- Site/directory history
- NFTP records all places you visit. Press F2 and you see the list of
sites (it is searchable and displays the date last time you been there),
find your site and press Enter. NFTP displays all directories visited on
it! Drill down to the farthest corners of the Internet! Also imagine the
situation: someone sent you an FTP URL, you delete that e-mail message,
login to site then... bang! power was turned off and where is the URL
you forgot to record? Answer: open NFTP history.
- One-key login to URL in the clipboard
- Exchanging URLs between NFTP and other applications is very
easy: copy URL to clipboard, then press Shift-L in NFTP: the
URL from clipboard will automatically appear in the input field.
To copy URL from NFTP:
press Shift-I and you be presented an option to copy to the clipboard
URL of the current file on remote. This option is not available
in Unix console and BeOS versions.
- Availability on various platforms
- NFTP runs on many operating systems; on some of them there are even
several versions: on Unix, it's console and X11; on OS/2, it's console
(textmode), quasi-GUI, X11 and terminal version (to be run under xterm).
All versions have consistent user interface. Current list of supported
operating systems and hardware architectures: BeOS (Intel R4 and up),
Digital Unix (Alpha), FreeBSD (Intel), Linux (Intel, Alpha, SPARC), OS/2,
Solaris (SPARC and Intel), Windows 95/98/NT (Intel). When possible,
statically linked executables for Unixes are also provided as a fallback.
- Command line options
- Launch NFTP and start transfer immediately! Or login into the
URL specified on the command line. Works just like wget except you
have to give an option "-g" (wget can also download via HTTP though while
After download NFTP can stay connected, so you could examine the site
whether it has interesting stuff. You can also launch NFTP with
instant search in bookmarks or history ("nftp -h puppy" will
locate ftp.happypuppy.com in the history and display all directories you
ever visited on it). NFTP also has an option to select user interface
language from the command line.
- Basic scripting capabilities
- You can use NFTP for some automated transfers. Since NFTP is primarily
interactive client, this feature is not very advanced yet many people
find it useful. Read more about scripting support
- Password caching
- If your machine is secure enough, you can tell NFTP to store
your passwords in scrambled or plaintext form. If you don't trust
other people accessing your computer, NFTP can encrypt your passwords
(you will have to provide a key phrase do decode passwords when
NFTP is started). Thus you will be able to quickly login into
sites (even from bookmark and history entries) without entering
passwords. NFTP allows to add, change and delete passwords from
your cache file. Read more about
password caching in NFTP.
- Great compatibility with many types of terminal emulators
- If you are running NFTP on Unix machine via telnet emulator,
you will value the excellent compatibility of NFTP with various
terminals. It works when many screen-oriented Unix programs
(pine, joe, lynx) give up, display horrible mess or do not recognize
- Comprehensive logging
- When NFTP downloads or uploads file, it writes its name, location,
size and transfer speed together with timestamp into the file nftp.fls,
located in the installation directory on Windows and OS/2 and in ~/.nftp
on Unix and BeOS. This is very handy to find out where did you fetch that
precious file several years ago which you just accidentally deleted. NFTP
users have written tools to
gather statistics on this log file.
- Saving directory listing into file
- You can write directory listing into the file to examine it
later. Sometimes this is useful (especially with looong list of
- Exporting list of marked files into the file
- After you have walked a lot of places on an interesting server
and marked a lot of interesting files you can save their URLs into
the file to send to a friend or just to be on the safe side of
the hangs and crashes.
- Starting external programs for downloading marked files
- Not only NFTP can write URL lists but it can also automatically
call external program and pass this file as an argument to it!
In other words, you can start wget or similar tool on marked files.
Default configuration is set up to use wget (you have to install wget
if you want to use it; wget is not supplied with NFTP).
- Can optimize display for slow connections when run on remote machine
- If you are running NFTP on Unix machine which is far away and link
to it is very slow, you can speed up operations by setting option in nftp.ini
or giving command-line parameter "-s". NFTP will be less verbose when
displaying things. With this option set you can comfortably use it even
on lossy links via ssh (secure shell). Even if you thought that only
straight command-line tools would work reasonably.
- Can run in the background (Unix)
- On Unix systems NFTP can be minimized with Ctrl-Z and run in the
background (type "bg" and press Enter after Ctrl-Z): there's no need to dedicate
special window or telnet session for it. You can return to NFTP by
entering "fg" (unless you have disconnected from the Unix machine).
- Working with file descriptions
- When server directory contains file named 00index.txt and similar,
NFTP will automatically fetch it and display file descriptions alongside
names (in the single-panel mode). You can even force NFTP to
write descriptions into file when downloading (set an option in nftp.ini).
NFTP home page //