tftp
—
trivial file transfer program
The tftp
utility is the user interface to the Internet
TFTP (Trivial File Transfer Protocol), which allows users to transfer files to
and from a remote machine. The remote host may be
specified on the command line, in which case tftp
uses
host as the default host for future transfers (see the
connect
command below).
Once tftp
is running, it issues the prompt
“tftp>
” and recognizes the following
commands:
?
command-name ...
- Print help information.
ascii
- Shorthand for "mode ascii"
binary
- Shorthand for "mode binary"
blocksize
[size]
- Sets the TFTP blksize option in TFTP Read Request or Write Request packets
to [size] as specified in RFC 2348. Valid values are
between 8 and 65464. If no blocksize is specified, then by default a
blocksize of 512 bytes will be used.
blocksize2
[size]
- Sets the TFTP blksize2 option in TFTP Read Request or Write Request
packets to [size]. Values are restricted to powers
of 2 between 8 and 32768. This is a non-standard TFTP option.
connect
host [port]
- Set the host (and optionally
port) for transfers. Note that the TFTP protocol,
unlike the FTP protocol, does not maintain connections between transfers;
thus, the
connect
command does not actually create
a connection, but merely remembers what host is to be used for transfers.
You do not have to use the connect
command; the
remote host can be specified as part of the get
or
put
commands.
debug
level
- Enable or disable debugging levels during verbose output. The value of
level can be one of
packet
,
simple
, options
, or
access
.
get
[host:]file
[localname]
-
get
[host1:]file1
[host2:]file2 ...
[hostN:]fileN
- Get one or more files from the remote host. When using the
host argument, the host will
be used as default host for future transfers. If
localname is specified, the file is stored locally
as localname, otherwise the original filename is
used. Note that it is not possible to download two files at a time, only
one, three, or more than three files, at a time.
To specify an IPv6 numeric address for a host, wrap it using
square brackets like
“[3ffe:2900:e00c:ffee::1234]
:file”
to disambiguate the colons used in the IPv6 address from the colon
separating the host and the filename.
mode
transfer-mode
- Set the mode for transfers; transfer-mode may be one
of ascii or binary. The default is
binary.
packetdrop
[arg]
- Randomly drop arg out of 100 packets during a
transfer. This is a debugging feature.
put
file
[[host:]remotename]
-
put
file1 file2 ... fileN
[[host:]remote-directory]
- Put a file or set of files to the remote host. When
remotename is specified, the file is stored remotely
as remotename, otherwise the original filename is
used. If the remote-directory argument is used, the
remote host is assumed to be a UNIX machine. To
specify an IPv6 numeric address for a host, see the
example under the
get
command.
options
[arg]
- Enable or disable support for TFTP options. The valid values of
arg are
on
(enable RFC 2347
options), off
(disable RFC 2347 options), and
extra
(toggle support for non-RFC defined
options).
quit
- Exit
tftp
. An end of file also exits.
rexmt
retransmission-timeout
- Set the per-packet retransmission timeout, in seconds.
rollover
[arg]
- Specify the rollover option in TFTP Read Request or Write Request packets.
After 65535 packets have been transmitted, set the block counter to
arg. Valid values of arg are 0
and 1. This is a non-standard TFTP option.
status
- Show current status.
timeout
total-transmission-timeout
- Set the total transmission timeout, in seconds.
trace
- Toggle packet tracing.
verbose
- Toggle verbose mode.
windowsize
[size]
- Sets the TFTP windowsize option in TFTP Read Request or Write Request
packets to [size] blocks as specified in RFC 7440.
Valid values are between 1 and 65535. If no windowsize is specified, then
the default windowsize of 1 block will be used.
tftpd(8)
The following RFC's are supported:
RFC 1350: The TFTP Protocol
(Revision 2).
RFC 2347: TFTP Option
Extension.
RFC 2348: TFTP Blocksize
Option.
RFC 2349: TFTP Timeout Interval
and Transfer Size Options.
RFC 3617: Uniform Resource
Identifier (URI) Scheme and Applicability Statement for the Trivial File
Transfer Protocol (TFTP).
RFC 7440: TFTP Windowsize
Option.
The non-standard rollover
and
blksize2
TFTP options are mentioned here:
Extending TFTP,
http://www.compuphase.com/tftp.htm.
The tftp
command appeared in
4.3BSD.
Edwin Groothuis <edwin@FreeBSD.org> performed a major
rewrite of the
tftpd(8)
and tftp
code to support RFC2348.
Because there is no user-login or validation within the TFTP protocol, the
remote site will probably have some sort of file-access restrictions in place.
The exact methods are specific to each site and therefore difficult to
document here.
Files larger than 33488896 octets (65535 blocks) cannot be
transferred without client and server supporting the TFTP blocksize option
(RFC2348), or the non-standard TFTP rollover option.