From ArchWiki
Revision as of 22:25, 2 February 2013 by Buhman (talk | contribs) (Configuration: cleanup)
Jump to navigation Jump to search

The Trivial File Transfer Protocol (TFTP) provides a minimalistic means for transferring files. It is generally used as a part of PXE booting or for updating configuration and firmware on devices which have limited memory such as routers and printers.

This article describes how to set up a tftpd server under Arch Linux using the tftp-hpa package.


Install the package tftp-hpa which can be found in the official repositories.


Create a copy of the tftpd.service unit, and modify ExecStart with the appropriate directory to use as the tftp root.

# vim /etc/systemd/system/tftpd.service
Description=hpa's original TFTP daemon

ExecStart=/usr/sbin/in.tftpd -s /srv/tftp/



To start the daemon at boot, run:

# systemctl enable tftpd.socket

To start the daemon manually (You must respect this order):

# systemctl start tftpd.socket
# systemctl start tftpd.service

To stop the daemon manually (You must respect this order):

# systemctl stop tftpd.socket
# systemctl stop tftpd.service


To start the daemon at boot, add tftpd to the DAEMONS array in /etc/rc.conf.

To start the daemon manually:

# /etc/rc.d/tftpd start

To start the daemon without a configuration file:

# /usr/sbin/in.tftpd -l -s path/to/folder/to/export


tftpd startup fails if ipv6 is disabled

If tftpd startup fails without leaving error messages, it might be because ipv6 is disabled and you are not explicitly telling tftpd not to use ipv6. You can make tftpd start by enabling ipv6 or by telling tftpd to only use ipv4, adding the '-4' switch to /etc/conf.d/tftpd

TFTPD_ARGS="-l -4 -s /srv/tftp/"