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?

utilisateur1689961
la source

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/

utilisateur1689961
la source
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.

ζ--
la source
À 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 .

irfan_np
la source
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