很多时候我们需要把服务器的文件下载下来备份(比如云服务器迁移或者到期后,不续租),使用scp效率很低,而且容易断开,使用ftp是最好的方法。本文介绍vsftpd常用的安装方式和配置
快速部署(匿名用户)
- 卸载老版本
## 查找已经安装的vsftpd
rpm -aq vsftpd
## 卸载查找到的vsfpd
yum remove -y vsftpd-3.0.2-21.el7.x86_64
- 安装
## 安装
yum install -y vsftpd
- 防火墙开放21端口
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
- 启动
systemctl start vsftpd
- 连接测试(匿名用户)
安装后,默认可以使用匿名用户登录,ftp的根目录在
/var/ftp
[root@dev01 vsftpd]# lftp localhost
lftp localhost:~> ls
drwxr-xr-x 2 0 0 6 Jun 09 2021 pub
目前实现了匿名用户登录以及文件下载,但是存在两个问题
- 匿名用户安全性很差
- ftp的默认目录
/var/ftp
可能并不是想要的目录
配置普通用户
- 设置权限:
/etc/vsftpd/vsftpd.conf
## 禁用匿名用户
anonymous_enable=NO
## 允许本地用户
local_enable=YES
## 允许本地用户上传
write_enable=YES
## 限制只能访问用户主目录
chroot_local_user=YES
## 允许用户对主目录有写权限
allow_writeable_chroot=YES
- 设置用户列表:
/etc/vsftpd/vsftpd.conf
## 用户列表
userlist_enable=YES
## 用户列表文件,每一行是一个用户名称
userlist_file=/etc/vsftpd/user_list
## 用户默认行为是允许还是拒绝,NO表示默认拒绝,只有userlist_file才可以访问;YES表示允许,userlist_file不可以访问
userlist_deny=NO
- 设置用户列表:
/etc/vsftpd/user_list
# {username}是你的系统的真实用户名
echo {username} > /etc/vsftpd/user_list
echo {username2} >> /etc/vsftpd/user_list
设置用户ftp主目录
本地用户的主目录有时候并不能作为ftp的根目录,也可以对每个用户设置设置FTP根目录
代码语言:javascript复制# 创建用户配置目录
mkdir /etc/vsftpd/userconfig
# 创建用户FTP目录
mkdir /data/ftp
# 编辑用户配置文件
echo "local_root=/data/ftp" > /etc/vsftpd/userconfig/{username}
设置被动模式: /etc/vsftpd/vsftpd.conf
代码语言:javascript复制pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
参考
- How To Install an FTP Server on CentOS 7 With VSFTPD