This program supports both the usual GNU command line syntax, with long options starting with two dashes
('-') as well as short options. A description of the options is included below.
-t,--tftpd-timeout<value>
Number of seconds of inactivity before the server exits. This value has meaning only when the
server is started by inetd. In daemon mode, the server never exits. Default is 300 seconds.
-r,--retry-timeout<value>
How many seconds to wait for a reply before retransmitting a packet. Default is 5 seconds. This
can be overridden by the TFTP client with the 'timeout' option.
-m,--maxthread<value>
Maximum number of concurrent threads allowed. Default is 100.
-v,--verbose[=value]
Increase or set the logging level. No arguments will increase by one the current value. Default is
LOG_NOTICE, see syslog(3) for log level. Valid value range from 0 (LOG_EMERG) to 7 (LOG_DEBUG).
--trace
When verbose level is set to 7, this will output debug information for each packet sent or
received from the network.
--no-timeout
disable 'timeout' from RFC2349. This will prevent the server from acknowledging the 'timeout'
option requested by the client.
--no-tsize
disable 'tsize' from RFC2349. This will prevent the server from acknowledging the 'tsize' option
requested by the client.
--no-blksize
disable 'blksize' from RFC2348. This will prevent the server from acknowledging the 'blksize'
request by the client.
--no-windowsize
disable 'windowsize' from RFC7440. This will prevent the server from acknowledging the
'windowsize' request by the client.
--no-multicast
disable 'multicast' from RFC2090. This will prevent the server from acknowledging the 'multicast'
request by the client.
--logfile<logfile>
Log to a specific file instead of only syslog. 'nobody' (or any user used to run the server) must
have permissions on the given file. Assuming the file is /var/log/atftpd.log, simply run: "touch
/var/log/atftpd.log" and then "chown nobody.nogroup /var/log/atftpd.log". When the server is run
in daemon mode, /dev/stdout or /dev/stderr can be used. Specifying a single dash as the filename
will send logs to stdout (file descriptor 1).
--pidfile
Write the PID of the server to the specified file. This may be useful when automatically starting
and stopping one or more instance of the server.
--daemon
Run as a daemon. Do not use this option if atftpd is started by inetd.
--no-fork
When --daemon is specified, this option will prevent the server from forking to background. It is
useful for debugging purpose or specialized usage.
--user<user[.group]>
By default, the server change identity to the user nobody and group nogroup. Specify an alternate
user.group with this option.
--group<group>
Alternate way of specifying the group. If group is specified with --user and --group, the last
option will be used.
--port<number>
Specify the port on which atftpd listens. Useful when --daemon is specified. Default is standard
tftp port as determined by getservbyname(3).
--bind-address<IPaddress>
Specify the IP address which atftpd binds to. Useful when --daemon is specified. Default is to
bind to all interfaces. Only one address can be specified, the server can only listen to one or
all interfaces.
--mcast-ttl
Specify the TTL to be used for multicast datagram. By default a value of 1 is used. Note that TTL
has a special meaning in multicast as it is used to determine the scope of the packets. The value
of 1 means the packets don't leave the local network, see ip(4). Scope may also be determine by
the address as described RFC2365.
--mcast-addr
Specify the IP address range to be used for multicast transfer. Format string may comprise range
and list of values: "239.255.0.0-31,128-132,200". Default value is "239.255.0.0-255". This
address range is proposed in RFC2365 for local scope.
--mcast-port
Specify the UDP port to use for multicast transfer. Format string may contain range and list of
port number: "1758-2000,8000-9000". default value is "1758".
--pcre<file>
Specify a pattern/replacement file to use. This allows one to replace requested file name based on
Perl Compatible Regular Expression. See README.PCRE.
--pcre-test<file>
Test a pattern/replacement file. When using this option, the server will not start as usual but
just read file name from stdin and printout the substitution.
--mtftp<file>
This will start a mtftp server thread for each valid entry in the supplied file. See PXE
specification for detail about mtftp. An example file is provided in the source distribution.
--mtftp-port<port>
Port the mtftp server shall listen to for incoming request.
--no-source-port-checking
In some specific cases of networks using load balancer or other equipment performing NAT (network
address translation), some needs to disable source port checking because port number as been
translated. If you want to use this feature, you must know why you need it and the implication. Be
aware that this option violate the RFC1350. This option has effect only for non-multicast
transfer.
--prevent-sas
Address the Sorcerer's Apprentice Syndrome situation as requested by RFC 1350. This RFC requires
repeated responses to a single packet to be rejected. Thus a block will only get retransmitted on
a timeout. For backward compatibility, the default stays to ignore this RFC. So blocks get
transmitted on every request.
--mcast-switch-client
This option allows the server to proceed with the next multicast client as soon as the current
client timeout. When the current master client fails to send an acknowledge (ACK) to the server,
the server will send an option acknowledge (OACK) to the master client with the field MC (master
client) set to false and send an OACK to the next multicast client with MC set to true. Without
this option, the server will retry the current master client up to 5 times and then mark it done,
proceeding with the next one.
-V,--version
Show version of program.
-h,--help
Show summary of options.
path This is the root directory used by the TFTP server. All requested files from a TFTP client must
reside in this directory. If not specified, the directory defaults to /tftpboot. Since atftpd run
as the nobody user, the permission of the directory must be set properly to allow file reading and
writing.