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:
- Create the file /etc/xinetd.d/tftp.
- Optionally, disable unnecessary xinetd services.
- 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.