1.\" Copyright (c) 1990, 1993, 1994 2.\" The Regents of the University of California. All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 3. Neither the name of the University nor the names of its contributors 13.\" may be used to endorse or promote products derived from this software 14.\" without specific prior written permission. 15.\" 16.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26.\" SUCH DAMAGE. 27.\" 28.\" @(#)tftp.1 8.2 (Berkeley) 4/18/94 29.\" $FreeBSD$ 30.\" 31.Dd March 2, 2020 32.Dt TFTP 1 33.Os 34.Sh NAME 35.Nm tftp 36.Nd trivial file transfer program 37.Sh SYNOPSIS 38.Nm 39.Op Ar host Op Ar port 40.Sh DESCRIPTION 41The 42.Nm 43utility is the user interface to the Internet 44.Tn TFTP 45(Trivial File Transfer Protocol), 46which allows users to transfer files to and from a remote machine. 47The remote 48.Ar host 49may be specified on the command line, in which case 50.Nm 51uses 52.Ar host 53as the default host for future transfers (see the 54.Cm connect 55command below). 56.Sh COMMANDS 57Once 58.Nm 59is running, it issues the prompt 60.Dq Li tftp> 61and recognizes the following commands: 62.Pp 63.Bl -tag -width verbose -compact 64.It Cm \&? Ar command-name ... 65Print help information. 66.Pp 67.It Cm ascii 68Shorthand for "mode ascii" 69.Pp 70.It Cm binary 71Shorthand for "mode binary" 72.Pp 73.It Cm blocksize Ar [size] 74Sets the TFTP blksize option in TFTP Read Request or Write Request packets 75to 76.Ar [size] 77as specified in RFC 2348. 78Valid values are between 8 and 65464. 79If no blocksize is specified, then by default a blocksize of 512 bytes 80will be used. 81.Pp 82.It Cm blocksize2 Ar [size] 83Sets the TFTP blksize2 option in TFTP Read Request or Write Request packets 84to 85.Ar [size] . 86Values are restricted to powers of 2 between 8 and 32768. 87This is a non-standard TFTP option. 88.Pp 89.It Cm connect Ar host Op Ar port 90Set the 91.Ar host 92(and optionally 93.Ar port ) 94for transfers. 95Note that the 96.Tn TFTP 97protocol, unlike the 98.Tn FTP 99protocol, 100does not maintain connections between transfers; thus, the 101.Cm connect 102command does not actually create a connection, 103but merely remembers what host is to be used for transfers. 104You do not have to use the 105.Cm connect 106command; the remote host can be specified as part of the 107.Cm get 108or 109.Cm put 110commands. 111.Pp 112.It Cm debug Ar level 113Enable or disable debugging levels during verbose output. 114The value of 115.Ar level 116can be one of 117.Cm packet , simple , options , 118or 119.Cm access . 120.Pp 121.It Cm get Oo Ar host : Oc Ns Ar file Op Ar localname 122.It Cm get Xo 123.Oo Ar host1 : Oc Ns Ar file1 124.Oo Ar host2 : Oc Ns Ar file2 ... 125.Oo Ar hostN : Oc Ns Ar fileN 126.Xc 127Get one or more files from the remote host. 128When using the 129.Ar host 130argument, the 131.Ar host 132will be used as default host for future transfers. 133If 134.Ar localname 135is specified, the file is stored locally as 136.Ar localname , 137otherwise the original filename is used. 138Note that it is not possible to download two files at a time, only 139one, three, or more than three files, at a time. 140.Pp 141To specify an IPv6 numeric address for a host, wrap it using square 142brackets like 143.Dq Li [3ffe:2900:e00c:ffee::1234] : Ns Ar file 144to disambiguate the 145colons used in the IPv6 address from the colon separating the host and 146the filename. 147.Pp 148.It Cm mode Ar transfer-mode 149Set the mode for transfers; 150.Ar transfer-mode 151may be one of 152.Em ascii 153or 154.Em binary . 155The default is 156.Em binary . 157.Pp 158.It Cm packetdrop [arg] 159Randomly drop 160.Ar arg 161out of 100 packets during a transfer. 162This is a debugging feature. 163.Pp 164.It Cm put Ar file Op Oo Ar host : Oc Ns Ar remotename 165.It Cm put Ar file1 file2 ... fileN Op Oo Ar host : Oc Ns Ar remote-directory 166Put a file or set of files to the remote host. 167When 168.Ar remotename 169is specified, the file is stored remotely as 170.Ar remotename , 171otherwise the original filename is used. 172If the 173.Ar remote-directory 174argument is used, the remote host is assumed to be a 175.Ux 176machine. 177To specify an IPv6 numeric address for a 178.Ar host , 179see the example under the 180.Cm get 181command. 182.Pp 183.It Cm options Ar [arg] 184Enable or disable support for TFTP options. 185The valid values of 186.Ar arg 187are 188.Cm on 189(enable RFC 2347 options), 190.Cm off 191(disable RFC 2347 options), and 192.Cm extra 193(toggle support for non-RFC defined options). 194.Pp 195.It Cm quit 196Exit 197.Nm . 198An end of file also exits. 199.Pp 200.It Cm rexmt Ar retransmission-timeout 201Set the per-packet retransmission timeout, in seconds. 202.Pp 203.It Cm rollover [arg] 204Specify the rollover option in TFTP Read Request or Write 205Request packets. 206After 65535 packets have been transmitted, set the block counter to 207.Ar arg . 208Valid values of 209.Ar arg 210are 0 and 1. This is a non-standard TFTP option. 211.Pp 212.It Cm status 213Show current status. 214.Pp 215.It Cm timeout Ar total-transmission-timeout 216Set the total transmission timeout, in seconds. 217.Pp 218.It Cm trace 219Toggle packet tracing. 220.Pp 221.It Cm verbose 222Toggle verbose mode. 223.Pp 224.It Cm windowsize Op Ar size 225Sets the TFTP windowsize option in TFTP Read Request or Write Request packets to 226.Op Ar size 227blocks as specified in RFC 7440. 228Valid values are between 1 and 65535. 229If no windowsize is specified, 230then the default windowsize of 1 block will be used. 231.El 232.Sh SEE ALSO 233.Xr tftpd 8 234.Pp 235The following RFC's are supported: 236.Rs 237.%T RFC 1350: The TFTP Protocol (Revision 2) 238.Re 239.Rs 240.%T RFC 2347: TFTP Option Extension 241.Re 242.Rs 243.%T RFC 2348: TFTP Blocksize Option 244.Re 245.Rs 246.%T RFC 2349: TFTP Timeout Interval and Transfer Size Options 247.Re 248.Rs 249.%T RFC 3617: Uniform Resource Identifier (URI) Scheme and Applicability Statement for the Trivial File Transfer Protocol (TFTP) 250.Re 251.Rs 252.%T RFC 7440: TFTP Windowsize Option 253.Re 254.Pp 255The non-standard 256.Cm rollover 257and 258.Cm blksize2 259TFTP options are mentioned here: 260.Rs 261.%T Extending TFTP 262.%U https://www.compuphase.com/tftp.htm 263.Re 264.Sh HISTORY 265The 266.Nm 267command appeared in 268.Bx 4.3 . 269.Pp 270Edwin Groothuis <edwin@FreeBSD.org> performed a major rewrite of the 271.Xr tftpd 8 272and 273.Nm 274code to support RFC2348. 275.Sh NOTES 276Because there is no user-login or validation within 277the 278.Tn TFTP 279protocol, the remote site will probably have some 280sort of file-access restrictions in place. 281The 282exact methods are specific to each site and therefore 283difficult to document here. 284.Pp 285Files larger than 33488896 octets (65535 blocks) cannot be transferred 286without client and server supporting the TFTP blocksize option (RFC2348), 287or the non-standard TFTP rollover option. 288