什么是ftp服务
ftp是File Transfer Protocol的缩写,文件传输协议,Internet 上用来传送文件的协议。
ftp服务器有很多,本文主要讲解vsftp
vsftp
VSFTP是一个基于GPL发布的类Unix系统上使用的ftp服务器软件,它的全称是Very Secure FTP,它是一个安全、高速稳定的ftp服务器。
- 端口
[root@centos7-1 vsftpd]# vi /etc/services | grep ftp ftp-data 20/tcp ftp-data 20/udp # 21 is registered to ftp, but also used by fsp ftp 21/tcp ftp 21/udp fsp fspd
20: 传数据
21: 传指令
fsp: 文件服务协议
- 安装vsftp
# vsftpd是服务端,lftp是客户端(从7开始lftp取代了ftp客户端命令) yum -y install vsftpd lftp
lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在编译的时候包含openssl库)。llftp的界面非常好一个shell: 有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便。它还有书签、排队、镜像、断点续传、多进程下载等功能。
- 配置文件
/etc/vsftpd/ ├── ftpusers #用于指定哪些用户不能访问FTP 服务器。 黑名单 ├── user_list #指定允许使用vsftpd 的用户列表文件。 白名单 ├── vsftpd.conf #vsftpd 的核心配置文件 ├── vsftpd.conf.back └── vsftpd_conf_migrate.sh # vsftpd 操作的一些变量和设置脚本
/var/ftp/:默认情况下匿名用户的根目录
- 启动vsftpd
# 启动 systemctl start vsftpd # 查看进程状态,为什么看不到20?因为没有数据通信 [root@centos7-1 /]# netstat -antup | grep ftp tcp6 0 0 :::21 :::* LISTEN 4511/vsftpd
到这里我们就可以访问我们的ftp服务器

访问ftp服务器
但是我们貌似不能创建文件,怎么办?
# 修改文件的拥有者 chown ftp.ftp /var/ftp/pub/
到这里可以创建文件了,但是不能修改和删除,想要修改和删除需要修改/etc/vsftpd/vsftpd.conf
允许匿名用户访问 anonymous_enable=YES 允许匿名用户上传文件并可以创建目录 anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES #默认没有,需要手动添加下这行
重启服务,然后就可以创建、修改和删除文件了。
注: 实际工作中建议不要使用匿名用户。
- 账号密码登陆
1.创建一个禁止登陆shell的用户并设置密码
useradd -s /sbin/nologin team1 echo "123456" | passwd --stdin team1
2.修改配置文件vsftpd.conf
anonymous_enable=NO:禁止匿名用户登录 local_enable=YES:允许本地用户登录 local_root=/var/www/html:设置本地用户的根目录为/var/www/html chroot_list_enable=YES:激chroot 功能 chroot_list_file=/etc/vsftpd/chroot_list:设置锁定用户在根目录中的列表文件。此文件存放要锁定的用户名 allow_writeable_chroot=YES :允许锁定的用户有写的权限
3.创建chroot_list文件
vim /etc/vsftpd/chroot_list team1 # 添加用户名
4.修改本地权限为
[root@centos7-1 vsftpd]# ll /var/www/ 总用量 0 drwxr-xrwx+ 3 root root 39 10月 15 11:14 html
5.重启vsftpd
systemctl restart vsftpd
到这里,你的ftp服务器就搭建好了。