Overview

Tftpd32 and Tftpd64 version 4.64

An opensource full featured TFTP server, a TFTP client, a BOOTP/DHCP Server, an SNTP server, a DNS server and a SYSLOG server combined into a single program which takes a few hundreds of kBytes.

Overview | Using tftpd32 | Tips and Tricks | Advanced Users
Protocols description License History | Getting Started Tftpd32 settings The TFTP server setup DHCP setup Syslog setup The TFTP client using the DNS relay | Tips FAQ | Registry Entries


Protocols Description

TFTP

Trivial File Transfer Protocol was first defined in 1980, it is a lightweight version of the FTP protocol that has no directory browsing or password capability. Employing UDP rather than TCP for transport, TFTP is typically used to transfer firmware upgrades to network equipment such as routers, switches and IP phones.It is also used to boot diskless computers (PXE).

SNTP

Simple Network Timle Protocol is a simplified version of NTP (Network Time Protocol). They synchronise the time on workstations across a network.

DHCP

DHCP assigns IP addresses to client stations logging onto a TCP/IP network. It eliminates having to manually assign permanent IP addresses on each station.

Syslog

Syslog is a service for remotely logging data. For example, it allows to monitor videoless network equipments.


License

TFTPD32 is an opensource package copyrighted 1998-2017 by Philippe Jounin (philippe@jounin.net) released under the European Union Public License.

European Union Public Licence
V. 1.1
EUPL © the European Community 2007

This European Union Public Licence (the "EUPL") applies to the Work or Software (as defined below) which is provided under the terms of this Licence. Any use of the Work, other than as authorised under this Licence is prohibited (to the extent such use is covered by a right of the copyright holder of the Work).

The Original Work is provided under the terms of this Licence when the Licensor (as defined below) has placed the following notice immediately following the copyright notice for the Original Work:
Licensed under the EUPL V.1.1
or has expressed by any other mean his willingness to license under the EUPL.

contents

  • 1. Definitions
  • 2. Scope of the rights granted by the Licence
  • 3. Communication of the Source Code
  • 4. Limitations on copyright
  • 5. Obligations of the Licensee
  • 6. Chain of Authorship
  • 7. Disclaimer of Warranty
  • 8. Disclaimer of Liability
  • 9. Additional agreements
  • 10. Acceptance of the Licence
  • 11. Information to the public
  • 12. Termination of the Licence
  • 13. Miscellaneous
  • 14. Jurisdiction
  • 15. Applicable Law
  • Appendix

1. Definitions

In this Licence, the following terms have the following meaning:

  • The Licence: this Licence.
  • The Original Work or the Software: the software distributed and/or communicated by the Licensor under this Licence, available as Source Code and also as Executable Code as the case may be.
  • Derivative Works: the works or software that could be created by the Licensee, based upon the Original Work or modifications thereof. This Licence does not define the extent of modification or dependence on the Original Work required in order to classify a work as a Derivative Work; this extent is determined by copyright law applicable in the country mentioned in Article 15.
  • The Work: the Original Work and/or its Derivative Works.
  • The Source Code: the human-readable form of the Work which is the most convenient for people to study and modify.
  • The Executable Code: any code which has generally been compiled and which is meant to be interpreted by a computer as a program.
  • The Licensor: the natural or legal person that distributes and/or communicates the Work under the Licence.
  • Contributor(s): any natural or legal person who modifies the Work under the Licence, or otherwise contributes to the creation of a Derivative Work.
  • The Licensee or "You": any natural or legal person who makes any usage of the Software under the terms of the Licence.
  • Distribution and/or Communication: any act of selling, giving, lending, renting, distributing, communicating, transmitting, or otherwise making available, on-line or off-line, copies of the Work or providing access to its essential functionalities at the disposal of any other natural or legal person.

2. Scope of the rights granted by the Licence

The Licensor hereby grants You a world-wide, royalty-free, non-exclusive, sub- licensable licence to do the following, for the duration of copyright vested in the Original Work:

  • use the Work in any circumstance and for all usage,
  • reproduce the Work,
  • modify the Original Work, and make Derivative Works based upon the Work,
  • communicate to the public, including the right to make available or display the Work or copies thereof to the public and perform publicly, as the case may be, the Work,
  • distribute the Work or copies thereof,
  • lend and rent the Work or copies thereof, sub-license rights in the Work or copies thereof

Those rights can be exercised on any media, supports and formats, whether now known or later invented, as far as the applicable law permits so.

In the countries where moral rights apply, the Licensor waives his right to exercise his moral right to the extent allowed by law in order to make effective the licence of the economic rights here above listed.

The Licensor grants to the Licensee royalty-free, non exclusive usage rights to any patents held by the Licensor, to the extent necessary to make use of the rights granted on the Work under this Licence.

3. Communication of the Source Code

The Licensor may provide the Work either in its Source Code form, or as Executable Code. If the Work is provided as Executable Code, the Licensor provides in addition a machine-readable copy of the Source Code of the Work along with each copy of the Work that the Licensor distributes or indicates, in a notice following the copyright notice attached to the Work, a repository where the Source Code is easily and freely accessible for as long as the Licensor continues to distribute and/or communicate the Work.

4. Limitations on copyright

Nothing in this Licence is intended to deprive the Licensee of the benefits from any exception or limitation to the exclusive rights of the rights owners in the Original Work or Software, of the exhaustion of those rights or of other applicable limitations thereto.

5. Obligations of the Licensee

The grant of the rights mentioned above is subject to some restrictions and obligations imposed on the Licensee. Those obligations are the following:

Attribution right: the Licensee shall keep intact all copyright, patent or trademarks notices and all notices that refer to the Licence and to the disclaimer of warranties. The Licensee must include a copy of such notices and a copy of the Licence with every copy of the Work he/she distributes and/or communicates. The Licensee must cause any Derivative Work to carry prominent notices stating that the Work has been modified and the date of modification.

Copyleft clause: If the Licensee distributes and/or communicates copies of the Original Works or Derivative Works based upon the Original Work, this Distribution and/or Communication will be done under the terms of this Licence or of a later version of this Licence unless the Original Work is expressly distributed only under this version of the Licence. The Licensee (becoming Licensor) cannot offer or impose any additional terms or conditions on the Work or Derivative Work that alter or restrict the terms of the Licence.

Compatibility clause: If the Licensee Distributes and/or Communicates Derivative Works or copies thereof based upon both the Original Work and another work licensed under a Compatible Licence, this Distribution and/or Communication can be done under the terms of this Compatible Licence. For the sake of this clause, "Compatible Licence" refers to the licences listed in the appendix attached to this Licence. Should the Licensee's obligations under the Compatible Licence conflict with his/her obligations under this Licence, the obligations of the Compatible Licence shall prevail.

Provision of Source Code: When distributing and/or communicating copies of the Work, the Licensee will provide a machine-readable copy of the Source Code or indicate a repository where this Source will be easily and freely available for as long as the Licensee continues to distribute and/or communicate the Work.

Legal Protection: This Licence does not grant permission to use the trade names, trademarks, service marks, or names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the copyright notice.

6. Chain of Authorship

The original Licensor warrants that the copyright in the Original Work granted hereunder is owned by him/her or licensed to him/her and that he/she has the power and authority to grant the Licence.

Each Contributor warrants that the copyright in the modifications he/she brings to the Work are owned by him/her or licensed to him/her and that he/she has the power and authority to grant the Licence.

Each time You accept the Licence, the original Licensor and subsequent Contributors grant You a licence to their contributions to the Work, under the terms of this Licence.

7. Disclaimer of Warranty

The Work is a work in progress, which is continuously improved by numerous contributors. It is not a finished work and may therefore contain defects or "bugs" inherent to this type of software development.

For the above reason, the Work is provided under the Licence on an "as is" basis and without warranties of any kind concerning the Work, including without limitation merchantability, fitness for a particular purpose, absence of defects or errors, accuracy, non-infringement of intellectual property rights other than copyright as stated in Article 6 of this Licence.

This disclaimer of warranty is an essential part of the Licence and a condition for the grant of any rights to the Work.

8. Disclaimer of Liability

Except in the cases of wilful misconduct or damages directly caused to natural persons, the Licensor will in no event be liable for any direct or indirect, material or moral, damages of any kind, arising out of the Licence or of the use of the Work, including without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, loss of data or any commercial damage, even if the Licensor has been advised of the possibility of such damage. However, the Licensor will be liable under statutory product liability laws as far such laws apply to the Work.

9. Additional agreements

While distributing the Original Work or Derivative Works, You may choose to conclude an additional agreement to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or services consistent with this Licence. However, in accepting such obligations, You may act only on your own behalf and on your sole responsibility, not on behalf of the original Licensor or any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against such Contributor by the fact You have accepted any such warranty or additional liability.

10. Acceptance of the Licence

The provisions of this Licence can be accepted by clicking on an icon "I agree" placed under the bottom of a window displaying the text of this Licence or by affirming consent in any other similar way, in accordance with the rules of applicable law. Clicking on that icon indicates your clear and irrevocable acceptance of this Licence and all of its terms and conditions.

Similarly, you irrevocably accept this Licence and all of its terms and conditions by exercising any rights granted to You by Article 2 of this Licence, such as the use of the Work, the creation by You of a Derivative Work or the Distribution and/or Communication by You of the Work or copies thereof.

11. Information to the public

In case of any Distribution and/or Communication of the Work by means of electronic communication by You (for example, by offering to download the Work from a remote location) the distribution channel or media (for example, a website) must at least provide to the public the information requested by the applicable law regarding the Licensor, the Licence and the way it may be accessible, concluded, stored and reproduced by the Licensee.

12. Termination of the Licence

The Licence and the rights granted hereunder will terminate automatically upon any breach by the Licensee of the terms of the Licence.

Such a termination will not terminate the licences of any person who has received the Work from the Licensee under the Licence, provided such persons remain in full compliance with the Licence.

13. Miscellaneous

Without prejudice of Article 9 above, the Licence represents the complete agreement between the Parties as to the Work licensed hereunder.

If any provision of the Licence is invalid or unenforceable under applicable law, this will not affect the validity or enforceability of the Licence as a whole. Such provision will be construed and/or reformed so as necessary to make it valid and enforceable.

The European Commission may publish other linguistic versions and/or new versions of this Licence, so far this is required and reasonable, without reducing the scope of the rights granted by the Licence. New versions of the Licence will be published with a unique version number.

All linguistic versions of this Licence, approved by the European Commission, have identical value. Parties can take advantage of the linguistic version of their choice.

14. Jurisdiction

Any litigation resulting from the interpretation of this License, arising between the European Commission, as a Licensor, and any Licensee, will be subject to the jurisdiction of the Court of Justice of the European Communities, as laid down in article 238 of the Treaty establishing the European Community.

Any litigation arising between Parties, other than the European Commission, and resulting from the interpretation of this License, will be subject to the exclusive jurisdiction of the competent court where the Licensor resides or conducts its primary business.

15. Applicable Law

This Licence shall be governed by the law of the European Union country where the Licensor resides or has his registered office.

This licence shall be governed by the Belgian law if:

  • a litigation arises between the European Commission, as a Licensor, and any Licensee;
  • the Licensor, other than the European Commission, has no residence or registered office inside a European Union country.

Appendix

"Compatible Licences" according to article 5 EUPL are

  • GNU General Public License (GNU GPL) v. 2
  • Open Software License (OSL) v. 2.1, v. 3.0
  • Common Public License v. 1.0
  • Eclipse Public License v. 1.0
  • Cecill v. 2.0


History
Release 4.64
  • New icon (thanks to Marco !)
  • Add option to convert '//' into '/'
  • Add DNS relay advertisement in Settings windows
  • fix : crash on empty DNS request
  • Suppress warning "DHCP mask empty" if DHCP is disabled
  • Improved: disk caching behavior
  • Fix: use of unsigned 32 bits int for file size reporting (impact only file >2Gb)
  • Change: behavior on duplicate requests
  • New: compiled under Visual studio 2019
  • Improved: increased size of dir window and better alignment
  • Add: exponential delay for statistics reports
Release 4.63
  • improved: compilation with Visual Studio 2017
  • fixed: window's position saved
Release 4.62
  • fixed: previous release did not start under Windows 10
Release 4.61
  • fixed: multiple options support (thanks Stefan)
  • new 256x256 icon (thanks Marcu)
  • fixed: DHCP gateway may be empty
  • improved DHCP interface resolution (Thanks Philip)
Release 4.60
  • Some changes for avoiding false positive antivirus detection
  • nak messages are padded with null characters to be greater than 4 bytes (thanks to Clement)
  • improved DDoS/fuzzing resilience: better handling of malformed packet
  • improved DDoS resilience: pacing new threads
  • fixed: stats are correctly displayed when a tranfer ends
Release 4.52
  • Recompilation for Windows 8 support
Release 4.51
  • Fixed : If no bound interface specified "Bad Interface" was displayed
  • Fixed : Handle leaking
  • Fixed : Crash due to a simple deny of service attack (see exploit.pl from j0s3h4x0r)
  • Fixed : maximum uploads was statically fixed to 100
  • Fixed : changing the syslog settings does not need a Tftpd32 restart
  • Fixed : Sorcerer's apprentice syndrome check displayed a wrong block number
  • Added : Tftpd32 now adds client IP address in syslog output file
  • Added : Resizing of TFTP client windows
  • Added : settings tab matches main tab
Release 4.50
  • Included : many improvements and bugfixes form Jesus Soto (Thanks Jesus !)
  • Fixed : Tftpd32 receives and sends DHCP broadcast correctly (both for XP and Vista/win 7) (Thanks Bruce for the testing)
  • Added : New DHCP guy
  • Added : New DHCP types for Additional options value (i long integer, I short integer, n long integer network order, N short integer network order, s string)
  • DHCP options value : 'a' for list of IPv4 Address
  • DHCP options value : 'x' for list of hex digits (size depends on number of digits)
  • DHCP options value : 'b' for list of decimal single-byte digits
  • DHCP Option 66 is preferred over ciaddr for requested address into msg DHCP request (PXE improvement)
  • Modified : startup sequence and synchronisation between threads
  • Improved : many settings changes does not need restart anymore
  • Fixed : vulnerability in the TFTP client window : sign % now forbidden
Release 4.01
  • Added : unicast DHCP replies
Release 4.00
  • New : already active transfers are correctly displayed in the management console (service edition)
  • Fixed : Message correctly displayed when the standalone version is run and the service is already running
Version 3.52
  • Re-Fixed : GUI worked only once (service edition).
  • Fixed : TFTP client crashes (64 bits) when selecting a file
Version 3.51
  • New : 64 bits version available.
  • Changed : DHCP does not add SYSLOG Server option unless syslog service is activated
  • Fixed : DHCP delete lease has been patched
Version 3.50
  • New : Tftpd32 is now tested under Windows 7.
  • New : Tftpd32 modified to be compiled under 64 bits (will be tftpd64 of course !!).
  • New : Settings are now gathered in a tab window.
  • New : TFTP working directory control is editable
  • Added : Change Browse popup window's style (BIF_USENEWUI flags). Fix proposed by Nathan Alderson.
  • Added : In directory window OK/Cancel buttons have been replaced by a single Close button.
  • Fixed : DHCP does not perform ICMP request in DHCPREQUEST stage (fix proposed by Colin)
  • Fixed : DHCP may crash while using BOOTP in static mode (fix proposed by Rolf Offerman)
  • Fixed : tabs are inconsistent if inits are unsuccessful
  • Changed : About button is no more the default push button
  • Suppressed : action field into LOG tab

Version 3.35
  • Fixed : Tftpd32 may hang if not correctly installed
  • Added : Transfer may be kept in GUI
  • Added : Result of transfer is displayed
  • Added : A transfer cancelled is reported as "STPD"
  • Added : Unattended installation with "/S" option

Version 3.34
  • Fixed : Service edition hangs during long tranfers
Version 3.33

  • Fixed : DNS server improvements
  • Added : An installer for the Service Edition (Thanks to Srdjan Grubor who provided the base of the NSIS script)
  • Version 3.34
    • Fixed : Service edition hangs during long tranfers
    Changed : DHCP custom value should be prefixed by its type (a for IP address, s for string and i for integer)
  • Fallback : DHCP custom value beginning with 0x works again
Version 3.32

  • Fallback : IPv6 functions suppressed

Version 3.31

  • Fixed : irregular DHCP assignation under Vista (Thanks Anders !)
  • Fixed : the mispelled word "Tranfer"
  • Added : a simple DNS server
  • Major change :Tftpd32 chooses the European Union Public License

Version 3.29

  • Rename service name to tftpd32_svc instead of tftpd32 svc
  • Tftpd32 v3.20 to 3.28 may hang under heavy duty

Version 3.28

  • Better management of duplicated requests.

Version 3.27

  • Duplicated requests are accepted again.

Version 3.26

  • Fix the DHCP server crash. Tftpd32 may crash if you deactivate the DHCP server setting the pool size to 0, then activate it again.

Version 3.25

  • modified : file names are truncated to 64 char in dir window in order to handle longest cisco names (thanks Bastien for reporting it)
  • changed : Tftpd32 is now compilated under Visual C++ v9
  • added: duplicated requests are now ignored (it used to cause "file not found" errors)

Version 3.23

  • fixed: TFTPLogFile option was broken
  • added: new udpport option which makes TFTP work with a stateless firewall or NAT.
    A proposal from Klaus Hartnegg: the client set the udpport=0 option, and the server put the transfer port in the udpport value and sends the OACK frame from TFTP's port.

Version 3.22

  • DHCP configuration wasn't properly saved

Version 3.21

  • IP interfaces display (move from Windows Timer to a thread)
  • Some background windows have been removed
  • The synchronisation in the startup process has been simlified
  • Fixed : open socket bug on windows 2003
  • Dir window is now limited to 200 files

Version 3.20
  • The GUI and the server part have been separated
  • Internals structure alignment is now standard (4 bytes)
  • Drag & drop works again (use local file field)
  • -uninstall option
  • The help file has moved to HTML format (created with HelpMaker)
  • Working Directory may be an remote directory (\\server\dir)
  • Besides the out of the box distribution, you have an installer (thanks to CreateInstall)
  • Bind error messages are now more explicit

Version 3.10
  • DHCP permanent leases (code written mostly by Nick Wagner)
  • DHCP ping before assignation option
  • TFTP client browse button
  • TFTP client Local and Remote File fields
  • -kill option : terminates Tftpd32's pervious instance
  • second icon for the kill option
  • "Open TFTP directory" into System Menu
  • log received on syslog port are tranferred into named pipe Tftpd32Syslog
  • Call Explorer Windows now closes Dir Window

Version 3.03 October 2006
  • Fixed : bad retransmit statistic in TFTP client
  • Fixed : bad tsize management in TFTP client
  • Restored : newer logs are below older ones

Version 3.02 October 2006
  • Add command line options -s : specify starting directory
  • Add command line options -l : specify log level
  • Add command line options -i : specify alternate ini file
  • Interoperability with DHCP relay agents improved
  • A minor vulnerability has been fixed

Version 3.01 August 2006
  • DHCP server accepts requests with yiaddr field set to 255.255.255.255
  • DHCP static assignation can be made into Tftpd32.Ini file
  • DHCP server will do sattic assignation even if the pool is empty
  • DHCP lease time may be changed in INI file (use for instance: Lease (minutes)=120)
  • ListView controls is now properly refreshed
  • Two new buttons in "Show Dir" window : Copy and Explorer

Version 3.00 June 2006
  • Display has been changed
  • Code has been reorganized

Version 2.84 Feb 2006
  • Fixed : Bug correction for large files (present in release 2.81 to 2.83)

Version 2.83 Feb 2006
  • Fixed : Tftp may access to files in root directory
  • Added : Local ports may be chosen (for firewall/NAT)
  • If an interface has been selected, all servers are bound to it

Version 2.82 Feb 2006
  • Fixed : "Show dir" window use chosen directory
  • Fixed : Tftpd32 may receive requests with a percent sign (fix security bug)

Version 2.81 Jan 2006
  • Replaced : A combo box instead of a static text for directory management
  • Changed : Unix Translation active by default
  • Changed : IP Combo Box is refreshed
  • Changed : PXE compatibility checks Virtual Root and Unix name translation.
  • Added : on-fly MD5 file computation
  • Fixed : the default button is visible again
  • New : The DHCP server part is now released under GPL license

Version 2.80 Jan 2005
  • Added : Ten user-defined options for DHCP
  • Added : configuration read either from registry or ini file
  • Added : Syslog daemon shows the IP address of sender
  • Fixed : BOOTP protocol OK again
  • Fixed : A race condition may crash Tftpd32 when sending illegal connect frames.

Version 2.74 May/July 2004
  • Added : Copy to Clipboard button in Tftp server and syslog
  • Added : DHCP server reads port definition in file services
  • Fixed : characters in field file in TFTP client window were converted in lowercase (affects versions 2.71 to 2.73)
  • Memory footprint has been reduced.
  • Binary is now compiled for Pentium.

Version 2.73 Mar 2004
  • Added : Name of file which failed to be transferred
  • Fixed : no answer to BootP requests (affects versions 2.70 to 2.72)

Version 2.72 Feb 2004
  • Fixed : DHCP lease time may be set to zero (affects only version 2.71)

Version 2.71 Feb 2004
  • Added : "Send full path to server" button
  • Added : drag and drop fonctionality on the File field (TFTP client). Upload a full directory by droppping files into the control.

Version 2.70 Feb 2004
  • Fixed : Trouble with server when uploading with options
  • Added : block negotiation in client

Version 2.62 Oct 2003
  • Added user defined DHCP parameter
  • Fixed: Selection of LAN address into settings window
  • Tftpd32 now retains windows position
  • If Hide option has been enabled, Tftpd32's main window will stay 2 seconds. This should discourage Virus developpers to use Tftpd32.

Version 2.60 Aug 2003
  • SNTP server added
  • Bug fixed in DHCP server : The server may deliver twice the same address.

Version 2.54 March 2003
  • Add port field in the client thread
  • About is the default button

Version 2.53 February 2003
  • Fix two bugs in the DHCP thread

Version 2.52 February 2003
  • Fix: Tsize option did not work with PXE .
  • Fix: Virtual root did not work in v2.50 and 2.51
  • if Pool Size is 0, DHCP server is desactivated

Version 2.51 November 2002
  • Fix a vulnerability in Tftpd32.

Version 2.50 November 2002
  • TFTP Code has been complely rewritten to support multithreading
  • BOOTP/DHCP server included
  • Read only mode for TFTP server
  • Virtual Root option for TFTP server
  • Selecting a line in 'Server interfaces' drop-down box copy IP address into the Clipboard
  • Selecting a line in 'Show Dir' windows copy filename into the Clipboard
  • Syslog port can be changed by editing services file

Version 2.20 April 5th 2002
  • Settings windows was changed
  • Option 'Save Syslog messages' is saved into the registry

Version 2.12 March 20th 2002
  • Bug fixed: Hide window at Startup did not work
  • Change task tray management

Version 2.11
  • Bug fixed: The OACK packet has 4 NUL bytes in excess
  • Change Window size for XP
  • Use EclipseHelp as Help maker.

Version 2.1
  • Bug fixed: The statistics may give one block in excess
  • Add syslog server
  • Add tftp client
  • Logging into a file available via registry
  • Mail address changed into about window

Version 2.0 April 4 2000
  • Anticipation window available
  • Add current directory button
  • Main window is resizeable

Version 1.3 Mars 28 1999
  • Add progress bars
  • Add Show Dir button
  • Add Create dir.txt files setting

Version 1.2 July 30 1998
  • Bug fixed: Transfer can not exceed 65.535 blocks
  • Add TFTPv2 support.

Version 1.1 June 19 1998
  • Add Hide window at startup setting.

Version 1.0 June 3 1998


Getting Started

Just start tftpd32.exe (probably you have started it already). You get the following window :

Tftpd32 has already started
  • a TFTP server
  • a DHCP server (listening mode only)
  • a Syslog Server

The Syslog server is already full fonctionnal, however you need at least to configure the TFTP directory (current directory is the default) and the DHCP server must be configured to answer requests.

To change the directory, either use the Browse button, or go into the settings window.


Tftpd32 settings

The Settings Window : Syslog

The settings window allows you to start or stop the different services offerred by Tftpd32.

Start Services
Services
Each checkbox start or stop one service
Enable IPv6
Allow dual stack services (need at least Windows Vista or Windows server 2008)


Tftpd32 settings

The Settings Window

The settings window allows you to modify the most current parameters.

Base directory
The default directory used by the TFTP client and server. It may be changed from the main window.

Global Settings
Enable or disable tftpd32 servers and clients.

TFTP security
NONE (Not recommended !)
read and write requests are allowed on all disks/directories.
Standard
read and write requests are allowed but limited to the current directory.
High
idem standard + write requests are allowed only if the input file exists and is empty.
Read only
idem standard + write requests are rejected.
TFTP Configuration
Timeout
The maximum timeout between two retransmissions
Max Retransmit
The maximum retransmission for the same packet
Tftp Port
The port used to listen incoming requests
local ports pool
A range of ports (for example 3000:3030). These ports are used for the file transfers.
TFTP Configuration
Option Negotiation
Enables the negotiation between client and server (RFC 2347)
PXE compatibility
Enables only the file size negotiation
Show progress Bar
Creates a gauge window for each transfer
Translate Unix file names
Translates any slash characters to a backslash
Bind Tftpd32 to this address
Enables TFTP only on one interface
Allow '\' As virtual root
A file name beginning with '\' points to the TFTP directory and not to the root of the disk
Use anticipation window of ??? bytes
Tftpd32 is able to send packets before receiving acknowledgements. This feature may dramatically speed up the transfer.
Hide window at startup
Tftpd32 main window remains hidden, but the icon in the tasktray is still present
Create dir.txt files
For each incoming read request, Tftpd32 lists the content of the directory and put the result in a file named "dir.txt".
Create md5 file
For each successfull read request, Tftpd32 creates a file which is the MD5 signature of the previous file
Beep for long transfer
Tftpd32 sends a beep once a transfer has ended.
Reduce '//' in file path
If a double slash is found, Tftpd32 will convert it into a single slash.


DHCP Setup

DHCP setup is available through the DHCP tab.

IP Pool starting Address
This is the first address which will be distributed.
Size of pool
This is the number of hosts which may be configured by Tftpd32.
Lease
This is the amount of time in minutes the address is leased for.
Boot File
Used by diskless stations. It is the file which will be retrieved by TFTP to start up the boot process.
The strings $MAC$ and $IP$ are pseudo variables which are translated into the MAC address of the client and its assignated IP address.
Default router
The IP address of the LAN gateway.
Mask
The network mask which will be assigned to the DHCP clients.
DNS servers
The IP address of the DNS. Two DNS can be configured.
WINS Server
The IP address of the WINS server.
NTP Server
The IP address of the NTP server used for synchronisation.
SIP Server
The IP address of the SIP server. It concerns mostly IP phones.
Domain Name
Either the NT domain or the internet domain.
Additional Option
The first field is the number of the option to be handled
The second filed is the value of the field. The value is prefixed with its type (a for list of IPv4 address, x for list of hex digits, b for list of decimal bytes, s for an ASCII string) [legacy prefixes: i for integer, n for network order integers]
More Additional Options ?
Tftpd32 supports up to 10 additionnal options. They have to be configured by editing the tftpd32.ini settings file. Their syntax is similar to the previous one.


syslog settings

The Settings Window : Syslog

Syslog Settings
Forward msg to pipe Tftpd32Syslog :
Each valid message received by Tftpd32 is forwarded into the named pipe Tftpd32Syslog. Like this another application may receive syslog notifications.
Save Syslog messages
Each valid message is timestamped and saved into the designated file


The TFTP client

Using the TFTP client

Download

To download a file (get it from the server) you need to know :
  • The name of the server or its IP address
  • The name of the file on the server
You have to fill the fields Host and Remote File then click on the Get button, the transfer will start.
If you want to change the name of the file, you may complete the field Local File.

Upload

To upload a file (put it on the server), you need to know
  • The name of the server or its IP address
  • The name of the file on your PC
You must fill the fields Host and Local File then click on the Put button.


The DNS relay

Using the DNS relay

Manage the host table

Tftpd32 uses the API getaddrinfo to resolve the domain name.
This API tries to find the host name in the file
%SystemRoot%\System32\drivers\etc\hosts
(or the file pointed by the registry key
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath).

Populate this file with your hosts and Tftpd32 will propagate the info.
If getaddrinfo founds no suitable host, it relays the request to the DNS server.


Tips

use Tftpd32 clipboard features ?

Select an address from the combobox. Tftpd32 copies it into the clipboard.

Select a file from the directory dialog box. Tftpd32 copies the file name into the clipboard.

Transfer files using drag and drop ?

Just pick up your files from an explorer window and send them into the field Local File.

Use an ini file for settings ?

By default, Tftpd32 uses the registry to save its settings.However if you create an empty file names tftpd32.ini in the same directory than tftpd32.exe, it will write its settings there.
Note that restoring default settings deletes all registry entries and the tftpd32.ini file.

Make a portable application, which writes no settings at all ?

Just create a empty read only tftpd32.ini file.

Use Tftpd32 to assign static DHCP address

Open tftpd32.ini file with your favorite editor. In the DHCP section, create an entry where the key is the mac address and its value is the IP address. For instance, 0A:0B:0C:0D:0E:0F=192.168.1.75 Note: if the pool size is 0, Tftpd32 assigns no dynamic address, but distributes static ones.


FAQ

Q: What is Tftpd32's Export Control Classification Number (ECCN)
A: Since Tftpd32 have no encryption functionality, there is no export restriction regarding the US classification. The corresponding EECN code is EAR99/NLR and CCATS code is not applicable.

Q: Where can i get the latest version of Tftpd32 ?
Q: Has TFTPD32 an official home page ?
A: TFTPD32's home page is http://tftpd64.com.

Q: What are the Export Control Classification Number (ECCN) and the CCATS number (Commerce Classification and Tracking System) of Tftpd32 ?
Q: Since Tftpd32 have no encryption functionality, there is no export restriction. The corresponding EECN code is EAR99/NLR and CCATS code is N/A (not applicable). !
Q: Does TFTPD32 work with Netscape or Internet Explorer ?
Q: I am unable to use TFTPD32 with my FTP client !
A: TFTPD32 is a TFTP server, whereas Netscape and IE need an FTP server. The protocols are quite different and are not interchangeable.

Q: Sometimes the client begins a transfer correctly, but receives no data; what's wrong ?
A: The requested block size is too high. Either decrease it from the client or disable the option negotiation switch from the server. Alternatively you can adjust the MTU parameter in your TCP/IP settings.

Q: I have checked "Hide Window at startup" option and i am now unable to change settings anymore !
A: Look at the right of your task bar. You will find the TFTPD32 icon near the clock. Double click on it and the main window will be displayed. A: Since version 2.2, you can also launch a new instance of Tftpd32.

Q: How to manually desinstall Tftpd32 ?
A: Start tftpd32, go in the settings part and click on Default. This will remove the registry entry and the INI file. Then manually delete the files Tftpd32.chm and Tftpd32.exe.

Q: I got this window. What happens ?
A: A process has already bound the DHCP port. If you do not need a DHCP server, go into the settings window and disable the DHCP server. Otherwise, you can use TcpView from Sysinternals in order to know which process has bound the DHCP port.

Q: Can tftpd32 run as a service ?
A: You can use third party tools like SrvAny or fireDaemon to turn Tftpd32 into a service.
A: I am working on service edition, which will be soon available...

Q: Can the DHCP server assign only static address ?
A: Yes, see the Tips section.


Settings Entries

This page lists all entries saved into the tftpd32.ini.

TFTPD32 Section DHCP Section
BaseDirectory
The directory chosen at startup
TftpPort
The port used by the TFTP server
Hide
0 to display the main window, 1 to hide it
WinSize
The anticipation window in bytes, you may try values like 512 or 1024 bytes
Negociate
1 to enable negotiattion between client and server
PXECompatibility
1 to allow transfer size negotiation
DirText
1 to create dir.txt files
ShowProgressBar
1 to create gauge windows
Timeout
The max timeout for one packet
MaxRetransmit
The max number of retransmission for one packet
SecurityLevel
The security level. 0=NONE, 1=Standard, 2=High, 3=Read Only
UnixStrings
1 to accept file names with '/'
Beep
1 to beep when a "long transfer" terminates
VirtualRoot
1 to enable Virtual Root (the heading \ is translated to the working directory)
MD5
1 to create MD5 files for read requests
LocalIP
The address of the interface which will be bound by Tthe TFTP server, empty to accept requests from every interface
Services
An integer which gives the services to be enabled at startup
TftpLogFile
The name of the log file for TFTP server events
SaveSyslogFile
The name of the log file for syslog events
LowestUDPPort
The lowest local port to be used by the TFTP server
HighestUDPPort
The highest local port to be used by the TFTP server
MulticastPort
Unused
MulticastAddress
Unused
PersistantLeases
1 to save DHCP leases into the tftpd32.ini file
DHCP LocalIP
The IP address to be bound to the DHCP Port, empty to accept incoming requests from any interfaces
DHCP Ping
1 to ping host before address assignation
PipeSyslogMsg
1 to forward syslog messages into the named pipe Tftpd32Syslog
Max Simultaneous Transfers
Unused (limitation is actually in the code)
UseEventLog
1 to send errors into NT event log
Console Password
The password exchanged between the services and the GUI.
IP_Pool
The 4 bytes of the first address which will be assigned.
PoolSize
The number of addresses which may be distributed
BootFile
The name of the file which will be retrieved at boot for diskless or PXE clients
DNS
The 4 bytes of the IP address of the DNS
Mask
The 4 bytes of the mask to be distributed
Gateway
The 4 bytes of the gateway/router to be distributed
DomainName
The name of the window or internet domain
AddOptionNumber
The number of a specific option
AddOptionValue
The option value. the default type is text. The hexadecimal format prefixed by '0x' is also supported either for numerical values or for IP addresses.
Lease (minutes)
The DHCP lease in minutes
Static DHCP entries
The key is the MAC address (separator :), the value is the IP address


Help Index

index

Overview

Overview

Protocols description

License

History

Gettings Started

Getting started

Global Tftpd32 Settings

Tftp server Settings

DHCP server Setup

Syslog Setup

The TFTP Client

The DNS relay

Tips and Tricks

Tips

FAQ

Tftpd32 advanced setup

Setting Entries