TFTP(1) General Commands Manual TFTP(1)

tftptrivial file transfer program

tftp [host [port]]

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).

The optional -e argument sets the blocksize to the largest supported value and enables the TFTP timeout option as if the tout command had been given. In previous versions of tftp, it also enabled binary mode and the TFTP blksize option; these are now on by default.

Once tftp is running, it issues the prompt “tftp>” and recognizes the following commands:

command-name ...
Print help information.

Shorthand for "mode ascii"

Shorthand for "mode binary"

[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.

[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.

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.

level
Enable or disable debugging levels during verbose output. The value of level can be one of packet, simple, options, or access.

[host:]file [localname]
 
[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.

transfer-mode
Set the mode for transfers; transfer-mode may be one of ascii or binary. The default is binary.

Randomly drop arg out of 100 packets during a transfer. This is a debugging feature.

file [[host:]remotename]
 
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.

[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).

Exit tftp. An end of file also exits.

retransmission-timeout
Set the per-packet retransmission timeout, in seconds.

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.

Show current status.

total-transmission-timeout
Set the total transmission timeout, in seconds.

Toggle packet tracing.

Toggle verbose mode.

[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, https://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.

November 16, 2022 macOS 15.2