Ubuntu FTP服务器搭建

"Ubuntu FTP server configuration tutorial"

Posted by 张凡 on July 15, 2019

1、FTP介绍

FTP File Transfer Protocol文件传输协议,两台计算机传送文件的协议,客户端可以通过FTP命令从服务器下载,上传文件,修改目录。可以通过命令vsftpd -version查看是否安装了vsftpd。

文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。 [1] FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而, 用户并不真正登录到自己想要存取的计算机上面而成为完全用户, 可用FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等, 即使双方计算机可能配有不同的操作系统和文件存储方式[^1]。 [^1]: FTP_百度百科

2、FTP服务器配置

2.1 安装vsftpd

使用如下指令下载vsftpd:

1
sudo apt install vsftpd

2.2 配置vsftpd.conf文件

在系统命令行中输入如下指令打开并编辑vsftpd的配置文件vsftpd.conf

1
sudo nano /etc/vsftpd.conf

在vsftpd的配置文件vsftpd.conf中末行加入如下代码

1
2
3
4
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/allowed_users
seccomp_sandbox=NO

去掉vsftpd的配置文件vsftpd.conf中如下代码前的#使代码生效

1
2
local_enable=YES
write_enable=YES

完成以上工作后,按下ctrl+X组合键,再按下Y键保存配置修改就生效了。

2.3 新建FTP文件夹

输入以下指令建立FTP文件夹:

1
2
3
cd

mkdir ftp

2.4 创建ftp的账户及密码

输入以下指令建立FTP的账户和密码

  • 建立FTP的账户(账户名为:zhangfan)
    1
    
    sudo useradd -d /root/ftp -s /bin/bash -m zhangfan
    
  • 设置账户密码
    1
    
    passwd zhangfan
    

    输入以上指令后设置密码(要输入两次,密码不显示)

2.5 设置允许登录的用户名单

创建/etc/allowed_users文件,用来存放允许哪些用户登录(把上面创建的账户输入),在系统命令行输入以下代码创建/etc/allowed_users文件。

1
sudo nano /etc/allowed_users

在创建的/etc/allowed_users文件中输入上面创建的FTP账户名:zhangfan

1
zhangfdan

然后按下ctrl+X组合键,再按下Y键保存。

2.6 使配置生效

在系统命令行中输入以下指令使以上配置生效

1
service vsftpd restart

3、远程连接FTP服务器

  • 这里以普通的装有Windows系统的电脑为例,首先下载FileZilla Client软件

  • 下载并安装以上软件后,打开软件,如下图所示,点击箭头所指圆圈内的图标

-打开上图所示的图标后,出现下图所示的对话框,请把红框内的所有选项按照图中所示设置。

  • 最后为了成功连接,请把上图中传输设置改为主动模式。

  • 最后点击连接显示出远程服务器上的所有文件(可下载,也可上传文件),如下图1红框所示,下图2为对应的服务器上的FTP文件夹。