Wie installiere und führe ich einen TFTP-Server aus?

60

Ich habe ein eingebettetes VxWorks-Ziel, das seinen Kernel von meinem Ubuntu-Computer booten muss. Wie installiere und führe ich einen TFTP-Server aus?

user1689961
quelle

Antworten:

103

TFTP-Server installieren und einrichten

  1. Installieren Sie die folgenden Pakete.

    sudo apt-get install xinetd tftpd tftp
    
  2. Erstellen Sie /etc/xinetd.d/tftp und setzen Sie diesen Eintrag

    service tftp
    {
    protocol        = udp
    port            = 69
    socket_type     = dgram
    wait            = yes
    user            = nobody
    server          = /usr/sbin/in.tftpd
    server_args     = /tftpboot
    disable         = no
    }
    
  3. Erstellen Sie einen Ordner / tftpboot, der mit den Angaben in server_args übereinstimmen sollte. meistens wird es tftpboot sein

    sudo mkdir /tftpboot
    sudo chmod -R 777 /tftpboot
    sudo chown -R nobody /tftpboot
    
  4. Starten Sie den xinetd-Dienst neu.

    neuere Systeme:

    sudo service xinetd restart
    

    ältere Systeme:

    sudo /etc/init.d/xinetd restart
    

Jetzt ist unser TFTP-Server in Betrieb.

Testen Sie unseren TFTP-Server

  1. Erstellen Sie eine Datei mit dem Namen test mit Inhalten im Pfad / tftpboot des tftp-Servers

    Ermitteln Sie die IP-Adresse des TFTP-Servers mit dem Befehl ifconfig

  2. Befolgen Sie nun in einem anderen System die folgenden Schritte.

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

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

user1689961
quelle
1
es muss nur Schritt 4 geändert werden, da xinetd von upstart erzeugt wird. Sie müssen es mit "Service Xinetd Restart" neu starten
BЈовић
3
Ich folgte dieser Anweisung und sah mich einer verweigerten Erlaubnis gegenüber! Zieldateiname [c2950-i6q4l2-mz.121-22.EA1b.bin]? TFTP: Fehlercode 2 empfangen - Zugriffsverletzung% Fehler beim Öffnen von tftp: //10.1.11.14/c2950-i6q4l2-mz.121-22.EA1b.bin (Berechtigung verweigert) #copy flash: c2950-i6q4l2-mz.121-22 .EA1b.bin tftp: Adresse oder Name des entfernten Hosts []? 10.1.11.14 Zieldateiname [c2950-i6q4l2-mz.121-22.EA1b.bin]? TFTP: Fehlercode 2 erhalten - Zugriffsverletzung
Mohammad Rafiee
1
@Mohammad Rafiee: Der hier verlinkte Blog-Beitrag fügte einige Informationen hinzu: sudo chmod -R 777 /tftpbootzwischen Schritt 1 und 2 von "Testen unseres TFTP-Servers". Nicht, dass es mir geholfen hätte, aber es sieht so aus, als ob es anderen geholfen hätte.
Gauthier
2
Am 14.04 hat das bei mir nicht geklappt. Die Informationen über /tftpbootin /etc/xinetd.d/tftpschienen keine Rolle zu spielen. Stattdessen sucht der Client im Verzeichnis /srv/tftpwie in angegeben /etc/inetd.conf. Ich weiß nicht, ob sich das Setup seit dem Artikel geändert hat oder ob ich es irgendwie vermasselt habe. Wenn die obige Antwort für Sie nicht funktioniert, versuchen Sie /srv/tftpstattdessen , Ihre Testdatei einzulegen .
Gauthier
2
Bitte beachten Sie, dass Sie mit Ubuntu 16.04 erleben werden error code 2 (access violation). Um es zu beheben setzen tftpboot -sin server_args(keine führende Schrägstrich, -sam Ende . Quelle: icesquare.com/wordpress/...
charlesb
7

Sie können installieren atftpdund es wird ein Verzeichnis namens erstellt, /tftpbootin dem Sie Ihre Dateien ablegen können. Legen Sie dort vor allem die pxelinux.0Datei ab. Jede zukünftige Konfiguration wird angesprochen, falls dies erforderlich ist.

Wenn Sie das Paket mit installieren

sudo apt-get install atftpd

Es wird Debconf verwenden, um Sie nach einer Auswahl zu fragen. Sie können viele Optionen festlegen (möglicherweise ist eine Zeitüberschreitung des Servers hilfreich), insbesondere den Basispfad . Sie können auch den Multicast-Bereich anpassen.

ζ--
quelle
Wofür ist pxelinux.0? Ich boote ein VxWorks-Ziel und dachte, ich brauche nur die Datei vxworks in / tftpboot.
user1689961
Sorry - das hat bei mir nicht geklappt.
user1689961
Versuchen Sie die Umbenennung vxworkszu pxelinux.0, nur um zu sehen , ob meine Antwort für zukünftige Benutzer arbeiten.
ζ--
Dies funktioniert nicht für den 13.04. Ich habe gerade versucht
B --овић
@ BЈовић Dies ist eine etwas alte Antwort und ich kenne ehrlich gesagt das Verfahren für den 13.04.
ζ--
5

Sie können tftpd-hpadie Konfigurationen installieren und ändern. Schritte zum Installieren von tftpd-hpa werden in diesem Blogbeitrag erläutert .

irfan_np
quelle
2
Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
guntbert
habe dich nur deshalb upvottet, weil tftpd-hpa ein dummer einfacher tftp-server ist und eigentlich keine der in diesem post benötigten configs benötigt, lege einfach deine dateien in / var / lib / tftpboot ab und du bist festgelegt (auf ubuntu 16.04 nicht sicher) über andere Betriebssysteme).
Mschuett