尝试在 Ubuntu 16.04 上安装 vsftpd

尝试在 Ubuntu 16.04 上安装 vsftpd

我正在尝试在我的 Ubuntu 16.04 服务器上安装 FTP 服务器 (vsftpd)尺度道

我做了以下事情:

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'.

这可能是什么问题?

答案1

如果您没有碰过/etc/vsftpd.conf,则此失败状态的原因应该是另一个服务已在默认 FTP 端口上侦听 - 21。我做了一个实验,我得到了与您相同的状态。您可以使用以下命令之一调查哪个是另一个服务:

sudo lsof -i -n -P | grep ':21'
sudo netstat -peanut | grep ':21'

尝试sudo systemctl stop <that another>.servicesudo systemctl start vsftpd.service,然后再次检查状态:sudo systemctl status vsftpd.service

解决此问题的另一种方法是更改​​其中一个服务侦听的端口。例如,您可以vsftpd通过将以下指令添加到/etc/vsftpd.conf-参考

listen_port=2121

然后,您应该指示 FTP 客户端通过端口2121而不是默认端口进行连接。在大多数情况下,您只需要:<port-number>在目标 ip 地址/FQDN 末尾添加。例如,如果您使用 Nautilus 作为 FTP 客户端:

在此处输入图片描述

补充笔记:

我不知道vsftp实际安全性如何,但如果您没有特别需要使用此服务,您可以使用sftp它通过加密的 SSH 连接并使用其基于密钥的身份验证(如果之前已配置)。此外,您不需要在防火墙上打开任何其他端口。

当然,如果你有 SSH 访问权限,sftp并且你没有禁用它,那么它已经可用了!以下是与此相关的一些参考资料:

答案2

如果你的输出显示的状态是code=exited, status=2/INVALIDARGUMENT,那说明你的/etc/vsftpd.conf输出不正确。

编辑您的/etc/vsftpd.conf并添加队列:

listen=YESlisten=NO

然后重新启动您的服务。

这对我有用。

相关内容