Servidor TFTP con inetd en Debian

Cómo instalar y configurar servidor y cliente en Debian GNU/Linux y derivados

Ingredientes
  • inetutils-inetd
  • tftpd
  • tftp
Configuración

Crea el directorio /srv/tftp y ponle permisos para nobody. Aquí estarán los ficheros que gestionará el servidor.

# mkdir /srv/tftp

  1. chown nobody /srv/tftp
  2. chmod 0600 /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

Uso

Prué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

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

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........

Imagen de david

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.

n/d