Вот пример настроек, но у вас нет про pasv_enable=Yes pasv_min_port=10000 pasv_max_port=11000 и еще настройки iptables нужны открытые порты 10k-11k как в примере для пассивного соединения.
(FTP может работать как в активном режиме так и в пассивном.
В активном режиме клиент выполняет управляющее соединение с сервером, а
сервер выполняет соединение с клиентом для передачи данных.
В пассивном управляющее соединение и соединение для передачи данных
выполняет сам клиент.
Под управляющим соединением имеется ввиду аутентификация и передача команд.
Управляющее соединение выполняется клиентом в обеих случаях одинаково, со
стороны клиента с динамического TCP порта 1024-65535 на порт сервера 21.
В активном режиме после управляющего соединения от клиента, FTP-сервер
подключается к динамическому порту клиента 1024-65535 со своего TCP порта 20
для передачи данных.
В пассивном режиме после управляющего соединения от клиента, FTP-сервер
сообщает клиенту номер динамического TCP порта 1024-65535 к которому можно
подключится клиенту для передачи данных. )
listen=NO
listen_ipv6=YES
anonymous_enable=NO local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
pasv_enable=Yes
pasv_min_port=10000
pasv_max_port=11000
user_sub_token=$USER
local_root=/home/$USER/ftp
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist userlist_deny=NO
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
и в iptables
sudo service ufw status
If it's running and you are going to leave it running, you must allow incoming traffic for to FTP ports (20,21 for active connections and
10000-10100 for passive ones). To do so you can run:
sudo ufw allow from any to any port 20,21,10000:11000 proto tcp