Вопрос или проблема
Я хочу запустить tftp сервер. Здесь я использую inetd.
Конфигурационный файл для tftp в папке inetd.conf.d содержит:
tftp dgram udp wait nobody /sbin/tftpd tftpd -l /var/tftp
Я изменил права доступа к папке tftp на 777 и владельца на nobody.
Когда я запускаю:
systemctl start /etc/init.d/tftpd
Он выдает следующую ошибку:
Failed to start etc-init.d-tftpd.mount: Unit etc-init.d-tftpd.mount failed to load: No such file or directory.
О чем эта ошибка? Как я могу исправить эту ошибку?
Любая помощь будет весьма полезной.
Спасибо…!
Рабочая настройка
Установите следующие пакеты.
sudo apt-get install xinetd tftpd tftp
Создайте /etc/xinetd.d/tftp
и добавьте эту запись
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /tftpboot
disable = no
}
Создайте папку /tftpboot
, это должно соответствовать тому, что вы указали в server_args
. обычно это будет tftpboot
sudo mkdir /tftpboot
sudo chmod -R 777 /tftpboot
sudo chown -R nobody /tftpboot
Перезапустите службу xinetd.
sudo /etc/init.d/xinetd restart
Мой совет — перейти на tftpd-hpa
sudo apt install tftpd-hpa
После установки отредактируйте конфигурационный файл
sudo vi /etc/default/tftpd-hpa
файл должен содержать что-то подобное
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure -c"
Ответ или решение
Для запуска TFTP-сервера с использованием inetd, необходимо учитывать несколько ключевых моментов для корректной настройки и отладки. Рассмотрим шаги и возможные ошибки в процессе настройки, а также способы их устранения.
Шаги по настройке TFTP-сервера через inetd
-
Инсталляция необходимых пакетов:
Убедитесь, что все необходимые пакеты установлены. Вы можете использовать следующую команду для установки:sudo apt-get install xinetd tftpd tftp
-
Конфигурация xinetd:
Создайте файл конфигурации для TFTP. Обычно файл/etc/xinetd.d/tftp
содержит следующие настройки:service tftp { protocol = udp port = 69 socket_type = dgram wait = yes user = nobody server = /usr/sbin/in.tftpd server_args = /tftpboot disable = no }
-
Создание и настройка директории TFTP:
Создайте директорию, которая будет использоваться сервером TFTP (например,/tftpboot
):sudo mkdir /tftpboot sudo chmod -R 777 /tftpboot sudo chown -R nobody /tftpboot
Убедитесь, что эта директория соответствует пути, указанному в
server_args
. -
Перезапуск службы xinetd:
После завершения конфигурации перезапустите службу:sudo /etc/init.d/xinetd restart
Решение ошибки
При попытке запустить службу с помощью команды:
systemctl start /etc/init.d/tftpd
Вы столкнулись с ошибкой:
Failed to start etc-init.d-tftpd.mount: Unit etc-init.d-tftpd.mount failed to load: No such file or directory.
Эта ошибка указывает на неправильное использование команды systemctl
, так как она ожидает загрузку .mount-юнита, в то время как вы хотите запустить иную службу. Вероятнее всего, вы имели в виду:
sudo systemctl restart xinetd
или, если xinetd
установлен:
sudo /etc/init.d/xinetd restart
Рекомендации
Если настройка через xinetd
вызывает трудности, вы можете рассмотреть возможность использования tftpd-hpa
, так как этот пакет часто более прост в конфигурации и поддержке.
-
Установка tftpd-hpa:
sudo apt install tftpd-hpa
-
Конфигурация tftpd-hpa:
Отредактируйте конфигурационный файл/etc/default/tftpd-hpa
:TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure -c"
Использование tftpd-hpa
может значительно упростить администрирование вашего TFTP-сервера. Надеемся, что эти рекомендации помогут вам в успешном развертывании TFTP-сервера.