Configuring a TFTP Server for Windows

On Windows systems, the TFTP daemon is controlled by the Extended Internet Services Daemon (xinetd). To configure the TFTP daemon, use the following general procedure:

  1. Create the file /etc/xinetd.d/tftp.
  2. Optionally, disable unnecessary xinetd services.
  3. Add xinetd as a Windows service and restart it, as described in Restarting Required Services on Windows.

All of these files are located in the directory where you have Cygwin installed.

Note

If you use a Windows-provided editor to create text files, they might contain DOS-style line breaks. Use the dos2unix utility in Cygwin to convert the files for use in a UNIX-style system. Issue the command dos2unix --help for details about this utility.

Creating the TFTP Server File

Create the file /etc/xinetd.d/tftp with the contents shown in the following listing:

# default: off
# description: The tftp server serves files using the
# trivial file transfer protocol.  The tftp protocol
# is often used to boot diskless workstations, download
# configuration files to network-aware printers, and
# to start the installation process for some
# operating systems.
 
service tftp
{
     disable       = no
     socket_type   = dgram
     protocol      = udp
     wait          = yes
     user          = SYSTEM
     server        = /usr/sbin/in.tftpd
     server_args   = /tftpboot
     per_source    = 11
     cps           = 100 2
     flags         = IPv4
}

Note

The files in the xinetd.d directory must have read/write permissions set for all users. Generally the touch command is sufficient; however, this depends on how your host machine is configured. If necessary, use the chmod command to change permissions, as in the following example:

$ chmod a+rw /etc/xinetd.d/* 

Disabling Unnecessary xinetd Services

To avoid conflicts and possible security risks, you can disable all services of the xinetd daemon except for TFTP. This step is optional.

To disable unnecessary services, edit the xinetd configuration file, /etc/xinetd.conf, to add the enabled line as shown in the following example:

 # Simple configuration file for xinetd
 # Some defaults, and include /etc/xinetd.d/
 
 defaults
 {
     instances        = 60
     log_type         = FILE /var/log/servicelog
     log_on_success   = HOST PID
     log_on_failure   = HOST
     cps              = 25 30
     enabled          = tftp
 }
 includedir /etc/xinetd.d

The enabled line disables all services except those that are specified. If this line is not used, all services are enabled by default.