J'essaie d'installer un serveur FTP (vsftpd) sur mon serveur Ubuntu 16.04 à partir de Scaleway .
J'ai fait ce qui suit:
Sudo apt-get update
Sudo apt-get install vsftpd
Sudo service vsftpd status
Je reçois le résultat suivant:
● vsftpd.service - vsftpd FTP server
Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2018-08-31 22:26:53 CEST; 10min ago
Process: 10161 ExecStart=/usr/sbin/vsftpd /etc/vsftpd.conf (code=exited, status=2)
Process: 10157 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited, status=0/SUCCESS)
Main PID: 10161 (code=exited, status=2)
Aug 31 22:26:53 scw-24e1a0 systemd[1]: Starting vsftpd FTP server...
Aug 31 22:26:53 scw-24e1a0 systemd[1]: Started vsftpd FTP server.
Aug 31 22:26:53 scw-24e1a0 systemd[1]: vsftpd.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Aug 31 22:26:53 scw-24e1a0 systemd[1]: vsftpd.service: Unit entered failed state.
Aug 31 22:26:53 scw-24e1a0 systemd[1]: vsftpd.service: Failed with result 'exit-code'.
Quel pourrait être le problème de ceci?
Si vous n'avez pas touché /etc/vsftpd.conf
, la raison de cet échec est probablement due au fait qu'un autre service écoute déjà sur le port FTP par défaut - 21
. J'ai fait une expérience et j'ai reçu le même statut que le vôtre. Vous pouvez rechercher un autre service à l'aide de l'une des commandes suivantes:
Sudo lsof -i -n -P | grep ':21'
Sudo netstat -peanut | grep ':21'
Essayez de Sudo systemctl stop <that another>.service
et Sudo systemctl start vsftpd.service
, puis vérifiez à nouveau le statut: Sudo systemctl status vsftpd.service
.
Une autre façon de résoudre ce problème consiste à changer le port sur lequel l'un de ces services écoute. Par exemple, vous pouvez le faire pour vsftpd
en ajoutant la directive suivante à /etc/vsftpd.conf
- référence :
listen_port=2121
Ensuite, vous devez indiquer au client FTP de se connecter via le port 2121
au lieu du port par défaut. Dans la plupart des cas, il vous suffit d'ajouter :<port-number>
à la fin de l'adresse IP/FQDN cible. Par exemple, si vous utilisez Nautilus en tant que client FTP:
Notes complémentaires:
Je ne sais pas dans quelle mesure vsftp
est sécurisé en pratique, mais si vous n'avez pas un besoin particulier d'utiliser ce service, vous pouvez utiliser sftp
qui passe par la connexion SSH cryptée et utilise son authentification par clé si il est précédemment configuré. De plus, vous n'avez pas besoin d'ouvrir de port supplémentaire dans votre pare-feu.
Bien sûr, si vous avez un accès SSH à l'instance Ubuntu, sftp
est déjà disponible si vous ne l'avez pas désactivé! Voici quelques références à ce sujet:
scp
et rsync
peuvent également être utilisées pour le transfert de fichiers via SSH.Si votre sortie dit code=exited, status=2/INVALIDARGUMENT
, cela signifie que votre /etc/vsftpd.conf
n'est pas correct.
Modifiez votre /etc/vsftpd.conf
et ajoutez une file d'attente:
de listen=YES
à listen=NO
puis redémarrez votre service.
Cela fonctionne pour moi.