vsftpd 是“very secure FTP daemon”的缩写,是一款在Linux发行版中最受推崇的 FTP 服务器程序。特色是小巧轻快,安全易用。支持不少其余的 FTP 服务器所不支持的特征,好比:很是高的安全性需求、带宽限制、良好的可伸缩性、可建立虚拟用户、支持IPv六、速率高等。shell
更新 yum 源centos
yum -y update
检查是否已安装:安全
rpm -qa | grep vsftpd
若是无,则安装:服务器
yum -y install vsftpd
若是有,则更新:session
yum -y update vsftpd
查看版本信息:app
vsftpd -v
vsftpd: version 3.0.2tcp
启动 vsftpd 服务:ide
systemctl start vsftpd.service
设置开机启动:工具
systemctl enable vsftpd.service
安装 Berkeley DB,用于生成虚拟用户数据 db 文件:(centos 7须要先安装epel yum 源)post
yum -y install db4-utils
安装 PAM,用于用户认证:
yum -y install pam*
备份默认的配置文件:
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
从新建立配置文件:
vi /etc/vsftpd/vsftpd.conf
添加配置信息**(注意等号两边不能有空格)**:
anonymous_enable=NO local_enable=YES local_umask=022 #tcp_wrappers=NO reverse_lookup_enable=NO pam_service_name=vsftpd #userlist_enable=YES userlist_deny=NO userlist_file=/etc/vsftpd/user_list #chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list allow_writeable_chroot=YES #listen=YES listen_port=21 connect_from_port_20=YES pasv_enable=YES pasv_promiscuous=YES pasv_min_port=8000 pasv_max_port=8100 #accept_timeout=120 connect_timeout=120 data_connection_timeout=180 idle_session_timeout=600 local_max_rate=0 #dirmessage_enable=NO xferlog_enable=YES xferlog_file=/var/log/vsftpd.log #log_ftp_protocol=YES xferlog_std_format=YES #guest_enable=YES guest_username=root virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/vuser_conf
注意:guest_username
通常填写目录全部者,通常为 root 或者 www、ftp 等。
备份 user_list
(容许访问 FTP 的用户名单):
mv /etc/vsftpd/user_list /etc/vsftpd/user_list.bak
Shell
从新建立 user_list
文件并添加容许访问的 FTP 用户名(一行一个):
vi /etc/vsftpd/user_list
建立 chroot_list
文件:
touch /etc/vsftpd/chroot_list
若是有容许访问上级目录的用户,在该文件中添加用户名(一行一个)。
新建虚拟用户独立配置路径文件夹:
mkdir /etc/vsftpd/vuser_conf
添加虚拟用户独立配置(文件名为用户名):
vi /etc/vsftpd/vuser_conf/test
写入该用户的独立配置:
local_root=/home/wwwroot/www.xxx.com write_enable=YES download_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
注意: local_root
为 FTP 用户根目录。
建立日志文件:
touch /var/log/vsftpd.log
设置文件权限:
chown ftp:ftp /var/log/vsftpd.log
重启 Vsftpd:
systemctl restart vsftpd.service
添加虚拟用户认证文件:
vi /etc/vsftpd/vsftpd_vuser
在文件中添加虚拟用户名和密码,奇数行用户名,偶数行密码:
testtest123
生成虚拟用户认证文件**(每次修改虚拟用户密码均需从新生成一次)**:
db_load -T -t hash -f /etc/vsftpd/vsftpd_vuser /etc/vsftpd/vsftpd_vuser.db
若是出现如下错误:
db_load: unexpected end of input data or key/data pair、db_load: odd number of key/data pairs
请在 /etc/vsftpd/vsftpd_vuser
最后添加一行空行,再尝试生成用户认证文件。
设置文件权限,只有 root 用户能够读写:
chmod 600 /etc/vsftpd/vsftpd_vuser.db
备份 vsftpd 的 PAM 认证文件:
mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
从新建立 PAM 文件:
vi /etc/pam.d/vsftpd
添加配置:
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_vuser account required pam_userdb.so db=/etc/vsftpd/vsftpd_vuser
64 位系统再在下面添加如下两行
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_vuser account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_vuser
查看 ftp 服务是否已经永久启用:
firewall-cmd --permanent --query-service=ftp
若是没有,则启用 ftp 服务:
firewall-cmd --permanent --add-service=ftp
给 ftp 服务添加 vsftpd 命令传输端口和被动模式端口:
# 添加 vsftpd 命令传输端口 20/tcpfirewall-cmd --permanent --service=ftp --add-port=20/tcp# 添加上面设置的被动模式端口段 8000-8100/tcpfirewall-cmd --permanent --service=ftp --add-port=8000-8100/tcp、
查看下次重启(防火墙从新加载、服务器重启或者系统重启)以后永久生效的服务:
firewall-cmd --permanent --list-service
查看下次重启(防火墙从新加载、服务器重启或者系统重启)以后永久生效的 ftp 服务的信息:
firewall-cmd --permanent --info-service=ftp
ftp
ports: 21/tcp 20/tcp 8000-8100/tcp
protocols:
source-ports:
modules: ftp
destination:
从新加载防火墙规则:
firewall-cmd --reload
注意: 阿里云主机须要在安全组规则中添加入方向的 20/tcp, 21/tcp, 8000-8100/tcp
端口。
推荐使用免费开源的全平台支持的 FileZilla:FileZilla 官方下载
添加站点信息,常规配置便可:
主机:填写主机 IP
端口:若是没改过端口不需填写
协议:FTP - 文件传输协议
加密:只使用普通的 FTP
登陆类型:正常
用户:test
密码:test123
高级配置:
默认本地目录:选择电脑上面须要和服务器上面传输文件的路径
默认远程目录:通常状况下是根目录,就填写 /
同步浏览:开启后在两边界面切换目录时会同步切换,只有一边有的目录会提示是否下载或上传
比较浏览:会高亮显示两边不一样的文件或目录,对齐显示都有的文件或目录