2

Я пытаюсь отправить файл на TFTP-сервер, используя следующую команду:

tftp -p -l test.txt xx.xx.xx.xx

И использование TFTP:

BusyBox v1.13.2 (2011-03-24 18:58:44 CDT) двоичный файл с несколькими вызовами

Использование: tftp [ОПЦИЯ] ... ХОСТ [ПОРТ]

Перенести файл с / на tftp сервер

Опции: -l FILE Local FILE -r FILE Remote FILE -g Получить файл -p Поместить файл

Когда я попытался отправить файл с помощью вышеуказанной команды, я получил эту ошибку: tftp: server error: (2) Access violation....

Но если я вручную создаю test.txt (имя файла, которое мне нужно было отправить) на сервере, а затем пытаюсь передать его на сервер, он успешно загружен.

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

Я использую сервис xinetd для tftp сервера, и ниже его конфигурационный файл.

/etc/xinetd.d/tftp: служба tftp {протокол = порт udp = 69 socket_type = dgram wait = да пользователь = корневой сервер = /usr/sbin/in.tftpd server_args = /tftpboot / disable = no}

2 ответа2

1

Так вот как я отладил проблему.

# tail /var/log/syslog

Вывод вышеуказанной команды говорит, что tftpd обслуживал файлы из /srv/tftp но в /srv/tftp нет упоминания о /etc/xinetd.d/tftp .

Также этот пост помог отладить проблему: http://toddharris.net/blog/2011/06/19/debugging-xinetd-at-system-launch/. Запуск xinetd в режиме отладки не вызвал этой проблемы.

Преступником была строка tftp в /etc/inetd.conf как упоминалось в следующей ссылке:http://www.beer.org/blog/category/tech-stuff.html Скорее всего, когда xinetd работает как демон, /etc/inetd.conf имеет приоритет над файлами конфигурации в каталоге /etc/xinetd.d и именно поэтому эта проблема возникает, когда xinetd запускается как демон.

Закомментируйте строку tftp в /etc/inetd.conf и перезапустите xinetd, и это решило эту проблему.

0

Добавьте -c к вашему server_args:

server_args = -c /tftpboot/

Смотрите справочную страницу tftpd(8).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .