Apuntes sobre Otras cosas

Cajón Desastre: Todo lo que no encaja en ninguna parte.

Protocolos, clientes y uso básico

1. Protocolos de transferencia de archivos

Un protocolo es como un idioma común que cliente y servidor usan para comunicarse.
En este contexto tenemos tres principales:

  • FTP (File Transfer Protocol)
    • El más veterano, puerto 21.
    • No cifra nada: datos y contraseñas viajan en texto plano.
    • Hoy en día, solo recomendable en redes seguras o para servidores públicos de solo lectura.
  • SFTP (SSH File Transfer Protocol)
    • No es "FTP con cifrado" sino un protocolo distinto que se transporta dentro de SSH (puerto 22).
    • Cifra todo el tráfico.
    • Requiere que el servidor tenga servidor SSH habilitado.
  • FTPS (FTP Secure)
    • Es FTP "clásico" con una capa SSL/TLS, como HTTPS en la web.
    • Usa puertos 21 o 990 según el modo (explícito o implícito).
    • Compatible con muchos clientes gráficos y de consola.

2. Clientes: programas que hablan estos protocolos

Un cliente es el software que nos permite conectarnos a un servidor usando uno de estos protocolos.

Ejemplos:

  • ftp → cliente clásico de consola para protocolo FTP.
  • sftp → cliente de consola para SFTP (incluido en OpenSSH).
  • lftp → cliente avanzado de consola que soporta FTP, SFTP, FTPS y otros.
  • FileZilla, WinSCP → clientes gráficos multiplataforma.

Un cliente puede soportar varios protocolos, pero en cada conexión usa solo uno.

3. Conexión y diálogo: ejemplos prácticos

3.1 FTP clásico en Linux

$ ftp ftp.gnu.org
Connected to ftp.gnu.org.
220 GNU FTP server ready.
Name (ftp.gnu.org:usuario_local): anonymous
331 Please specify the password.
Password: tu_email@example.com
230 Login successful.
ftp> ls
-rw-r--r--   1 ftp   ftp     12345 Jan 01 12:00 README
ftp> get README
local: README remote: README
226 Transfer complete.
ftp> bye

3.2 SFTP (más seguro)

$ sftp usuario@servidor.com
usuario@servidor.com's password: ********
Connected to servidor.com.
sftp> ls
backup/
datos.txt
sftp> get datos.txt
Fetching /home/usuario/datos.txt to datos.txt
sftp> put informe.pdf
Uploading informe.pdf to /home/usuario/informe.pdf
sftp> bye

3.3 lftp con SFTP

$ lftp -u usuario sftp://servidor.com
Password: ********
lftp usuario@servidor.com:~> mirror backup backup_local
Transfiriendo 3 archivos...
lftp usuario@servidor.com:~> bye

4. Comandos esenciales

4.1 Comandos básicos para FTP/SFTP

ls                # Lista directorio remoto
cd carpeta        # Cambia directorio remoto
lcd carpeta       # Cambia directorio local
pwd               # Muestra directorio remoto actual
lpwd              # Muestra directorio local actual
get archivo       # Descarga archivo
put archivo       # Sube archivo
mget *.txt        # Descarga múltiples archivos
mput *.html       # Sube múltiples archivos
mkdir carpeta     # Crear carpeta remota (SFTP)
rm archivo        # Borrar archivo remoto (SFTP)
bye               # Cierra conexión

En SFTP: Puedes usar Tab para autocompletar rutas/archivos y flechas para historial de comandos.

4.2 SCP para transferencias directas

SCP permite copiar archivos sin sesión interactiva, usando comandos directos:

# Subir archivo al servidor
scp archivo.txt usuario@servidor:/ruta/remota/

# Descargar archivo del servidor
scp usuario@servidor:/ruta/archivo.txt ./

# Copiar carpeta completa (con -r)
scp -r carpeta_local/ usuario@servidor:/ruta/remota/

# Puerto SSH personalizado (nota: -P mayúscula)
scp -P 2222 archivo.txt usuario@servidor:/ruta/

# Comprimir antes de transferir (más eficiente)
tar czf archivos.tar.gz carpeta/
scp archivos.tar.gz usuario@servidor:/ruta/
# Luego descomprimir en el servidor

¿Cuándo usar cada uno?

  • SFTP → Para navegar, explorar y gestionar archivos interactivamente
  • SCP → Para transferencias rápidas y directas, ideal para scripts
TOP