IngredientesCómo instalar y configurar servidor y cliente en Debian GNU/Linux y derivados
Crea el directorio /srv/tftp y ponle permisos para nobody. Aquí estarán los ficheros que gestionará el servidor.
# mkdir /srv/tftp
Edita el fichero /etc/inetd.conf y asegurate de que contiene esta línea (o des-coméntala si ya la tiene):
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp
Y reinicia/arranca el superserver:
# /etc/init.d/inetutils-inetd restart
UsoPruébalo con el cliente:
$ tftp example.org
tftp> binary
tftp> get loquesea.mp3
Received 2784015 bytes in 1.1 seconds
tftp> put otracosa.ogg
Sent 2784015 bytes in 0.4 seconds
tftp> quit
Comentarios
Servidor TFTP
Holas buenas, he seguido los pasos de este post para montar un servidor TFTP, esto me funciona siempre y cuando ponga tftp localhost, si pongo tftp IP, no accedo no puedo coger los archivos.
Cuando quiero acceder desde el propio equipo donde esta el servidor no hay problema, pero si quiero acceder desde otro equipo no puedo, le dpy a tfgtp IP, luego binary, luego el archivo que quiero coger con get, pero se me queda ahí y después de un tiempo me pone time out o algo así...
Sabes por que podría ser?
Gracias........
NAPT
Hola:
El servidor TFTP está pensado para atender a varios clientes de forma simultánea. Al ser UDP, eso lo logra utilizando un puerto distinto para cada cliente. Esto es conforme a la RFC 1350
El problema es que si estás detrás de un router NAT, el pobre no sabe que el paquete UDP que vuelve del servidor es una respuesta a tu mensaje (porque viene de un puerto distinto) de modo que lo descarta.
Lo puedes solucionar si configuras tu router para que haga port-forwarding del puerto UDP que esté utilizando tu cliente TFTP, pero para ello tienes que crear el socket con un puerto explícito. En la pregunta 1 de este TFTP FAQ comentan el problema
Todo esto no ocurre si tienes una IP pública.