文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。FTP 是相当古老的传输协议之一,他最主要的功能是在服务器与客户端之间进行档案的传输。 FTP 其实是以 TCP 封包的模式进行服务器与客户端计算机之间的联机,当联机建立后,此外,也可以直接管理用户在 FTP 服务器上面的档案,相当的方便! 而这个古老的协议是使用明码传输,且过去有相当多的安全危机历史。为了更安全的使用 FTP 协议, 我们主要介绍较为安全但功能较少的 vsftpd 这个软件。今天这篇教程,我们将使用腾讯云CVM服务器来部署VSFTP所提供的FTP服务。
安装VSFTPD
vsftpd
是在 Linux 上被广泛使用的 FTP 服务器,根据其官网介绍,它可能是 UNIX-like 系统下最安全和快速的 FTP 服务器软件。因为我们使用的是Ubuntu Server 16.04.1 LTS版本的操作系统,所以我们将使用Ubuntu自带的apt包管理器进行安装。首先我们需要更新apt列表,然后在执行sudo apt-get install vsftpd
来安装相关服务,具体如下。
1 | sudo apt-get update |
执行完成后,你将看到类似如下输出
1 | ubuntu@VM-0-7-ubuntu:~/resume/pages/left$ sudo apt-get install vsftpd -y |
很快,vsftpd将安装完成,我们可以输入sudo netstat -nltp | grep 21
命令检查FTP服务是否开启
1 | ubuntu@VM-0-7-ubuntu:~$ sudo netstat -nltp | grep 21 |
我们看到,系统提示21端口已经被vsftpd
占用。如果没有启动,可以手动开启 VSFTPD 服务:
1 | sudo systemctl start vsftpd.service |
配置VSFTPD
接下来,我们要专门创建一个用户给vsftpd使用,我们这里给用户起名叫www
,大家可以随意设置。首先我们创建一个给www用户使用的主目录,我这里创建为/home/www
。
1 | sudo mkdir /home/www |
接下来,我们就可以创建用户了,使用下面的命令快速创建
1 | sudo useradd -d /home/www -s /bin/bash www |
然后,我们为www
用户设置密码,以确保其安全。
1 | sudo passwd www |
这里系统会要求你输入两次密码,密码默认不显示,要确保两次密码输入相同。
1 | ubuntu@VM-0-7-ubuntu:~$ sudo passwd www |
接下来,为了确保www用户只能通过FTP访问,而无法使用ssh等方式访问,我们需要对其进行配置。
1 | sudo usermod -s /sbin/nologin www |
删除掉 pam.d 中 vsftpd,因为该配置文件会导致使用用户名登录 ftp 失败:
1 | sudo rm /etc/pam.d/vsftpd |
这时,你还需要进行一些设置,我们使用编辑器打开/etc/vsftpd.conf
这个文件,然后新增以下内容。
1 | sudo chmod a+w /etc/vsftpd.conf |
1 | # 限制用户对主目录以外目录访问 |
保存后,我们新建/etc/vsftpd.user_list
文件,用于存放允许访问 ftp 的用户。
1 | sudo nano /etc/vsftpd.user_list |
在文件内部写入www
,然后保存。
1 | www |
接下来用下面的命令赋予读写权限。
1 | sudo chmod a+w /etc/vsftpd.user_list |
由于vsftpd_2.3.5从版开始,取消了根目录的可写权限,所以我们要在根目录下创建新的文件夹以方便vsftpd运行。
设置主目录访问权限(只读):
1 | chmod a-w /home/www |
新建公共目录,并设置权限(读写):
1 | sudo mkdir /home/www/public && sudo chmod 777 -R /home/www/public |
然后我们重启 vsftpd 服务
1 | sudo systemctl restart vsftpd.service |
访问FTP服务
我们需要用软件链接到FTP服务器才行,通过我们上一步设置的FTP账户www
及密码,使用ftp软件登录FTP服务器,这里我们以MobaXterm为例,点击左上角的Session
按钮,选择以FTP
方式连接,在Remote host
输入你的服务器的公网IP地址,Username
输入你的用户名,这里我们获取到的是www
,输入www
,点击OK
。
输入你设置的密码,即可连接到你的服务器,你会看到类似下面的页面。
此时我们就可以上传你的文件到public
目录啦!
总结
怎么样,简单吗?赶快去腾讯云开发者实验室免费领取实验机器动手实践。当然,感兴趣的小伙伴也可以去购买一台服务器以便长期学习使用。