Установка, использование клиента и сервера tftp |
![]() |
Добавил(а) microsin |
Протокол TFTP (Trivial File Transfer Protocol) часто используется для обмена файлами в изначально безопасной среде, обычно для обновления прошивок сетевых устройств через локальную сеть. На Ubuntu клиент TFTP (tftp или tftp-hpa) и сервер TFTP (tftpd-hpa) устанавливаются обычными командами менеджера пакетов apt. [Установка клиента tftp] $ sudo apt install tftp
... или: $ sudo apt install tftp-hpa
[Установка сервера tftp] 1. Создайте директорию для файлов сервера: $ mkdir -p ~/tftp
2. Создайте файл настроек сервера: $ sudo gedit /etc/default/tftpd-hpa
3. Добавьте в файл tftpd-hpa следующие строки, и сохраните его: TFTP_USERNAME="tftp" 4. Установка сервера: $ sudo apt install tftpd-hpa
[Устранение проблем с tftp] Ошибка "tftpd-hpa.service not found". Команда запуска или перезапуска сообщает, что служба tftpd-hpa.service не найдена, например: $ sudo service tftpd-hpa restart
Failed to restart tftpd-hpa.service: Unit tftpd-hpa.service not found.
Возможно, что была пропущена буква 'd' в команде $ sudo apt install tftpd-hpa, т. е. по ошибке был установлен клиент tftpd-hpa. Проверить, что конкретно установлено, можно командами apt show tftp-hpa и apt show tftpd-hpa. Ошибка cannot open IPv6 socket. Попытка установки службы приводит к следующему сообщению: $ sudo apt install tftpd-hpa
[sudo] password for username:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:
pxelinux
The following NEW packages will be installed:
tftpd-hpa
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 40,7 kB of archives.
After this operation, 122 kB of additional disk space will be used.
Get:1 http://ru.archive.ubuntu.com/ubuntu jammy/main amd64 tftpd-hpa amd64 5.2+20150808-1.2build2 [40,7 kB]
Fetched 40,7 kB in 2s (23,7 kB/s)
Preconfiguring packages ...
Selecting previously unselected package tftpd-hpa.
(Reading database ... 306002 files and directories currently installed.)
Preparing to unpack .../tftpd-hpa_5.2+20150808-1.2build2_amd64.deb ...
Unpacking tftpd-hpa (5.2+20150808-1.2build2) ...
Setting up tftpd-hpa (5.2+20150808-1.2build2) ...
Job for tftpd-hpa.service failed because the control process exited with error code.
See "systemctl status tftpd-hpa.service" and "journalctl -xeu tftpd-hpa.service" for details.
invoke-rc.d: initscript tftpd-hpa, action "start" failed.
× tftpd-hpa.service - LSB: HPA's tftp server
Loaded: loaded (/etc/init.d/tftpd-hpa; generated)
Active: failed (Result: exit-code) since Wed 2024-08-28 12:48:47 MSK; 11ms ago
Docs: man:systemd-sysv-generator(8)
Process: 2070986 ExecStart=/etc/init.d/tftpd-hpa start (code=exited, status=71)
CPU: 27ms
Результат выполнения команды systemctl status tftpd-hpa.service: $ sudo systemctl status tftpd-hpa.service
× tftpd-hpa.service - LSB: HPA's tftp server
Loaded: loaded (/etc/init.d/tftpd-hpa; generated)
Active: failed (Result: exit-code) since Thu 2024-08-29 07:09:11 MSK; 41min ago
Docs: man:systemd-sysv-generator(8)
Process: 2329385 ExecStart=/etc/init.d/tftpd-hpa start (code=exited, status=71)
CPU: 15ms
Такая ошибка возникает, если запрещен протокол IPv6. Проблема решается редактированием опции TFTP_OPTIONS в файле /etc/default/tftpd-hpa, необходимо строчку TFTP_OPTIONS="--secure" заменить на TFTP_OPTIONS="--secure --ipv4" [3], например: TFTP_USERNAME="tftp" NAME tftp — утилита для использования протокола TFTP. SYNOPSIS tftp [host] ОПИСАНИЕ Tftp это интерфейс пользователя к Internet TFTP (Trivial File Transfer Protocol), позволяющего передавать файлы на сетевой хост или обратно. Сетевой хост может быть указан через командную строку, в этом случае tftp использует хост как хост по умолчанию для будущих передач (см. далее описание команды connect). КОМАНДЫ Когда утилита tftp запущена, она выдает приглашение "tftp> ", и распознает следующие команды: ? command-name ... Напечатает подсказку по командеPrint help information. ascii Сокращение для "mode ascii". binary Сокращение для "mode binary". connect host-name [port] Установит имя (адрес) целевого хоста (и опционально его порт подключения) для осуществления передач файла. Обратите внимание, что протокол TFTP, в отличие от протокола FTP, не сохраняет соединения между отдельными транзакциями. Таким образом, команда connect на самом деле не создает соединение, а скорее запоминает, какой хост будет использоваться для передач. Вам не обязательно использовать команду connect; сетевой хост может быть указан как часть команд get или put. get filename Получит (скачает через сеть) файл или набор файлов из указанных источников. Источник может быть в одной из двух форм: имя файла на сетевом хосте, если хост был уже указан, либо строка в виде hosts:filename, чтобы одновременно указать хост и имя файла. Если используется последняя форма, то последний указанный хост будет использоваться как хост по умолчанию для будущих передач команд команд get или put. mode transfer-mode Установит режим передач; transfer-mode может быть ascii или binary. По умолчанию используется ascii. put file Выгрузит файл или набор файлов в указанный файл на сетевом хосте, либо директорию на сетевом хосте. Место назначения может быть указано одной из двух форм: имя файла на сетевом хосте, если сетевой хост был указан, либо строкой вида hosts:filename для одновременного указания сетевого хоста и имени файла. Если используется последняя форма, то последний указанный хост будет использоваться как хост по умолчанию для будущих передач команд команд get или put. Если используется форма remote-directory, то подразумевается, что сетевой хост это машина UNIX. quit Выход из утилиты tftp. rexmt retransmission-timeout Установит в секундах таймаут повторной передачи на пакет. status Покажет текущий статус. timeout total-transmission-timeout Установит общий таймаут передачи, в секундах. trace Переключает трассировку пакета. verbose Переключает режим подробного вывода сообщений. BUGS Поскольку протокол TFTP не предусматривает логина или проверки пользователя, то сетевой хост вероятно должен иметь какие-либо способы ограничения к себе доступа. HISTORY Команда tftp появилась в 4.3BSD. [Ссылки] 1. How to Install and Configure TFTP Server on Ubuntu and Debian site:tecmint.com. |