DropVPS Team
Writer: Cooper Reagan
How To install ftp on Debian 13 Trixie

Table of Contents
What you will read?
An FTP (File Transfer Protocol) server is a simple and efficient way to transfer files between systems or provide remote file access. On Debian 13 (Trixie), setting up an FTP server is quick and secure using vsftpd — one of the fastest and most reliable FTP daemons available for Linux.
Update Your System
Before installing anything, always update your package index and system dependencies:
sudo apt update && sudo apt upgrade -y
Install vsftpd
Install the vsftpd package using Debian’s official repositories:
sudo apt install vsftpd -y
Start the FTP service and enable it to start at boot:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
Verify that it’s running properly:
sudo systemctl status vsftpd
Backup the Default Configuration
Before editing, make a backup of the original configuration file:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
This ensures you can easily restore default settings if needed.
Configure FTP Access
Edit the vsftpd configuration file:
sudo nano /etc/vsftpd.conf
Modify or ensure the following lines are present and uncommented:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
Enable passive mode for better compatibility with clients behind NAT/firewalls:
pasv_min_port=40000
pasv_max_port=50000
Save and close the file (CTRL + O, ENTER, CTRL + X).
Restart vsftpd
Apply your changes by restarting the service:
sudo systemctl restart vsftpd
Configure the Firewall
If you’re using UFW, allow FTP and passive port access:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw reload
Confirm that the rules are applied:
sudo ufw status
Create an FTP User
Create a dedicated FTP user account (replace ftpuser with your preferred username):
sudo adduser ftpuser
Set a password and complete the prompts. Then make sure the user’s home directory is accessible:
sudo chmod 755 /home/ftpuser
Test the FTP Server
You can now test your FTP connection using an FTP client like FileZilla, WinSCP, or via the terminal.
Use the following connection details:
-
Host: your_server_ip
-
Port: 21
-
Username: ftpuser
-
Password: your password
If you can log in and view the user’s home directory, your FTP server is working properly.
Enable SSL for Secure FTP (Optional)
To encrypt file transfers using FTPS, generate a self-signed SSL certificate:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Then edit the vsftpd configuration file again:
sudo nano /etc/vsftpd.conf
Add or update these lines:
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
Restart the service to apply SSL:
sudo systemctl restart vsftpd
Now your FTP server supports FTPS for secure, encrypted connections.
Setting up vsftpd on Debian 13 (Trixie) provides a fast, stable, and secure environment for file transfers. Whether you’re hosting web content, managing backups, or sharing files between systems, this configuration is efficient and production-ready.
For high-performance Debian servers optimized for FTP, cloud apps, and automation, visit DropVPS Home page— reliable hosting for developers, businesses, and sysadmins.