System Servicestftpfile-transferclientservernetwork

atftp

Advanced TFTP client and server for testing, debugging, and file transfers over Trivial File Transfer Protocol. Supports interactive and non-interactive modes for scripting and implements RFC standards with multicast options.

Description

atftp provides an advanced TFTP client ideal for testing and debugging TFTP servers. It serves as an interactive client but also supports non-interactive invocation, making it suitable for scripts. Commonly used in UEFI/BIOS and bootstrap programs like pxelinux for LAN booting.

The package includes both client (atftp) and server (atftpd) components. The server is multi-threaded, supports all TFTP options per RFC1350, RFC2090, RFC2347, RFC2348, RFC2349, and RFC7440, including multicast (mtftp) for PXE. It can be socket-activated, run via inetd, or as a daemon.

Use cases include network penetration testing for file transfers, PXE booting scenarios, and TFTP server/client validation.

How It Works

Implements TFTP per RFC1350 with extensions: option negotiation (RFC2347), block size (RFC2348), timeout (RFC2349), and multicast (RFC7440/PXE). Client supports get/put operations, Linksys password extension, and scriptable modes. Server handles multi-threading, configurable timeouts/retries, and directory-based file serving (default /tftpboot). Logs packets with trace mode and supports verbose output levels.

Installation

bash
sudo apt install atftp

Flags

-g, --getget file
--mgetget file using mtftp
-p, --putput file
-l, --local-file <file>local file name
-r, --remote-file <file>remote file name
-P, --password <password>specify password (Linksys extension)
--tftp-timeout <value>delay before retransmission, client side
--option <"name value">set option name to value
-t, --tftpd-timeout <value>number of second of inactivity before exiting
-r, --retry-timeout <value>time to wait a reply before retransmition
-m, --maxthread <value>number of concurrent thread allowed
-v, --verbose [value]increase or set the level of output messages
--tracelog all sent and received packets
--no-timeoutdisable 'timeout' from RFC2349
--no-tsizedisable 'tsize' from RFC2349
--no-blksizedisable 'blksize' from RFC2348

Examples

Display help for the atftp client
atftp -h
Basic client usage: connect to TFTP server host on specified port with options
atftp [options] [host] [port]
Get a file from remote TFTP server and save locally
atftp -g --local-file localfile remotehost
Put a local file to remote TFTP server
atftp -p --remote-file remotefile localfile remotehost
Display help for the atftpd server
atftpd -h
Start TFTP server serving specified world-readable/writable directory (default /tftpboot)
atftpd [directory]
Run TFTP server with verbose logging and max 10 concurrent threads
atftpd --verbose --maxthread 10 /tftpboot
Display help for the in.tftpd server
in.tftpd -h
Updated 2026-04-16kali.org ↗