Установим atftpd (в качестве клиента можно использовать как классический tftp, так и его родной atftp, разницы между ними практически нет, но последний немного удобнее использовать в различных скриптах по причине большего количества аргументов командной строки):
apt-get install atftpd atftp
Сам atftpd может работать как в качестве самостоятельного сервера, так и в качестве одной из подсистем суперсервера inetd (или любого его аналога). По умолчанию он настроен на работу через inetd и для его функционирования в /etc/inetd.conf добавляется строка:
tftp dgram udp4 wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd --tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5 /var/lib/tftpboot
Параметров тут перечислено много и информацию по ним лучше всего искать в man-странице atftpd. Основное что нас тут интересует: сервис работает с правами пользователя nobody и считает корнем директорию /var/lib/tftpboot.
Создаём директорию:
mkdir -p /var/lib/tftpboot && chown nobody /var/lib/tftpboot
Создаём тестовый файл:
echo Test File > /var/lib/tftpboot/test && chown nobody /var/lib/tftpboot/test
Пробуем скачать тестовый файл и просмотреть его содержимое:
atftp -g -r test 127.0.0.1 && cat test
Если всё пройдёт нормально то на стандартный вывод будет выдана надпись: "Test File". Если же вместо этого будут какие-то ошибки - нужно начинать искать проблему. Скорее всего она кроется в правах доступа (как и в предыдущем случае).
Использование atftpd в режиме "standalone"
Здесь всё практически так же, как и в предыдущем случае, только нет необходимости запускать суперсервер inetd, поскольку atftpd в этом случае работает как самостоятельный сервер. Если интересен именно такой вариант то нужно сделать следующее: первым делом закоментировать строку запуска atftpd в /etc/inetd.conf:
#
и перезапустить суперсервер:
invoke-rc.d openbsd-inetd restart
Далее нужно поменять значение переменной USE_INETD в файле /etc/default/atftpd с true на false:
#USE_INETD=true
USE_INETD=false
Дополнительные опции для atftpd при такой настройке перечисляются в переменной OPTIONS всё того же файла. Настройки по умолчанию совпадают с настройками по умолчанию для режима "inetd", соответственно проверка работоспособности сервера проводится так же.
В параметрах можно убрать мультикаст удалив параметры --mcast-port, --mcast-addr, --mcast-ttl и указав --no-multicast