Я пытаюсь установить FTP-сервер (vsftpd) на моем сервере Ubuntu 16.04 от Scaleway.
Я имею, сделал следующее:
sudo apt-get update
sudo apt-get install vsftpd
sudo service vsftpd status
Я получаю следующий результат:
● 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'.
Какова могла быть проблема этого?
Если ваш вывод говорит о состоянии code=exited, status=2/INVALIDARGUMENT
, это означает, что ваш /etc/vsftpd.conf
неверен.
Отредактируйте /etc/vsftpd.conf
и добавьте очередь:
из listen=YES
в listen=NO
и затем перезапустите службу.
Это работает для меня.
Если Вы не сделали затронутый /etc/vsftpd.conf
, причина этого состояния отказа должна состоять в том, что другой сервис, уже слушают на порте FTP по умолчанию - 21
. Я сделал эксперимент, и я получил то же состояние как Ваш. Можно заняться расследованиями, который является что другой сервис любой из команд:
sudo lsof -i -n -P | grep ':21'
sudo netstat -peanut | grep ':21'
Попытайтесь sudo systemctl stop <that another>.service
и sudo systemctl start vsftpd.service
, затем проверьте состояние снова: sudo systemctl status vsftpd.service
.
Другой способ решить эту проблему состоит в том, чтобы изменить порт, на котором один из этих сервисов слушают. Например, можно сделать это для vsftpd
путем добавления следующей директивы к /etc/vsftpd.conf
- ссылка:
listen_port=2121
Затем необходимо дать клиенту FTP команду соединяться через порт 2121
вместо по умолчанию. В большинстве случаев просто необходимо добавить :<port-number>
в конце цели ip-address/FQDN. Например, если Вы используете Наутилус в качестве клиента FTP:
Дополнительные примечания:
Я не знаю, насколько безопасный vsftp
на практике, но если у Вас нет специальной потребности использовать этот сервис, можно использовать sftp
это пробегается через зашифрованное соединение SSH и использует его основанную на ключе аутентификацию, если оно ранее настроено. Кроме того, Вы не должны открывать дополнительный порт в свой брандмауэр.
Несомненно, если у Вас есть доступ SSH к экземпляру Ubuntu, sftp
уже доступно, если Вы не отключили его! Вот немного ссылок, связанных с этим:
scp
и rsync
может использоваться для передачи файлов через SSH.