Mar 17, 2025
Gustavo B.
7min de lectura
En este artículo, aprenderás a configurar un servidor FTP en un VPS de Ubuntu. Usaremos un servidor vsftpd, que es ampliamente considerado como el servidor FTP más rápido y seguro para sistemas similares a UNIX.

FTP o File Transfer Protocol, por sus siglas en inglés, es un medio para enviar y recibir archivos a través de una conexión de red. Utilizando un marco de referencia de cliente/servidor y seguridad SSL/TLS, FTP le permite a los usuarios compartir archivos con (y recibir desde) computadoras remotas a través de una transferencia de datos segura, eficiente y confiable (usando los protocolos TCP/IP).
FTP funciona de la misma manera que HTTP (HypertText Transfer Protocol) o SMTP (Simple Mail Transfer Protocol). La diferencia es que el FTP se encarga de transportar archivos a través de Internet, mientras que el HTTP y el SMTP se encargan de transferir páginas web y correos electrónicos, respectivamente.
Antes de empezar, ten en cuenta que te guiaremos en la configuración de un servidor FTP en Ubuntu 22.04. Por lo tanto, debes asegurarte de que tu VPS se ejecuta en ese sistema operativo concreto.
Este tutorial requiere que sepas cómo conectarte a un servidor a través de SSH. Si tienes el hosting VPS de Hostinger, los datos de acceso están disponibles en la pestaña Servidor del hPanel. Además, puedes utilizar Kodee, nuestro asistente con IA VPSI, para que te ayude a solucionar cualquier problema.
sudo apt-get update
Espera a que se completen todos los procesos y verás una confirmación tan pronto como finalice la actualización.
sudo apt-get install vsftpd
Ahora verás un mensaje de confirmación en el que tendrás que escribir Y y presionar Enter para continuar con la instalación.
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original
Ahora estamos listos para dar el siguiente paso y configurar el firewall.
sudo ufw status
Si ves el siguiente mensaje:
ufw: command not found
Significa que el firewall no está instalado. Puedes instalarlo y habilitarlo escribiendo:
sudo apt-get install ufw sudo ufw enable
sudo ufw allow 20/tcp sudo ufw allow 21/tcp sudo ufw allow 990/tcp sudo ufw allow 40000:50000/tcp
Esta serie de comandos abrirá varios puertos:
sudo ufw status
El resultado debería ser algo así:
Status: active To Action From -- ------ ---- 990/tcp ALLOW Anywhere 20/tcp ALLOW Anywhere 21/tcp ALLOW Anywhere 40000:50000/tcp ALLOW Anywhere 20/tcp (v6) ALLOW Anywhere (v6) 21/tcp (v6) ALLOW Anywhere (v6) 990/tcp (v6) ALLOW Anywhere (v6) 40000:50000/tcp (v6) ALLOW Anywhere (v6)
sudo adduser hostinger
Recuerda cambiar el nombre de usuario según tus preferencias.
sudo mkdir /home/hostinger/ftp
Establece la propiedad usando:
sudo chown nobody:nogroup /home/hostinger/ftp
Finalmente, elimina los permisos de escritura:
sudo chmod a-w /home/hostinger/ftp
Ahora, usa el siguiente comando para verificar los permisos:
sudo ls -la /home/hostinger/ftp
El resultado debería ser algo así:
total 8
dr-xr-xr-x 2 nobody nogroup 4096 Jun 29 11:32 .
drwxr-xr-x 3 hostinger hostinger 4096 Jun 29 11:32 ..
Los usuarios del VPS de Hostinger también pueden utilizar Kodee para listar todos los archivos, incluidos los ocultos, junto con sus permisos en un directorio específico.
Todo lo que tienes que hacer es preguntar algo como “¿Puedes listar todos los archivos, incluidos los ocultos, en /home/hostinger/ftp junto con sus permisos?”.
sudo mkdir /home/hostinger/ftp/files sudo chown hostinger:hostinger /home/hostinger/ftp/files
Finalmente, agrega un archivo de prueba al directorio el cual se usará cuando probemos todo más adelante:
echo "vsftpd sample file" | sudo tee /home/hostinger/ftp/files/sample.txt
El siguiente paso en nuestra apuesta por configurar un servidor FTP en Ubuntu VPS, es configurar vsftpd y nuestro acceso FTP. En este tutorial, permitiremos que un solo usuario se conecte con FTP utilizando una cuenta shell local. Las dos configuraciones clave requeridas para esto ya están establecidas en el archivo de configuración (vsftpd.conf).
sudo nano /etc/vsftpd.conf
Comprueba que el contenido tiene una configuración similar a ésta:
. . . # Allow anonymous FTP? (Disabled by default). anonymous_enable=NO # # Uncomment this to allow local users to log in. local_enable=YES . . .
En el mismo archivo, procederemos a eliminar # y a habilitar el write_enable:
. . . write_enable=YES . . ..
. . . chroot_local_user=YES . . .
user_sub_token=$USER local_root=/home/$USER/ftp
pasv_min_port=40000 pasv_max_port=50000
userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO
El flag userlist_deny es el responsable de alternar la lógica; cuando se establece en NO, solo se permitirá el acceso a los usuarios especificados en la lista. Una vez hecho esto, haz clic en CTRL+X y confirma los cambios del archivo.
echo "hostinger" | sudo tee -a /etc/vsftpd.userlist
Verifica que el usuario esté realmente activo ejecutando el siguiente comando:
cat /etc/vsftpd.userlist

El resultado debe ser “hostinger” como se muestra en esta captura de pantalla:
sudo systemctl restart vsftpd
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
El flag -days hace que el certificado sea válido por un año y hemos incluido una clave privada RSA de 2048 bits en el mismo comando.
sudo nano /etc/vsftpd.conf
El final del archivo debe contener dos líneas que comiencen con “_rsa“. Comenta ambas líneas así:
# rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem # rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
En lugar de eso, apuntemos el archivo de configuración al certificado que acabamos de crear. Añade los siguientes direcciones justo debajo de las líneas anteriores:
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
A continuación agrega las siguientes líneas para prohibir cualquier conexión anónima a través de SSK
allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES
Configura el servidor para usar TLS usando:
ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO
Ahora cambiaremos 2 opciones más. En primer lugar, no será necesario reutilizar SSL porque puede ocasionar que muchos clientes de FTP se averíen. En segundo lugar, utilizaremos suites de encriptación de alto cifrado, lo que significa que las longitudes de claves son iguales o superiores a 128 bits.
require_ssl_reuse=NO ssl_ciphers=HIGH
Vuelve a guardar el archivo pulsando CTRL+X seguido de Y, y luego pulsa Intro.
sudo systemctl restart vsftpd
¡Buen trabajo! Has configurado el servidor FTP en tu VPS de Ubuntu para que funcione con el protocolo SSL/TLS.
Hoy en día, la mayoría de los clientes de FTP admiten configuraciones de cifrado TLS, por lo que es una excelente manera de comprobar si tu servidor FTP de Ubuntu funciona según lo previsto. Para probar la conexión, utilizaremos un cliente FTP de FileZilla.



Después de confirmar, el directorio raíz con el archivo de prueba debería aparecer en tu pantalla.
¡Eso es todo! Ahora puedes realizar transferencias de archivos desde tu computadora al servidor FTP de Ubuntu y viceversa.
Tener un servidor FTP Ubuntu te facilita compartir archivos entre tu VPS/servidor de Ubuntu y tu ordenador. Es un método seguro y fiable de transferencia de datos, gracias a la seguridad SSL/TLS y al protocolo TCP/IP.
En este tutorial, has aprendido a configurar un servidor FTP en Ubuntu utilizando vsftpd. Hay cinco pasos que debes seguir. Vamos a verlos una vez más.
Antes de configurar el FTP, recuerda conectarte a tu VPS mediante SSH y crear una nueva cuenta de superusuario. Si encuentras dificultades durante el proceso, utiliza Kodee para solucionar el problema rápidamente.
Buena suerte, y no dejes de consultar nuestros otros tutoriales sobre VPS.

Cómo instalar Python Pip en Ubuntu
Cómo instalar Java en Ubuntu
Cómo instalar Node en Ubuntu
Todo el contenido de los tutoriales en este sitio web está sujeto a los rigurosos estándares y valores editoriales de Hostinger.
Comentarios
May 22 2018
Como puedo conectarme desde windows al servidor ftp? ya intenté desde Filezilla, con el explorador de archivos (Escribiendo ftp://la_ip_del_server) pero nada, no he podido :( espero que puedan ayudarme
June 07 2018
Necesitamos revisar exactamente lo que está ocurriendo. Por favor añade una captura de pantalla del error que arroja FileZilla para poder ayudarte de mejor manera. Mientras tanto, puedes revisar esta guía de configuración de FileZilla: https://www.hostinger.com/es/tutoriales/configurar-filezilla. Espero puedas revisar paso a paso y puedas descartar algún problema de configuración.
April 11 2019
Buenas tardes si has colocado esto asi tal cual estas en un error te falta exponer el puerto que usas si es el por defecto es el 21 tu colocaste asi : ftp://la_ip_del_server y debria ser asi: ftp://la_ip_del_server:21 Saludos espero te ayude... gerardonicolato.com
August 12 2019
TENGO EL MISMO PROBLEMA.. ALGUNA SOLUCION??
June 07 2018
Hola, gracias por el manual. Instale un Ubuntu 16.04 con un Lamp. Lo quiero usar como Servidor Web, Lo que necesito es tener acceso por ftp a la carpeta www/html esa carpeta ya se encuentra creada. Ahora las preguntas son: Es necesario realizar todo el procedimiento? El firewall no esta activo. Solo necesito ingresa a esa carpeta con el usuario creado y por ftp. Como seria? Gracias
June 11 2018
Hola Edgardo, te invito a contactar a nuestro equipo de soporte vía chat, ya que estás pidiendo una dirección FTP pero no podemos darte una por este medio sin conocer tu usuario/sitio.
July 21 2019
Buenas tardes, tengo el siguiente error Estado: Falló intento de conexión con "ECONNREFUSED - Conexión rechazada por el servidor". Error: No se pudo conectar al servidor use el mismo usuario e hice todo en el blog
August 15 2019
Hola Alejandro, es posible que estés usando el puerto incorrecto. Otro problema podría ser tu firewall local. Por favor revisa tus firewalls locales. Otra solución podría ser añadir "ftp" a tu nombre de host (hostname).
July 22 2019
Buenas, tengo un problema con vsftpd. Conecto perfectamente sin el TLS, pero cunado configuro el TLS en el filezilla entro pero en el explorador de archivo de windows y por el navegador, no. No se si tengo que hacer algo en la configuración del FTP o si es cosa del windows que no soporta el TLS.
August 15 2019
Hola Carolina, el explorador de archivos de Windows no podrá conectarse a FTPS (FTP con SSL/TLS). En cuanto al navegador que estás usando, es posible que no sea compatible con la versión de TLS.
November 17 2019
Para aquellos que les genere algún error probablemente sea en esta parte: pasv_min_port = 40000 pasv_max_port = 50000 solo quiten los espacios que quede de esta forma: pasv_enable=Yes pasv_min_port=40000 pasv_max_port=50000
January 10 2020
GRacias!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11111111111
January 14 2020
Hola gustavo. Que beun materia de ante mano muchas gracias tengo una inquietud, es que estoy creando un sistema donde por cada usuario se le asigna un directorio en el sistema ejemplo /var/www/ftp/$user Y la idea es que hay cada usuario guarde lo que desee. pero cuando me conecto por filezilla me carga el directorio /home/user y aparte lo deja navegar pro todo el linux ;( No se que podria hacer en este caso.
January 16 2020
Muchas gracias Ángel Sánchez, gracias a tí pude conectarme al FTP. Había que quitar los espacios y añadir "pasv_enable=Yes ". Después reinicié vsftpd y listo! Con eso ya pude conectarme perfectamente. Muchas gracias por el tutorial.
March 06 2020
Gracias Ángel Sánchez y muchas gracias Gustavo por el tutorial.
March 10 2020
Hola Marc, nos alegra que le hayas sacado provecho al tutorial. Saludos!
March 13 2020
El tutorial esta muy bien explicado, pero si efectivamente hace falta quitar los espacios en esta parte: pasv_min_port = 40000 pasv_max_port = 50000 a pasv_min_port=40000 pasv_max_port=50000 y agregar pasv_enable=Yes Porque no han corregido el post?? es algo frustrante leer, seguir los pasos y que no funcione. Gracias por compartir
April 25 2020
Todo perfecto excepto tres cosas: -el usuario creado tiene derechos de lecturar sobre todo el arbol de directorios -derechos de escritra sobre toda su carpeta personal (no solo en la carpeta files). -además he probado con otro usuario y también se valida por ftp aunque no está inclído en el archivo /etc/vsftpd.userlist Gracias
May 02 2020
como le puedo hacer para tener otro cliente
June 07 2020
Funciona pero lista los directorios. Alguna sugerencia?
July 20 2020
Muchas gracias, Ángel. Ha sido de mucha ayuda. Solo una cosa, he probado a entrar con otro usuario ftp que no está añadido a la lista y he podido. ¿puede ser que me falte algo en la configuración? Gracias.
September 06 2020
no encuentro la carpta de vsftpd.conf parece que se me borro , que puedo hacer en esos casos
September 23 2020
Hola Nicky, en este caso te sugiero contactar a tu proveedor de hosting para que te ayude. Si estás con Hostinger nuestros agentes te pueden orientar para que puedas obtener una solución a tu problema.
October 09 2020
Excelente Tutorial, lo seguí minuciosamente y se logró instalar y configurar el servidor FTP. Fue realizado en base a conexión SSH con clave privada.
September 03 2021
Hola amigos a los que les salga este error: Falló intento de conexión con "ECONNREFUSED - Conexión rechazada por el servidor"., solo necesitan iniciar el servicio usando el siguiente comando: sudo systemctl start vsftpd y luego usan este para corroborar si ya se inicio: sudo systemctl enable vsftpd y listo.
February 15 2022
Hola Gustavo, muy buen tutorial Quería aclarar que donde dice pasv_min_port = 40000 pasv_max_port = 50000 Debe ser sin espeacios antes y después del signo igual pasv_min_port=40000 pasv_max_port=50000 Lo copié y lo pegué y no me andaba jajaj. Eso por hacer copy paste sin mirar Bueno nada, solo quería aclarar eso
February 16 2022
Muchas gracias Aldo por la aclaración. Ya lo hemos corregido en el post. Saludos!
November 10 2022
Cuando intento conectarme me muestra los siguiente errores Error: Error GnuTLS -110: The TLS connection was non-properly terminated. Estado: El servidor no cerró la conexión TLS adecuadamente Error: No se pudo establecer la conexión de datos: ECONNABORTED - Conexión abortada Respuesta: 425 Security: Bad IP connecting. Error: Error al recuperar el listado del directorio
November 16 2022
Hola! Es posible que sea un problema de configuración, revisa que no hayas omitido ningún elemento. A veces también sirve reiniciar el servicio vsftpd. Saludos!
October 10 2024
Excelente amigo, resulto muy bien!!!