// Engineering Log
Protocolos de transferencia de archivos: Parte 3 — TFTP y SCP
Publicado el 22.09.2026
TFTP y SCP no compiten con FTP y SFTP por el papel de método principal para el intercambio de archivos. Son herramientas especializadas: la primera se necesita para el equipo de red y el arranque por red, la segunda —para copias rápidas entre servidores por SSH. Pero se encuentran constantemente, y ambas tienen particularidades que conviene conocer.
TFTP: protocolo mínimo para el equipo
TFTP (Trivial File Transfer Protocol) está descrito en el RFC 1350. Funciona sobre UDP, el servidor escucha en el puerto 69. El protocolo hace exactamente dos cosas — leer un archivo y escribir un archivo — y nada más:
- sin autenticación: ni usuario ni contraseña;
- no hay listado de directorios: hay que conocer el nombre del archivo de antemano;
- sin cifrado;
- los datos se transmiten en bloques de 512 bytes, cada bloque se confirma antes de enviar el siguiente, por eso en enlaces con latencia TFTP es lento.
Esa simplicidad no es una desventaja, es el objetivo. El cliente TFTP cabe en la ROM de la tarjeta de red o en el bootloader del router, donde no hay espacio para una pila completa.
Dónde se usa TFTP
- Arranque por red (PXE). Un equipo sin disco obtiene del servidor DHCP la dirección del servidor TFTP y el nombre del archivo de arranque, descarga el bootloader por TFTP y continúa el arranque. Así se despliegan sistemas operativos en decenas de máquinas y se arrancan clientes ligeros.
- Firmwares y configuraciones del equipo de red. Switches, routers y teléfonos IP pueden descargar firmware o configuración desde un servidor TFTP. Los teléfonos IP al arrancar a menudo descargan sus ajustes de esta manera.
- Recuperación de un dispositivo “brickeado”. Muchos routers en modo de recuperación aceptan el firmware únicamente por TFTP.
Cómo poner en marcha un servidor TFTP de forma segura
En Debian y Ubuntu es común el paquete tftpd-hpa. La configuración está en /etc/default/tftpd-hpa:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="192.0.2.5:69"
TFTP_OPTIONS="--secure"--securelimita el servidor al directorio/srv/tftp: el cliente no podrá solicitar un archivo fuera de él.TFTP_ADDRESSes mejor enlazarlo a una dirección en la red interna, no a todas las interfaces.- La escritura de archivos está deshabilitada por defecto — actívela solo si el dispositivo realmente debe subir archivos al servidor.
Riesgos de TFTP
La ausencia de autenticación significa que cualquiera que vea el servidor puede descargar cualquier archivo de su directorio si conoce o adivina el nombre. Y en las configuraciones de teléfonos IP y routers con frecuencia hay contraseñas de cuentas SIP y claves. Por eso:
- nunca se abre un servidor TFTP a Internet — solo en la red interna o en un VLAN separado para el equipo;
- en el directorio se guarda solo lo que los dispositivos necesitan ahora;
- tras actualizar el firmware del equipo se detiene el servidor si ya no es necesario.
SCP: copia por SSH
SCP (secure copy) es un comando para copiar archivos entre equipos a través de SSH. La sintaxis imita a la de cp:
# copiar archivo al servidor
scp backup.tar.gz admin@192.0.2.10:/srv/backup/
# copiar directorio desde el servidor, preservando fechas y permisos
scp -rp admin@192.0.2.10:/var/www/site ./site-copyLa autenticación, el cifrado y las claves son las mismas que las de SSH, por lo que no hace falta un servidor aparte: si es posible conectarse por SSH a la máquina, también se puede copiar archivos.
Qué cambió en OpenSSH 9.0
Históricamente scp usaba su propio protocolo scp/rcp. Tenía problemas de diseño: los nombres de archivo eran procesados por la shell remota, por lo que había que escapar los espacios y caracteres especiales dos veces, y se encontraron vulnerabilidades en el propio protocolo.
A partir de OpenSSH 9.0 (2022) el comando scp por defecto funciona sobre el protocolo SFTP. Para el usuario la sintaxis no cambió, pero bajo el capó ahora es el mismo protocolo que sftp. Si la parte remota no soporta SFTP —por ejemplo, un dispositivo antiguo o un servidor SSH recortado— se puede volver al protocolo antiguo con la opción -O:
scp -O firmware.bin admin@192.0.2.20:/tmp/De esto se deduce que la contraposición «SCP — no interactivo, SFTP — interactivo» ahora describe distintas interfaces, no diferentes protocolos. scp es cómodo para un comando puntual, sftp —para trabajar en una sesión interactiva o en un script por lotes.
Con qué sustituir SCP para tareas regulares
- rsync sobre SSH — transmite solo las partes modificadas de los archivos, puede continuar una transferencia interrumpida y sincronizar directorios. Para copias de seguridad y copias regulares es mejor que
scp. - sftp en modo batch —
sftp -b commands.txt user@hostejecuta una lista de comandos preparada de antemano, útil para transferencias programadas.
Errores típicos
- Servidor TFTP abierto a Internet. Cualquiera puede descargar configuraciones con contraseñas.
- El firewall permite el puerto 69, pero TFTP sigue sin funcionar. Los datos salen desde otro puerto aleatorio del servidor, por lo que se necesita un módulo de seguimiento de conexiones para TFTP (conntrack helper) o permitir el tráfico de respuesta.
- Scripts antiguos con
scpfallan en el servidor nuevo. La causa suele ser SFTP por defecto: la parte remota no soporta SFTP —ayuda-O, pero es mejor actualizar la parte remota. - Copiar directorios grandes con
scp -rcada vez por completo. Para tareas repetitivas use rsync.
// Contact
¿Necesitas ayuda?
Escríbeme y te ayudaré a resolver el problema
Respondo en un día laborable (03:00-13:00 GMT)
Или оставьте заявку здесь:
// Related