FTP es uno de los protocolos de Internet, utilizado para la transferencia de archivos a través de la Red. Se usa muy habitualmente para desplegar los proyectos web en hostings tradicionales.
FTP es el Protocolo de transferencia de archivos (File Transfer Protocol), mediante el cual se pueden enviar y recibir carpetas y ficheros a o desde servidores de Internet.
Para poder realizar FTP se requieren dos partes, un cliente y un servidor. El servidor es que que mantiene los archivos alojados en Internet y el cliente es cualquier usuario que se conecta a través de un programa de FTP. El cliente puede transferir ficheros de subida, en cuyo caso quedan almacenados en el servidor y se podrían descargar o actualizar por cualquier otro cliente de FTP.
Generalmente todos los accesos de los usuarios se realizan autenticando con nombre de usuario clave. Aunque también existe un FTP anónimo, su uso no es muy común.
El principal ámbito donde se usa FTP es la publicación de contendidos de las páginas web, cunado éstas están alojadas en servidores compartidos. Es decir, es el modo de enviar información a un hosting común. En este tipo de alojamientos se dispone de una cuenta de FTP, con la que realizar la escritura de los archivos que componen una página. El administrador de la página es el único que conoce la clave de FTP y por tanto el único que puede enviar los archivos a su espacio en el servidor. El resto de los clientes que desean ver la web se conectan por HTTP, el protocolo de la web, mediante el cual solo es posible la lectura de ficheros.
Encontramos aquí diversos clientes de FTP. El cliente de FTP más popular se llama Filezilla, un proyecto Open Source y multiplataforma, disponible en Windows, Linux y Mac.
Además, si lo que necesitas es un servidor, en esta otra colección hemos recogido los programas para implementar servidores de FTP más populares para las principales plataformas.
Más información:
Manuales
Colecciones
Programas de FTP y SCP para la transferencia de Archivos
Los mejores programas de FTP para la tra...
FTPS
FTPS es un protocolo de Internet, estrechamente relacionado con FTP, ya que es básicamente el mismo servicio aunque realizado mediante SSL. FTPS es por tanto una mejora del servicio de FTP que es capaz de incrementar la seguridad de las transmisiones, puesto que éstas se realizan cifradas.
El cliente que se usa tanto en FTP como en FTPS suele ser el mismo. Simplemente, cuando se configura la conexión con el servidor, se debe indicar que se desea realizar mediante FTPS. Sin embargo, el servidor de FTP con el que nos conectamos debe soportar FTPS para que se pueda conectar y realizar las transferencias seguras.
Siempre que sea posible, es importante usar FTPS. En caso contrario, cualquier persona con acceso a nuestra red podrá ser capaz de analizar el tráfico y conseguir recuperar los datos transferidos al servidor o desde el servidor.
FTP en alojamientos compartidos
FTP fue uno de los servicios más importantes de Internet, pero esto fue hace mucho... hoy FTP resiste solamente por ser el sistema de actualización habitual en los alojamientos compartidos.
Como alojamiento compartido entendemos aquel en el que se tiene un espacio de alojamiento en un servidor, compartiendo el espacio con otra serie de dominios que no nos pertenecen. Generalmente en estos alojamientos se ofrece un panel de control donde podemos crear los usuarios de FTP que deseamos disponer. Una vez configurado el usuario en nuestro programa de FTP, tenemos el acceso al espacio del servidor para transferir los archivos del sitio web.
Cuando nos conectamos con el servidor encontraremos generalmente varias carpetas. Una de ellas es la que realmente nos sirve para colocar las páginas que se desean publicar. Esa carpeta se conoce como "document root" o Directorio raíz de publicación. El nombre en si de la carpeta es variable, comúnmente será uno de estos:
- public
- public_html
- http
- httpdocs
- html
Es allí donde generalmente tenemos que subir los archivos HTML, las imágenes, los archivos CSS, etc. que componen un sitio web.
Alternativas a FTP para el despliegue de proyectos web
Si no queremos o no podemos usar FTP para desplegar los sitios web tenemos algunas alternativas que vamos a describir.
- Gestor de archivos en el panel de control del hosting: Habitualmente los proveedores de hosting tienen una herramienta para gestionar los archivos en línea, que no requiere más que el navegador para ver los archivos, subir ficheros, crear carpetas y cosas similares. Este gestor de archivos, su funcionamiento y características depende de la propia empresa de hosting.
La alterior no es la mejor opción, pues suelen ser un poco limitadas estas herramientas de administración de ficheros vía web, pero sí la única alternativa que resultaría más sencilla y elemental que el propio FTP. Las demás alternativas son un poco más avanzadas, aunque ofrecen más potencia.
- SSH (Secure Shell): Se puede utilizadar si se desea en combinación con SFTP (SSH File Transfer Protocol). SSH es un protocolo que proporciona una conexión segura para el acceso a servidores. No todos los hosting ofrecen la conexión por SSH y queda más para el uso de servidores. Este protocolo es el que se usa también para administrar los servidores remotamente.
- Git: Git es el sistema de control de versiones por excelencia en el mundo del desarrollo actual. En sí nos ofrece muchas cosas para la gestión del proyecto, pero podemos usarlo para el despliegue de sitios web mediante línea de comandos, clonando el repositorio del proyecto que queremos desplegar en remoto. Para el acceso a Git generalmente tendríamos que usar línea de comandos por SSH, pero algunos proveedores permiten seleccionar los repositorios que se desean desplegar y lo hacen por nosotros sin necesidad de hacer la conexión por SSH al servidor. Esto ya depende de si lo permite o no el proveedor en cuestión. Luego hay muchos servicios, especialmente aquelos basados en sistemas de generación SSG (Static Site Generator), que ofrecen herramientas para desplegar sitios simplemente indicando el repositorio y permiten hacer el despliegue automático cuando el repositorio se actualiza.
- Rsync: Este es un protocolo de copia de seguridad y recuperación no demasiado conocido pero que se puede usar para sincronizar archivos y directorios de un lugar a otro. Es poco habitual que se de soporte a esta herramienta pero puede ser otra opción si necesitas mantener sincronizadas dos ubicaciones de archivo.
- SCP (Secure Copy Protocol): SCP es un protocolo que realiza básicamente conexiones con servidores para la transferencia de archivos. Está basado en el protocolo SSH por lo que la copia de archivos se hace siempre de forma segura. La copia puede hacerse entre un host local y uno remoto, o viceversa. o incluso entre dos hosts remotos.
- Docker, Ansible, Puppet, Chef, HitHub Actions etc.: Son una serie de herramientas avanzadas que también podríamos usar para el despliegue de aplicaciones web especialmente pensadas para permitir a los desarrolladores automatizar el despliegue de los sitios así como gestionar todos los aspectos de la creación y configuración de la infraestructura de servidor.
Si lo que buscas es sencillez FTP es una buena opción y, como alternativa puedes usar los paneles de control que te ofrezca tu hosting. Otras opciones son más complejas pero nos ofrecen potencia o automatización de los despliegues. Cada método tiene sus propios pros y contras, por lo que la mejor opción dependerá de las posibilidades de tu hosting o servidor.
Crea artículos, recursos o comparte información sobre FTP
Preguntas y respuestas de FTP
Se han recibido 2 faqs en FTP