Comment installer et exécuter un serveur TFTP?


60

J'ai une cible VxWorks intégrée qui doit démarrer son noyau à partir de mon ordinateur Ubuntu. Comment installer et exécuter un serveur TFTP?

Réponses:


103

Installation et configuration du serveur TFTP

  1. Installez les paquets suivants.

    sudo apt-get install xinetd tftpd tftp
    
  2. Créez /etc/xinetd.d/tftp et mettez cette entrée

    service tftp
    {
    protocol        = udp
    port            = 69
    socket_type     = dgram
    wait            = yes
    user            = nobody
    server          = /usr/sbin/in.tftpd
    server_args     = /tftpboot
    disable         = no
    }
    
  3. Créez un dossier / tftpboot qui devrait correspondre à tout ce que vous avez donné dans server_args. surtout ce sera tftpboot

    sudo mkdir /tftpboot
    sudo chmod -R 777 /tftpboot
    sudo chown -R nobody /tftpboot
    
  4. Redémarrez le service xinetd.

    systèmes plus récents:

    sudo service xinetd restart
    

    systèmes plus anciens:

    sudo /etc/init.d/xinetd restart
    

Notre serveur TFTP est maintenant opérationnel.

Test de notre serveur TFTP

  1. Créez un fichier nommé test avec du contenu dans / tftpboot chemin du serveur tftp

    Obtenir l'adresse IP du serveur TFTP à l'aide de la commande ifconfig

  2. Maintenant, dans un autre système, suivez les étapes suivantes.

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

Source: http://mohammadthalif.wordpress.com/2010/03/05/installing-and-testing-tftpd-in-ubuntudebian/


1
seule l'étape 4 doit être changée, car xinetd est créé par upstart. vous devez le redémarrer avec 'service xinetd restart'
— mardi

3
J'ai suivi cette instruction et j'ai vu la permission refusée! Nom du fichier de destination [c2950-i6q4l2-mz.121-22.EA1b.bin]? TFTP: code d'erreur 2 reçu - Violation d'accès% Erreur d'ouverture tftp: //10.1.11.14/c2950-i6q4l2-mz.121-22.EA1b.bin (autorisation refusée) #copy flash: c2950-i6q4l2-mz.121-22 .EA1b.bin tftp: Adresse ou nom de l'hôte distant []? 10.1.11.14 Nom du fichier de destination [c2950-i6q4l2-mz.121-22.EA1b.bin]? TFTP: code d'erreur 2 reçu - Violation d'accès
— Mohammad Rafiee Le

1
@Mohammad Rafiee: le billet de blog lié à ici ajouté quelques informations: exécuté sudo chmod -R 777 /tftpbootentre les étapes 1 et 2 de "Test de notre serveur TFTP". Non pas que cela m'a aidé, mais il semble que cela a aidé les autres.
— Gauthier

2
Le 14 avril, cela n’a pas fonctionné pour moi. Les informations sur /tftpbootdans /etc/xinetd.d/tftpne semblaient pas avoir d'importance. Au lieu de cela, le client cherche dans le répertoire /srv/tftpcomme spécifié dans /etc/inetd.conf. Je ne le fais pas si la manière dont les choses sont configurées a changé depuis l'article ou si j'ai tout gâché. Si la réponse ci-dessus ne vous convient pas, essayez /srv/tftpplutôt de placer votre fichier de test .
— Gauthier

2
Veuillez noter qu'avec Ubuntu 16.04, vous ferez l'expérience error code 2 (access violation). Pour résoudre ce problème mis tftpboot -sen server_args(pas slash, -sà la fin Source:. Icesquare.com/wordpress/...
— CharlesB

7

Vous pouvez installer atftpdet il va créer un répertoire appelé /tftpbootdans lequel vous pouvez placer vos fichiers. Mettez surtout le pxelinux.0fichier là-bas. Toute configuration future sera traitée si nécessaire.

Lorsque vous installez le package avec

sudo apt-get install atftpd

il utilisera Debconf pour vous demander quelques choix. Vous pouvez définir plusieurs choix (le délai d'attente du serveur peut être utile), notamment le chemin de base . Vous pouvez également régler la plage de multidiffusion.


À quoi sert pxelinux.0? Je démarre une cible VxWorks, alors j'ai pensé que je n'avais besoin que du fichier vxworks dans / tftpboot.
— user1689961

Désolé, cela n'a pas fonctionné pour moi.
— user1689961

Essayez de renommer vxworksen pxelinux.0, juste pour voir si ma réponse fonctionnera pour les futurs utilisateurs.
— ζ--

cela ne fonctionne pas pour 13.04. Je viens d'essayer
— Bовић

@ BЈовић C'est une réponse un peu ancienne et honnêtement, je ne connais pas la procédure à suivre pour le 13.04.
— ζ--

6

Vous pouvez installer tftpd-hpaet modifier les configurations. Les étapes pour installer tftpd-hpa sont expliquées dans cet article de blog .


2
Bien que cela puisse théoriquement répondre à la question, il serait préférable d’inclure ici les parties essentielles de la réponse et de fournir le lien à titre de référence.
— Guntbert

1
upvoted vous uniquement parce que tftpd-hpa est un serveur stupide simple à utiliser et qu’il n’exige en fait aucune de la configuration requise dans ce message, il suffit de déposer vos fichiers dans / var / lib / tftpboot et vous êtes prêt (sous Ubuntu 16.04 pas sûr sur les autres OS).
— mschuett
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.