1 所需工具

操作系统: ubuntu 16.04 FTP服务器: vsftpd FTP常规模式(Normal mode): xinetd

2 安装

安装vsftpd: sudo apt-get install vsftpd

setup

安装完成后,启动下,看是否成功:

如上图,启动没问题,说明已成功安装vsftpd。

安装xinetd: sudo apt-get install xinetd

因为我已经安装过了,所以不会再去下载安装。

3 配置

3.1 vsftpd的访问配置:

用vim打开vsftpd的配置文件:sudo vim /etc/vsftpd.conf

按i键修改配置:

将 listen=YES 和 listen_ipv6=YES 改为 NO,因为我们将用xinetd来管理vsftpd。 anonymous_enable=YES 即是否允许匿名访问。 这里主要注意 write_enable,默认是注释掉的并且值为NO。这里代打开注释,将值设为YES,表示可以允许授权用户进行写操作。write_enable值设为YES后,我们就可以用FTP客户端传输文件到FTP服务器了。

3.2 xinetd的配置:

在/etc文件夹下创建文件夹xinetd.d

sudo mkdir xinetd.d

跳到/etc/xinetd.d/下创建文件vsftpd

vim vsftpd

然后加入以下内容:

其中no_access是要阻塞的主机,根据实际情况设置。 设置好后,按Esc键,键入:wq退出vim。 停止vstpd服务:

sudo service vsftpd stop

现在我们就可一启动FTP服务器的Normal模式:

4 文件传输前的权限配置

在远程服务器上创建文件夹(这里是file):

然后将文件夹的权限付给ftp用户,这里是ubuntu:

sudo chown -R ubuntu file
sudo chmod -R 777 file

到这里,设置基本完成了,接下来检验下能不能传文件,来验证FTP服务器是否搭建成功。

5 文件传输

5.1 ftp命令

在本机用ftp命令连接远程FTP服务器:

输入用户名和密码后,我们成功登录了FTP服务器。 如果登录失败: 530 Login incorrect. Login failed. 将 /etc/vsftpd.conf 下键值pam_service_name=vsftpd 改为pam_service_name=ftp. 用ls命令查看FTP根目录:

我们可以看到我们创建的file文件夹。我们接下来用file文件夹存放要上传的文件。用put命令上传文件:

把本地名为test001.txt的文件成功地上传到了远程服务器上。 用ssh看下文件内容:

再看看本地的文件内容:

两边内容一致,说明FTP服务器可以正常工作了!!!

5.2 nautilus文件管理器

我们可以用linux自带的文件管理器nautilus来作为FTP客户端。 用nautilus的connect to server连接远程FTP服务器:

连接成功后,和用ftp命令一样,打开了ftp的根目录,我们可以查看file文件夹下刚刚上传上去的文件:

用nautilus,就可以像在本地一样管理远程FTP服务器的文件了。

6. 参考文档

How to setup and use FTP Server in Ubuntu Linux

VSFTPD keeps giving me 550 Permission Denied

Beginner’s guide to using ftp