NFTP : New File Transfer Protocol Client
Copyright (C) 1994-1999 Sergey Ayukov

Warning! This manual is not up-to-date! The home page of NFTP is
New versions are also available by FTP:


  1. Introduction
  2. Installation
  3. Quick start
  4. Usage
  5. Keyboard commands summary
  6. Frequently Asked Questions
  7. Acknowledgements
  8. Registration
  9. Contacting the author
  10. Version history


NFTP is a text-mode ftp client for OS/2, Windows 95/NT, BeOS, Linux, FreeBSD, Solaris. It has a number of quite useful enhancements:

The biggest advantage (and one of the main design concepts) of NFTP is the speed and effectiveness of its text-mode keyboard user interface.


Installation under OS/2

  1. Requirements are
  2. Installation. Unpack archive nftp*.zip into some directory. You can also unpack it into the directory where it will reside. Run install.cmd. After answering some questions necessary files will be copied to the directory you specified and your WPS desktop will contain an NFTP folder. Inside it you'll find "NFTP" (executable), "NFTP Manual" and other icons (most of which are self-explanatory). You have probably already done that, since you're reading the "NFTP Manual".

    If you want to install NFTP manually (without install.cmd), copy all files into the directory of your choice (eg, "d:\apps\tcpip\nftp"), rename nftp.i to nftp.ini, load it into your favourite ASCII text editor (eg, TEDIT shipped with Warp) and insert your e-mail address (it will be used as a password for anonymous logins) at the appropriate place:

    Then decide where you will keep your bookmarks and transfer history and set corresponding variables accordingly. If you like to launch programs from the desktop, create program object for NFTP. Rename the supplied file to nftp.bmk and put it into the directory which you've specified in nftp.ini. BMKCONV.CMD can be used to convert old bookmarks file (nftp.mrk) into new format (nftp.bmk).

    install.cmd creates a Workplace shell object to run NFTP. This feature can be useful even you are a die-hard command-line user (see below). NFTP can run in a fullscreen session or in a VIO window. The installation script sets it to run in a window which will not be closed automatically after exit -- this can help to diagnose problems. You may change the session setting to "Close window on exit" once everything works as expected.

    If somehow the WPS NFTP folder gets lost, you can create it again with makeobjs.cmd.

Installation under Windows 95/NT

  1. Requirements NFTP for Win32 requires either Windows 95 OSR2, Windows 98 or Windows NT 4.0. I did not test it on Windows NT 3.5x, but it should work. If you're still using original Windows 95 (not OSR2), you have to download WINSOCK2 from (1.4MB).
  2. Installation If you don't want to use installation program, download package (number will vary with NFTP version).

    1) Choose directory for NFTP and unpack files there. Do not use DOS PKUNZIP; it will destroy long filenames. Either get Info-Zip's Unzip which is free ( or buy WinZip (

    2) If you want to use language other than English, edit NFTP.BAT (instructions are inside).

    3) Create entry in "Start" menu for NFTP.BAT or icon on the desktop (refer to your Windows manual if you don't know how to do it). IMPORTANT: under Win95/98, do not use shortcut to NFTP.EXE, always use NFTP.BAT!

    5) If you are a developer and using RSXNT: NFTP requires RSXNT 1.41.

    You can now run NFTP. To customize various aspects of NFTP operation, edit nftp.ini (your should type your e-mail address in nftp.ini to prevent warnings when NFTP is started).

  3. Deinstallation NFTP does not alter your registry, so deinstallation is quite simple: remove NFTP directory and program icons if you have created them, that's all, or use supplied deinstallation program.
  4. Updating previous or broken installation Just unpack new version over old one. Keep old versions of nftp.ini and nftp.bmk if they are OK; NFTP will update nftp.ini automatically.

Installation under Unix

see install.txt


After installation, run nftp.cmd (from the command line or WPS object). If you're launching NFTP from the WPS object created by the installation script you will be asked to enter "FTP server to log in"; this time, simply press ENTER.

You should see a list of bookmark folders on the screen. Use cursor keys to select one of them and press ENTER. You are now inside the folder; you can return to the folder list by pressing Esc or the left arrow key. Select one of the sites listed in the folder contents; press ENTER again. If everything is set up correctly, you'll see client-server negotiation and then a list of files and directories on the ftp server you've chosen.

Hit SPACE to view the control connection window (and it is scrollable!) and TAB to view local files/directories. Return to remote directory view by pressing space/tab another time. Move the highlight with the cursor keys, press ENTER on a directory to enter it. If you know the name of the file (or first symbols of the name), type it directly: NFTP will try to position the highlight on a file whose name starts with these symbols.

Select files to download with INSERT or simply press F5 to transfer a single file. To upload file(s) to a server, switch to local files view (with TAB), select file(s) and press Shift-F5. To view a local or remote file, move the highlight to it and press F3 (of course, the remote file must first be downloaded -- which may take some time).

Press F10 to log off and exit NFTP.


You often already know where the file you wish to download is located. Let's suppose, say, you want to retrieve RFC 959 from
Launch nftp in the following fashion:
   or even
After logging in into nftp will change the directory for you to /pub/rfc. Once the directory listing is before you, start typing 'rfc959': the highlight will be positioned on rfc959.txt.gz. You may now download the required file.

The command line format for NFTP is:

      nftp [hostname[[:[port]]directory]   [userid]
      nftp -{F|f} hostname[:port]filename]
The second format is used to download a single file; use 'F' if you want to log off afterwards and 'f' if you want to stay connected. "hostname" is the name of the ftp server ('' in the above example), ":" can be omitted, "directory" is the remote directory ('/pub/rfc' in the above example), "port" is the port number (don't use it if you don't know what's it). If you have an account on an ftp server (i.e. you're not an anonymous user), you can specify your userid in the command line. You will be asked for a password. An important note -- there shouldn't be any spaces between hostname and directory! Other examples are:
      nftp    (nonstandard port)
      nftp ftp/pub                        (domain suffix omitted)
      nftp         (IP number instead of host name)
      nftp asv  (login with explicit directory and 
                                           real password)
      nftp -F
                                          (retrieve NFTP 0.10 and then log off)

Being able to specify the directory on the command line is a pretty useful feature: when you've found some reference, paste it directly into the command line and you'll get right to that location without typing anything except Ctrl-Ins and Shift-Ins!

NFTP will try to use any text mode you have set before starting it, i.e. it will run even in a 160x80 text window.


NFTP has several ways to choose an ftp server:

To log off, use Ctrl-K; F10 will log off and exit NFTP.


NFTP can be used if your machine is located behind a firewall. There are several kinds of firewalls (and may be even other types not documented here). Unfortunately, I cannot test NFTP with any type of firewall because I don't have one. So I have to rely on independent testers. If NFTP does not work with your firewall software, please contact me and I will try to fix the situation. I would also appreciate your report about whether NFTP works with your firewall, how your firewall software is called and to what type it belongs (see below about firewall types). Here are six types of firewalls supported by NFTP:
  1. SITE hostname
    Firewall host, userid and password are required. User is logged on the firewall and the remote connection is established using SITE remote_host.
  2. USER after logon
    Firewall host, userid and password are required. User is logged on the firewall and the remote connection is established using USER remote_userid@remote_host
  3. USER with no logon
    Firewall host required, userid and password are ignored. USER remote_userid@remote_host is sent to firewall upon initial connection.
  4. Proxy OPEN
    Firewall host required, userid and password are ignored. OPEN remote_host is sent to firewall upon initial connection.
There is another kind of firewall which is not specifically configured. A router-based firewall allows connections to be established in one direction only. The router itself is invisible to the user. However, the default mode within FTP is that "data" connections are established by the server rather than the client. To work with a router-based firewall requires using the PASV Mode of FTP.

Currently, NFTP does not work with Squid-style ftp proxy servers.

You decide what type your firewall is, and then edit NFTP.INI setting appropriate variables:


With NFTP, you work with remote directories just like using a filemanager. The list of files is scrollable; you can view, delete, rename files and directories, create new directories, sort the file list by different criteria, mark and unmark files, quickly search for a file if you know its name, change directories etc. Some actions will succeed only if you have sufficient rights, of course. Most anonymous servers allow you to create directories and upload files only to a special 'incoming' directory; in other directories you can't manipulate the directory contents.

The complete list of available commands is in the Keyboard Commands Summary section. You can also view it while working with NFTP -- just press F1. Ctrl-F1 displays context-sensitive help, i.e. keystrokes valid in the current mode. Shift-F1 shows general information about program usage.


Basically, you mark files with the Insert key and hit F5 to download, Shift-F5 to upload. Each key of the pair F5/Shift-F5 only works in corresponding mode, i.e. you should be looking at remote files to download something and local files to upload something. Modes are switched with Tab. Marks are kept while browsing remote directories; you can tag many files from many directories and then download them all with Alt-F5 (before starting transfer, go to the toplevel directory: NFTP will only get files in subdirectories of the current directory). If you wish only to transfer a single file, don't mark anything, just the highlight to that file and hit F5/Shift-F5. Another useful set of keys is Ctrl-Greyplus/Ctrl-Greyminus: the former marks all files in the current directory, the latter removes the mark.

During transfer, you can skip files (S) and interrupt the transfer (Q). Response to these keys is usually slow if the server is very far away and your link is slow. This feature was improved as of version 1.10; please report your experience (especially a bad one).

To look at the file, use F3 (fast internal viewer). If you prefer a particular file viewer you can use it instead (edit NFTP.INI to set the name of the viewer and then use Alt-F3). When using the internal viewer, files are cached in memory (so if you wish to look at the file again, NFTP won't transfer it again).

Also see FAQ on transferring entire directory trees.


Almost all customizations are done through NFTP.INI. This file must reside in the same directory as NFTP.EXE.

The file NFTP.INI is a plain ASCII file and can be edited with any ASCII editor (e.g., "System Editor" or "TEDIT"). Lines starting with a semicolon ";" are comments; empty lines are ignored. The file itself holds comments about configuration and parameter meaning. The NFTP folder has an icon which starts the OS/2 System Editor and loads NFTP.INI.

Note that only one entry in NFTP.INI is required -- your e-mail address (anonymous-password). The installation script sets some others. Do not forget to remove the leading ";" when doing customizations.

The complete explanation of all parameters in NFTP.INI is in NFTP.INI itself. I feel that to be a more appropriate place than this manual; and it makes little sense to duplicate the information here.

Parameters can be any of three types: integer, boolean and string. Integer values are represented by integers and can be prefixed by sign. Boolean values can be specified as "0", "n", "no" (false), "1", "y", "yes" (true) (without quotes). Parameters are not case-sensitive (e.g., "Yes" can be used). Strings are represented by character sequences enclosed in double quotes; if the parameter contains only letters, digits and minus sign you can safely omit quotes.


Many people have helped me in creating and improving NFTP. They are (in alphabetical order):

Special thanks to Eberhard Mattes, author of the emx/gcc development system, and, of course, everyone at the Free Software Foundation who created GCC, GNU C compiler and other GNU software.

Also helped (in alphabetical order): AC/DC, Accept, Ritchie Blackmore, Tony Carey, The Cars, Nick Cave, The Cranberries, The Cure, Dire Straits, Dio, Peter Hammill, Hawkwind, Iron Maiden, J.M.Jarre, Judas Priest, King Diamond, King Crimson, Kraftwerk, Megadeth, Metallica, Oasis, Ozzy Osbourne, Pink Floyd, Rainbow, Rush, SuperMax, Twisted Sister, Uriah Heep, Roger Waters, Andrew Lloyd Webber.

This program is packaged using Info-ZIP's compression utility. Info-ZIP's software (Zip, UnZip and related utilities) is free and can be obtained as source code or executables from various bulletin board services and anonymous-ftp sites, including CompuServe's IBMPRO forum and*.


Registration fee is US$ 25. For this price you'll get free updates (i.e. all future versions of NFTP) and support from the author by e-mail. Single registration covers all national language versions, so if you want to run, say, English and Chinese versions, you'll have to pay only once.

As of Jan 1999, there are two ways to register. You might view NFTP homepage to check whether new methods of registration are available.

In any case, whether you are registering via BMT Micro or directly with author, fill in 'regform.txt' supplied with NFTP and e-mail it to me (

  1. The first one (and safer, more reliable and faster) is to register via BMT Micro. They accept payment in a variety of ways. I recommend this method. For ordering and payment information, please read the file order.frm in the NFTP directory. Note that BMT Micro has lots of resellers in other countries.
  2. If purchasing via BMT Micro is not suitable for you, you may register directly with me. The biggest problem with this method is how to send money to Russia. Right now, I can think of one method: send cash in a letter. I do not recommend this; in fact, I highly discourage it. I cannot be held responsible for banknotes lost in the mail. So far as I know, our mail is not notorious for losing money, so there may be nothing to fear; but I repeat: if you send money in the mail to me and nothing arrives, I am not responsible. Sorry. Please avoid this way if you can; but if you must use it, any major currency will do. Please add 2% for conversion if sending any currency other than US dollars. (Note: so far there has been one successful case and no known failures).
After sending money, inform me by e-mail and don't forget to attach the registration form! When my bank tells me that the money has arrived, I'll send your registration key by e-mail. In any case, if you're not sure, please do not hesitate to contact me.


See contacts.

Where to find new versions:

  1. select "Update NFTP" in the "Help" submenu menu from inside NFTP (works since version 1.40); NFTP will connect to the site given below;
  2. go to anonymous ftp:

Sorry for any typos and bad grammar. I will gladly accept any corrections to this manual.

NFTP home page // Send comment