J'utilise un serveur Ubuntu sur une machine VirtualBox. Apache et SSH fonctionnent, mais FTP, une fois connecté au serveur et connecté, envoie un message d'erreur:
- Command: PORT 127,0,0,1,180,221
- Response: 500 Illegal PORT command.
- Error: Failed to retrieve directory listing
Port Forwarding:
TCP | Host Port 2100 | Guest Port 21
Mon fichier vstpd.conf:
listen=YES
pasv_enable=YES
pasv_min_port=2005
pasv_max_port=2010
port_enable=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=NO
ftpd_banner=Welcome.
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
jackbenny est proche ...
Je cours sur AWS avec Ubuntu, voici ce que j’ai fait pour que vsftpd se comporte correctement:
seccomp_sandbox=NO
allow_writeable_chroot=YES
pasv_address=<(public ip) or (AWS public domain or DNS)>
pasv_enable=Yes
pasv_min_port=30000
pasv_max_port=30100
port_enable=YES
Ensuite, vous devez vous assurer que vous autorisez les ports, 20,21,30000-30100
à travers. Gardez à l'esprit que les choix de ports 30000-30100
sont complètement arbitraires et peuvent être ceux que vous souhaitiez. Bien que, je m'en tiens aux ports supérieurs à 10000
et à une plage de 100
ou plus.
Avez-vous eu cette erreur en vous connectant de "l'extérieur"? Dans ce cas, vous devrez peut-être ajouter votre adresse IP externe à vsftpd pour lui permettre de savoir quelle adresse IP envoyer à ses clients lors de l'utilisation du mode passif FTP.
Essayez d’ajouter pasv_address=<YOUR_IP_HERE>
à votre configuration.
Vous pouvez également essayer de basculer votre client FTP en mode actif et voir si vous obtenez toujours la même erreur.
Vous devrez peut-être également définir la plage de ports pour un FTP passif et également activer le mode FTP passif. Essayez d’ajouter ces lignes (remplacez START_PORT et END_PORT par les ports de votre choix et n'oubliez pas de les transférer dans votre routeur):
pasv_enable=Yes
pasv_max_port=<START_PORT>
pasv_min_port=<END_PORT>
Je ne sais pas ce qui se passe ici, mais ce problème est trop vieux. J'ai finalement résolu ce problème il y a quelques semaines lorsque j'ai réinstallé ma machine virtuelle et suivi attentivement toutes les instructions. Les réponses ont été très utiles quand même.