对于用户来说,如何搭建自己的FTP服务是一个基本的应用。但对于新手来讲,FTP是什么?它是文件传输协议File Transfer Protocol 的缩写,FTP用于计算机之间通过网络进行文件传输。通过FTP在计算机账户间进行文件传输,也可以在账户和桌面计算机之间传输文件,或者访问在线软件归档。
但注意的是多数的FTP站点的使用率较高,需要多次重连才能连接上。FTP地址和HTTP地址相似,只是FTP地址使用ftp://前缀而不是http://。
有了对FTP服务的了解,FTP服务器是什么?拥有FTP地址的计算机是专用于接收FTP连接请求的。一台专用于接收FTP连接请求的计算机即为FTP服务器或者FTP站点。
这里以VSFTPD作为ftp服务通过搭建一个用于文件共享。VSFTPD是一个自称为最安全的FTP服务端软件。事实上该软件的构建绕开了FTP协议的漏洞。但是,对于一些人还有更安全的方法进行文件管理和传输,如SFTP(使用OpenSSH)。FTP协议对于共享非敏感数据是非常有用和可靠的。
使用rpm安装VSFTPD,可以使用如下命令在命令行界面中快捷的安装VSFTPD:
- dnf -y install vsftpd
使用deb安装VSFTPD,可以使用如下命令在命令行界面中快捷的安装VSFTPD:
- sudo apt-get install vsftpd
在Arch中安装VSFTPD,可以使用如下命令在命令行界面中快捷的安装VSFTPD:
- sudo pacman -S vsftpd
配置FTP服务
多数的VSFTPD配置项在/etc/vsftpd.conf配置文件中,本身已经有好的文档说明,这里只介绍一些可能进行修改的重要选项。使用man页面查看所有可用的选项和基本的文档说明:
man vsftpd.conf
根据文件系统层级标准,FTP共享文件默认位于/srv/ftp目录中。
允许上传:为了允许ftp用户可以修改文件系统的内容,如上传文件等,“write_enable”标志必须设置为YES。
write_enable=YES
允许本地(系统)用户登录,为了允许文件/etc/passwd中记录的用户可以登录ftp服务,“local_enable”标记必须设置为YES。
local_enable=YES
下面配置内容控制匿名用户是否允许登录:
根目录限制(Chroot Jail)
有时我们需要设置根目录(chroot)环境来禁止用户离开他们的家(home)目录。在配置文件中增加/修改下面配置开启根目录限制(Chroot Jail):
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
“chroot_list_file”变量指定根目录限制所包含的文件/目录( LCTT 译注:即用户只能访问这些文件/目录)
***你必须重启ftp服务,在命令行中输入以下命令:
- sudo systemctl restart vsftpd
ftp服务已经搭建完成并且启动。