一、安装并配置vsftpd
在Linux中,可供我们选择的FTP服务器种类众多。但如果我们想在树莓派上 搭建一个安全、
高性能且稳定性好的FTP服务器,那么就非vsftpd莫属了。Vsftpd 的全称是Very Secure FTP
Daemon(非常安全的FTP进程),是一个基于GPL发布的类UNIX类操作系统上运行的FTP服务
器,可以运行在Linux、BSD、Solaris、 HP-UX以及Irix等系统上面。同时,vsftpd也支持很多其
他传统的FTP服务器不支持的良好特性,用八个字概括其特点就是“小巧轻快,安全易用”。

安装 vsftpd 软件:
liu@hncloud-ubuntu18:~$ sudo apt install -y vsftpd
备份vsftpd的默认配置文件:
liu@hncloud-ubuntu18:~$ cd /etc/
liu@hncloud-ubuntu18:/etc$ sudo mv vsftpd.conf vsftpd.conf.orig
使用vi命令编辑新的FTP配置文件如下,该配置文件使能了本地用户登陆同时也使能匿名账号免密
登陆,并指定默认的登陆路径为 /srv/ftp。
liu@hncloud-ubuntu18:/etc$ sudo vim vsftpd.conf

# 匿名登录用户免密登录,并且不能上传文件
anonymous_enable=YES
anon_mkdir_write_enable=NO
no_anon_password=YES
# 上传文件更改用户名
chown_uploads=YES
chown_username=guowenxue
# 上传文件失败就删除文件
delete_failed_uploads=YES
# 使能本地用户登录和上传文件,并指定登录的工作路径
local_enable=YES
local_root=/srv/ftp
allow_writeable_chroot=YES
anon_root=/srv/ftp/
write_enable=YES
local_umask=022
# 设置FTP监听的端口为默认的21号端口
listen=YES
listen_ipv6=NO
listen_port=21
# 设置vsftpd的日志和
登录提示
ftpd_banner=Welcome to LingYun IoT system studio FTP server.
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
# 是否限制本地所有用户切换根目录的权限,YES为开启限制,即登录后的用户
# 不能访问ftp根目录以外的目录
chroot_local_user=YES
pam_service_name=vsftpd
# 是否启动userlist为通过模式,YES的话只有存在于userlist文件中的用户才能登录ftp
#(可以理解为userlist是一个白名单),NO的话,白名单失效,和下面一个参数配合使用
userlist_enable=YES
# 是否启动userlist为禁止模式,YES表示在userlist中的用户禁止登录ftp(黑名单),
# NO表示黑名单失效,我们已经让userlist作为一个白名单,所以无需使用黑名单功能。
userlist_deny=NO
# 指定哪个文件作为userlist文件,我们稍后编辑这个文件
userlist_file=/etc/vsftpd.userlist
# 本地用户登录的配置文件夹,可以分别指定每个用户的登录路径。
user_config_dir=/etc/vsftpd/userconfig
添加允许登陆FTP服务器的 匿名用户(anonymous) 和 本地用户(guowenxue):
guowenxue@hncloud-ubuntu18:/etc$ sudo vim /etc/vsftpd.userlist
anonymous
liu

二、匿名用户登陆测试vsftpd
创建FTP服务器匿名用户和本地用户的默认工作根路径和测试文件,把FTP根目录的所有者权限给
本地用户(liu)并修改文件权限755。注意匿名用户(anonymous)也在该路径下,该目录
不能给777的权限,否则匿名用户不能登录!:
liu@hncloud-ubuntu18:/etc$ sudo mkdir -p /srv/ftp/
liu@hncloud-ubuntu18:/etc$ sudo touch /srv/ftp/test.txt
liu@hncloud-ubuntu18:/etc$ sudo chown -R guowenxue.ftp /srv/ftp/
liu@hncloud-ubuntu18:/etc$ sudo chmod 755 /srv/ftp
重启vsftpd服务并检查其是否正常运行:
liu@hncloud-ubuntu18:/etc$ sudo service vsftpd restart
liu@hncloud-ubuntu18:/etc$ sudo netstat -tlnp | grep vsftpd
tcp 0 0
0.0.0.0:21 0.0.0.0:* LISTEN 9209/vsftpd
在访问之前,最好使用,先使用ping命令测试本机与Linux服务器之间是否连通,如果不通的话先
解决网络问题:
如果是虚拟机,则可以使用ifconfig命令查看自己虚拟机的IP地址,用这个IP地址访问;
如果是云服务器主机且没有域名,则可以使用云服务器公网IP地址访问;
如果是云服务器主机且没有域名,但想要用域名实现访问,则可以修改本地域名配置文件
(C:\Windows\System32\drivers\etc\hosts)实现;
如果是云服务器主机且配置好域名了,则可以直接使用域名访问;

```二、匿名用户登陆测试vsftpd
创建FTP服务器匿名用户和本地用户的默认工作根路径和测试文件,把FTP根目录的所有者权限给
本地用户(guowenxue)并修改文件权限755。注意匿名用户(anonymous)也在该路径下,该目录
不能给777的权限,否则匿名用户不能登录!:
liu@hncloud-ubuntu18:/etc$ sudo mkdir -p /srv/ftp/
liu@hncloud-ubuntu18:/etc$ sudo touch /srv/ftp/test.txt
liu@hncloud-ubuntu18:/etc$ sudo chown -R guowenxue.ftp /srv/ftp/
liu@hncloud-ubuntu18:/etc$ sudo chmod 755 /srv/ftp 
重启vsftpd服务并检查其是否正常运行:
liu@hncloud-ubuntu18:/etc$ sudo service vsftpd restart
liu@hncloud-ubuntu18:/etc$ sudo netstat -tlnp | grep vsftpd
tcp 0 0
0.0.0.0:21 0.0.0.0:* LISTEN 9209/vsftpd
在访问之前,最好使用,先使用ping命令测试本机与Linux服务器之间是否连通,如果不通的话先
解决网络问题:
如果是虚拟机,则可以使用ifconfig命令查看自己虚拟机的IP地址,用这个IP地址访问;
如果是云服务器主机且没有域名,则可以使用云服务器公网IP地址访问;
如果是云服务器主机且没有域名,但想要用域名实现访问,则可以修改本地域名配置文件
(C:\Windows\System32\drivers\etc\hosts)实现;
如果是云服务器主机且配置好域名了,则可以直接使用域名访问;
![在这里插入图片描述]()
使用Chrome浏览器,地址栏输入: ftp://Linux服务器地址 或 ftp://iotcraft.cn 即可匿名登陆访问FTP服务器了: