FTP服务器的作用主要是文件的上传和下载,这里主要涉及vsftpd工具的使用,服务器端的配置,客户端的使用。
首先下载 vsftpd 工具,sudo apt-get install vsftpd。
然后配置 /etc/vsftpd.conf 文件:
listen=YES # 独立运行,不使用xinetd
listen=No # 暂时不需要使用IPV6
anonymous_enable=YES # 允许匿名用户登录
loacl_enable=YES # 允许本地用户登录
write_enable=YES # 实名用户具有写权限(上传数据)
local_umask=022 #
anon_upload_enable=YES # 匿名用户允许上传数据
anon_mkdir_write_enable=YES # 匿名用户允许创建目录
更详细地解释可以看这篇文章。
然后使用 sudo service vsftpd restart重启服务,简单的FTP服务器就搭建完成了。
使用 ftp [服务器IP],然后输入服务器用户的用户名和密码即可完成实名用户登录。

可以看到进入的目录为 hhhcbw 的家目录。
然后就可以上传或者下载数据:
put [文件名] # 上传文件
get [文件名] # 下载文件
注意下载的文件会在登入ftp服务时所在的目录。
ftp服务器只允许上传和下载文件,不允许操作目录,如果想操作目录,只能通过打包实现。
实名用户登录的弊端是需要服务器的用户名和密码,不安全,因此可以使用匿名用户登录的方式。
匿名用户不能在任意目录直接切换,只能在一个指定的目录范围内工作。
首先使用创建一个供匿名用户使用的目录 /home/hhhcbw/Desktop/MyFtp。
然后在配置文件中添加 anon_root=/home/hhhcbw/Desktop/MyFtp/:

然后重启服务,sudo service vsftpd restart。
在 MyFtp 创建两个目录 aa、bb。
依旧使用 ftp [服务器IP] 连接服务器,但是登录的用户名为 anonymous,密码不需要填写直接回车。

ls 可见当前目录下有 aa 和 bb,且 pwd 可见 MyFtp 为根目录,即不能随意切换到其他目录。
这时匿名用户是无法在目录上传文件的,因为目录对于其他用户是没有写权限的,要在这些目录上传文件需要修改权限。
然后退出可以使用 bye、quit、exit 三种命令。
自带的客户端是无法上传和下载目录,可以使用lftp客户端工具上传和下载目录。
首先使用 sudo apt-get install lftp 下载lftp客户端工具。
匿名用户登录
首先 lftp [服务器IP] 连接服务器,然后输入 login 就可以完成匿名用户登录。
实名用户登录
首选 lftp username@服务器IP,然后输入服务器密码。
使用 lftp 还可以操作本地目录 lpwd 显示本地当前目录,lcd 进入本地某个目录。
操作文件命令:
put 上传文件mput 上传多个文件get 下载文件mget 下载多个文件mirror 下载整个目录及其子目录mirror -R 上传整个目录及其子目录