Почему я не могу создавать новые файлы на TFTP сервере?

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

Я установил tftpd и xinetd на Ubuntu 13.10 и у меня возникли проблемы с записью на 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     = -c -s /srv/tftp
disable         = no
}

Права доступа на файлы как /etc/xinetd.d/tftp, так и /srv/tftp установлены на 777.

Когда я пытаюсь отправить файл на TFTP сервер или получить что-то с него, я получаю сообщение:

“Время передачи вышло.”

Когда я изменяю server_args на -s /srv/tftp, команда GET работает нормально, а команда PUT работает нормально, когда файл, который отправляется, уже существует на TFTP сервере.

Это локальный ПК.

Что мне нужно сделать, чтобы иметь возможность отправлять файлы, которых нет на TFTP сервере?

Файлы не создаются сервером tftp, вы должны создать их (с правильными, записываемыми правами доступа) перед загрузкой. См. man touch.

Ответ или решение

Для того чтобы понять, почему на вашем TFTP-сервере не удается создавать новые файлы, необходимо рассмотреть несколько аспектов настройки и функционирования самого TFTP-протокола в сочетании с конфигурацией вашей системы.

1. Природа TFTP-протокола

TFTP (Trivial File Transfer Protocol) — это облегченный протокол передачи файлов, который обычно используется для загрузки и выгрузки файлов в сетевых средах с минимальным уровнем безопасности. Одна из главных особенностей TFTP заключается в том, что он не поддерживает некоторые важные функции, такие как аутентификация и сложное управление правами доступа. Это означает, что для успешной работы с файлами TFTP-сервер требует предварительной настройки и создания всех необходимых файлов заранее.

2. Настройка xinetd и TFTP

Ваша конфигурация файла /etc/xinetd.d/tftp выглядит корректно. Тем не менее, обратите внимание на следующие параметры:

  • Пользователь и права: Вы используете пользователя nobody для запуска TFTP-сервера. Убедитесь, что этот пользователь имеет право записывать в директорию, указанную в аргументах сервера (/srv/tftp). Несмотря на то, что права на директории установлены в 777, важно также проверить, что при запуске TFTP-сервера не возникают проблемы с правами доступа у пользователя nobody.

  • Аргументы сервера: Вы указали -c в аргументах сервера, что позволяет клиенту создавать файлы. Однако для этого необходимо, чтобы соответствующие параметры безопасности были настроены правильно. Если сервер не может создать новый файл, это может быть связано с проблемами прав доступа или неинициализированным файлом.

3. Ошибка «Transfer timed out»

Ошибка «Transfer timed out» может возникнуть по нескольким причинам:

  • Сетевые проблемы: Убедитесь, что порты и протоколы для TFTP правильно настроены в вашем фаерволе или маршрутизаторе. TFTP работает на UDP-порту 69, и если этот порт заблокирован, передача файлов будет невозможна.

  • Доступ к серверу: Проверьте, что TFTP-клиент может подключиться к серверу. Для этого можно использовать команды типа tftp <IP-адрес>. Попробуйте выполнить некоторые базовые команды, такие как "get" и "put", чтобы проверить соединение.

4. Создание файлов на сервере

Как уже упоминалось, протокол TFTP требует, чтобы файлы, в которые вы собираетесь загружать данные, существовали заранее. Ваша ситуация с успешной передачей файла, который уже существует, подтверждает это.

Чтобы создать файл перед загрузкой, вы можете использовать команду touch:

touch /srv/tftp/новый_файл.txt

После этого вы сможете загрузить файл на TFTP-сервер.

Подведение итогов

Чтобы исправить проблему с загрузкой новых файлов на TFTP-сервер, выполните следующие шаги:

  1. Убедитесь в правильных правах доступа для директории /srv/tftp и пользователя, под которым запущен TFTP-сервер.
  2. Проверьте настройки фаервола и убедитесь, что транспортный протокол UDP для порта 69 открыт.
  3. Создайте необходимые файлы заранее с помощью команды touch перед их загрузкой на сервер.

Следуя этим рекомендациям, вы сможете успешно загружать файлы на ваш TFTP-сервер.

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

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