Centos7搭建FTP站点
vsftpd安装
安装vsftpd
yum install vsftpd -y
设置开机自启
systemctl enable vsftpd
服务启动
systemctl start vsftpd
查看服务状态
systemctl status vsftpd
从服务状态可以看到,ftp服务已经处于running状态,同时可以看到ftp服务的配置文件。
服务重启
systemctl restart vsftpd
在修改了配置文件之后,需要重启服务。
vsftpd准备
我们可以使用root,不过推荐创建专门的ftp用户,保证服务器数据安全。
创建用户
adduser ftpuser
设置密码
passwd ftpuser
创建目录
可以直接使用已经存在的目录,这里单独创建一个新的目录进行共享,同时创建两个测试文件。
mkdir -p /var/vsftpd/ftp
touch /var/vsftpd/ftp/001.txt
touch /var/vsftpd/ftp/002.pdf
权限配置
将共享目录的拥有者设置为ftpuser。
chown -R ftpuser:ftpuser /var/vsftpd/ftp
vsftpd配置
前面通过服务状态可以看到配置文件路径,通过路径查看配置文件。
常用配置
#是否容许匿名登录FTP服务器。
anonymous_enable=NO
#允许本地用户登录FTP服务器。
local_enable=YES
# 数据传输中断超时时间
idle_session_timeout=600
# 数据连接超时时间
data_connection_timeout=120
日志配置
# 开启操作日志记录
xferlog_enable=YES
# 日志路径
xferlog_file=/var/log/vsftpd.log
# 日志格式使用标准xfer
xferlog_std_format=YES
黑名单配置
# 开启email黑名单
deny_email_enable=YES
# email黑名单文件路径
banned_email_file=/etc/vsftpd/banned_emails
# userlist中用户能否登录
userlist_enable=YES
# userlist中用户是否拉黑,与上面配置有一即可
userlist_deny=YES
其它配置
#允许进行写操作
write_enable=YES
#权限配置参数,具体看补充说明
local_umask=022
# 允许匿名用户上传文件
anon_upload_enable=YES
# 允许匿名用户创建新的目录
anon_mkdir_write_enable=YES
# 当用户进入某个目录时,会显示该目录需要注意的内容
dirmessage_enable=YES
# ftp服务监听端口
listen_port=21
# 主动模式端口使用20
connect_from_port_20=YES
# 设定是否允许 改变 上传文件的属主
chown_uploads=YES
# 设置想要改变的上传文件的属主,whoever表任何人
chown_username=whoever
# vsftpd运行的非特权用户
nopriv_user=ftpsecure
# 开启abor异步请求
async_abor_enable=YES
# 启用以ascii类型上传
ascii_upload_enable=YES
# 启用以ascii类型下载
ascii_download_enable=YES
# frp欢迎语
ftpd_banner=Welcome to blah FTP service
# 锁定用户只能在自己的目录下
chroot_list_enable=YES
# 用户锁定名单文件
chroot_list_file=/etc/vsftpd/chroot_list
# 容许目录递归查询
ls_recurse_enable=YES
# 以独立模式运行,由vsftpd自己监听和处理连接请求
listen=YES
# 支持ipv6
listen_ipv6=YES
# 设置 PAM 外挂模块提供的认证服务所使用的配置文件名 ,即/etc/pam.d/vsftpd文件,此文件中file=/etc/vsftpd/ftpusers字段,说明了PAM模块能抵挡的帐号内容来自文件/etc/vsftpd/ftpusers中
#pam_service_name=vsftpd
# 服务器使用 tcp_wrappers 作为主机访问控制方式
tcp_wrappers=YES
# 最大客户端连接数
max_client=100
# 通ip最大连接数,0表不限制
max_per_ip=1
# 本地用户最大传输速度单位b/s
local_max_rate=1000
# 匿名用户最大传输速度
ano n_max_rate=100
补充说明
- umask是在linux中常见的一个东西,它其实是一个掩码。当然,也有umask这样一个命令,它是对用户建立的文件的默认属性的定义。该 定义为:
假设umask为022,则对于一个文件夹的话,它的默认属性为 777-022=755,这也就是我们平时建立文件夹的权限。而对于一般的文件的话,则是用 666-022=644.
ftp数字代码
正常代码
- 110 重新启动标记应答
- 120 服务在多久时间内ready
- 125 数据链路端口开启,准备传送
- 150 文件状态正常,开启数据连接端口
- 200 命令执行成功
- 202 命令执行失败
- 211 系统状态或是系统求助响应
- 212 目录的状态
- 213 文件的状态
- 214 求助的讯息
- 215 名称系统类型
- 220 新的联机服务 ready
- 221 服务的控制连接端口关闭,可以注销
- 225 数据连结开启,但无传输动作
- 226 关闭数据连接端口,请求的文件操作成功
- 227 进入 passive mode
- 230 使用者登入
- 250 请求的文件操作完成
- 257 显示目前的路径名称
错误码
- 331 用户名称正确,需要密码
- 332 登入时需要账号信息
- 350 请求的操作需要进一部的命令
- 421 无法提供服务,关闭控制连结
- 425 无法开启数据链路
- 426 关闭联机,终止传输
- 450 请求的操作未执行
- 451 命令终止 : 有本地的错误
- 452 未执行命令 : 磁盘空间不足
- 500 格式错误,无法识别命令
- 501 参数语法错误
- 502 命令执行失败
- 503 命令顺序错误
- 504 命令所接的参数不正确
- 530 未登入
- 532 储存文件需要账户登入
- 550 未执行请求的操作
- 551 请求的命令终止,类型未知
- 552 请求的文件终止,储存位溢出
- 553 未执行请求的的命令,名称不正确。