Как запустить TFTP-сервер с использованием inetd?

Вопрос или проблема

Я хочу запустить 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

  1. Инсталляция необходимых пакетов:
    Убедитесь, что все необходимые пакеты установлены. Вы можете использовать следующую команду для установки:

    sudo apt-get install xinetd tftpd tftp
  2. Конфигурация 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
    }
  3. Создание и настройка директории TFTP:
    Создайте директорию, которая будет использоваться сервером TFTP (например, /tftpboot):

    sudo mkdir /tftpboot
    sudo chmod -R 777 /tftpboot
    sudo chown -R nobody /tftpboot

    Убедитесь, что эта директория соответствует пути, указанному в server_args.

  4. Перезапуск службы 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, так как этот пакет часто более прост в конфигурации и поддержке.

  1. Установка tftpd-hpa:

    sudo apt install tftpd-hpa
  2. Конфигурация 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-сервера.

Оцените материал
Добавить комментарий

Капча загружается...