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

60

У меня есть встроенная цель VxWorks, которая должна загружать ядро ​​с моего компьютера с Ubuntu. Как мне установить и запустить TFTP сервер?

user1689961
источник

Ответы:

103

Установка и настройка TFTP-сервера

  1. Установите следующие пакеты.

    sudo apt-get install xinetd tftpd tftp
    
  2. Создайте /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. Создайте папку / tftpboot, она должна соответствовать тому, что вы указали в server_args. в основном это будет tftpboot

    sudo mkdir /tftpboot
    sudo chmod -R 777 /tftpboot
    sudo chown -R nobody /tftpboot
    
  4. Перезапустите службу xinetd.

    более новые системы:

    sudo service xinetd restart
    

    старые системы:

    sudo /etc/init.d/xinetd restart
    

Теперь наш сервер TFTP запущен и работает.

Тестирование нашего сервера TFTP

  1. Создайте файл с именем test с некоторым содержимым в пути / tftpboot сервера tftp

    Получить IP-адрес сервера tftp с помощью команды ifconfig

  2. Теперь в какой-то другой системе выполните следующие шаги.

    tftp 192.168.1.2
    tftp> get test
    Sent 159 bytes in 0.0 seconds
    
    tftp> quit
    
    cat test
    

Источник: http://mohammadthalif.wordpress.com/2010/03/05/install-and-testing-tftpd-in-ubuntudebian/

user1689961
источник
1
нужно изменить только шаг 4, так как xinetd порождается программой upstart. вам нужно перезапустить его с помощью 'service xinetd restart'
BЈовић
3
Я следовал этой инструкции и столкнулся с отказом в разрешении! Имя файла назначения [c2950-i6q4l2-mz.121-22.EA1b.bin]? TFTP: получен код ошибки 2 - нарушение прав доступа% Ошибка открытия tftp: //10.1.11.14/c2950-i6q4l2-mz.121-22.EA1b.bin (в доступе отказано) # копия флеш-памяти: c2950-i6q4l2-mz.121-22 .EA1b.bin tftp: адрес или имя удаленного хоста []? 10.1.11.14 Имя файла назначения [c2950-i6q4l2-mz.121-22.EA1b.bin]? TFTP: получен код ошибки 2 - нарушение прав доступа
Мохаммед Рафи
1
@Mohammad Rafiee: сообщение в блоге, на которое есть ссылка, добавило некоторую информацию: бегите sudo chmod -R 777 /tftpbootмежду шагами 1 и 2 раздела «Тестирование нашего tftp-сервера». Не то чтобы это помогло мне, но похоже, что это помогло другим.
Готье
2
14 апреля это не сработало для меня. Информация о /tftpbootв, /etc/xinetd.d/tftpказалось, не имеет значения. Вместо этого клиент смотрит в каталог, /srv/tftpкак указано в /etc/inetd.conf. Я не знаю, изменился ли порядок вещей после статьи, или я как-то облажался. Если приведенный выше ответ не работает, попробуйте /srv/tftpвместо этого вставить свой тестовый файл .
Готье
2
Обратите внимание, что с Ubuntu 16.04 вы испытаете error code 2 (access violation). Чтобы исправить это поместить tftpboot -sв server_args(не слэш, -sв конце Источник:. Icesquare.com/wordpress/...
CharlesB
7

Вы можете установить, atftpdи он создаст каталог с именем, /tftpbootв котором вы можете разместить свои файлы. Особенно положите pxelinux.0туда файл. Любая будущая конфигурация будет рассмотрена, если это необходимо.

Когда вы устанавливаете пакет с

sudo apt-get install atftpd

он будет использовать Debconf, чтобы предложить вам несколько вариантов. Вы можете установить много вариантов (тайм-аут сервера может быть полезен), особенно базовый путь . Вы также можете настроить диапазон многоадресной рассылки.

ζ--
источник
Для чего нужен pxelinux.0? Я загружаю цель VxWorks, поэтому я подумал, что мне нужен только файл vxworks в / tftpboot.
user1689961
Извините - это не сработало для меня.
user1689961
Попробуйте переименовать vxworksв pxelinux.0, просто чтобы посмотреть , будет ли мой ответ работать для пользователей в будущем.
ζ--
это не работает для 13.04. Я только что попробовал
BЈовић
@ BЈовић Это довольно старый ответ, и я, честно говоря, не знаю процедуру 13.04.
ζ--
6

Вы можете установить tftpd-hpaи изменить настройки. Шаги для установки tftpd-hpa объяснены в этом сообщении в блоге .

irfan_np
источник
2
Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить здесь основные части ответа и предоставить ссылку для справки.
Гюнтберт
1
проголосовал за вас только потому, что tftpd-hpa - глупый простой сервер tftp для использования, и на самом деле он не требует какой-либо конфигурации, необходимой в этом посте, просто поместите ваши файлы в / var / lib / tftpboot, и вы настроены (в Ubuntu 16.04 не уверен о других ОС).
17