TFTP: не удалось отправить/получить файл, ошибка: TFTP, Код операции: Код ошибки (5)

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

Я пытаюсь отправить/получить файл с помощью TFTP с сетевого переключателя на ubuntu (VirtualBox на Windows 10 Pro), но получаю код ошибки 5

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

/home/abc# tftp localhost

tftp> put test

Отправлено 16 байт за 0.0 секунд

tftp> get test

Получено 16 байт за 0.0 секунд

root@abc:/home/abc# ls -l /var/lib/tftpboot/
всего 4
-rwxrwxrwx 1 root root 14 Сен  6 18:03 test

Когда я использовал команду на переключателе для отправки/получения файла, я получаю сообщение об ошибке:

Протокол простой передачи файлов

Opcode: Код ошибки (5)

[Целевой файл: test]

Код ошибки: Нарушение доступа (2)

Сообщение об ошибке: Нарушение доступа

[Информация эксперта (Предупреждение/Ответ): TFTP ERROR пакет]

[TFTP ERROR пакет]

[Уровень серьезности: Предупреждение]

[Группа: Ответ]

Не могли бы вы подсказать мне, как решить эту проблему?

https://icesquare.com/wordpress/how-to-setup-tftp-on-ubuntu/

Сначала давайте установим все необходимые пакеты:

sudo apt-get install xinetd tftpd tftp -y

Далее нам нужно создать файл конфигурации:

sudo nano /etc/xinetd.d/tftp

Вставьте следующее содержимое в файл.

service tftp
{
   protocol = udp
   port = 69
   socket_type = dgram
   wait = yes
   user = nobody
   server = /usr/sbin/in.tftpd
   server_args = var/lib/tftpboot -s
   disable = no
}

В server_args у меня указано var/lib/tftpboot, которое представляет собой расположение корня tftp, т.е. /var/lib/tftpboot. Обратите внимание, что я пропускаю корень /.

Теперь давайте изменим владельца каталога:

sudo mkdir /var/lib/tftpboot
sudo chown -R nobody:nobody /var/lib/tftpboot
sudo chmod -R 777 /var/lib/tftpboot

и запустим службу TFTP:

sudo service xinetd stop
sudo service xinetd start

Проверьте, работает ли TFTP правильно:

netstat -na | grep LIST | grep 69
Вы должны видеть что-то вроде этого:
tcp        0      0 0.0.0.0:69              0.0.0.0:*     LISTEN

Тест: Загрузите файл на TFTP сервер
Теперь давайте протестируем TFTP сервер, сначала войдя на сервер:

tftp localhost
и загрузим файл:

tftp> put myfile.jpg
Отправлено 56733279 байт за 5.7 секунд
Выйти:
q

Убедитесь, что файл был загружен:

ls -l /var/lib/tftpboot

Тест: Скачайте файл с TFTP сервера
Теперь давайте перейдем в другой каталог и загрузим файл, который мы только что загрузили.

cd some_other_directory

и снова войдите на tftp сервер:

tftp localhost

и получите файл:

tftp> get myfile.jpg
Получено 56733279 байт за 5.7 секунд

Проблема заключалась в том, что IP-адрес сети переключателя и IP-адрес машины Ubuntu находились в разных сетях. Проблема была решена путем установки статического IP-адреса моей машины Ubuntu в ту же сеть, что и IP-адрес переключателя.

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

Ошибка TFTP: Код ошибки (5) и ее Решение

При выполнении передачи файлов с помощью TFTP (Trivial File Transfer Protocol) могут возникать различные ошибки, одной из которых является ошибка с кодом 5 – «Access violation» (нарушение доступа). В данном ответе мы рассмотрим, как устранить данную проблему при работе с TFTP на примере вашего случая, когда ошибки возникли при передаче файлов между сетевым коммутатором и виртуальной машиной с Ubuntu.

1. Понимание Ошибки TFTP Код 5

Ошибка с кодом 5 указывает на нарушение доступа, что означает, что TFTP сервер не может завершить запрашиваемую операцию по различным причинам. Это может быть вызвано:

  • Необходимыми правами на каталоги или файлы.
  • Неправильной настройкой TFTP сервера.
  • Несоответствующими сетевыми настройками.

2. Проверка Настройки TFTP Сервер

Вы привели подробные шаги по настройке TFTP сервера, и они выглядят корректно. Обратите внимание на следующие ключевые моменты, которые могли вызвать отключение:

  • Права доступа. Убедитесь, что каталог /var/lib/tftpboot, а также все файлы внутри него имеют корректные права доступа и принадлежат пользователю, от имени которого работает TFTP сервер. Например:

    sudo chown -R nobody:nobody /var/lib/tftpboot
    sudo chmod -R 777 /var/lib/tftpboot
  • Параметры запуска. Проверьте настройки сервера в файле конфигурации /etc/xinetd.d/tftp. Убедитесь, что путь к корневому каталогу задан правильно и что указатель -s используется корректно:

    server_args = /var/lib/tftpboot -s

3. Сетевые Настройки

Как вы упомянули, проблема была решена путем обеспечения того, чтобы IP-адрес виртуальной машины Ubuntu находился в одной подсети с IP-адресом сетевого коммутатора. Это крайне важно, так как:

  • Коммуникация между устройствами. Протокол TFTP работает по UDP, и если устройства находятся в разных подсетях без корректно настроенных маршрутизаций, они не смогут обмениваться данными.

Рекомендации по настройке сети:

  1. Установите статический IP на Ubuntu: Убедитесь, что статический IP-адрес вашей виртуальной машины совпадает с сетевой подсетью коммутатора.

  2. Проверка сетевых соединений: Используйте команду ping, чтобы проверить доступность маршрутов:

    ping <IP-адрес-коммутатора>
  3. Проверьте таблицы маршрутизации: Убедитесь, что маршрутизация настроена корректно на обоих устройствах.

4. Дополнительные Рекомендации

  • Логи TFTP. Всегда проверяйте логи TFTP сервера на наличие подсказок о возникшей ошибке. Логи можно найти в /var/log/syslog или /var/log/messages в зависимости от конфигурации.

  • Тестирование с помощью локального подключения. Сначала настройте и протестируйте TFTP-соединение с помощью локальной сети (например, TFTP на localhost), чтобы убедиться, что сервер функционирует.

Заключение

Ошибки TFTP могут быть связаны как с неправильными настройками сервера, так и с проблемами сетевой доступности. Убедившись, что вы находитесь в одной подсети и что права доступа на файлы соответствуют требованиям системы, можно легко устранить код ошибки 5 «Access violation». Если ошибка продолжает возникать, тщательно проверьте конфигурацию сети и права доступа.

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

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

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