ftp——文件传输协议,基于该协议ftp客户端与服务端可以实现共享文件;
作用:提供文件共享服务,实现文件上传、下载;
一、模式
1、主动模式
客户端开通端口N向服务端21号端口建立连接,同时开启一个N+1端口通知服务端,服务端接收到请求,用20号端口进行连接,传输数据;
2、被动模式
客户端开启两个端口,一个端口与服务端的21号端口连接,并继续请求服务端,服务端开启一个随机端口,并反馈给客户端,客户端进行连接,传输数据;
二、服务部署
1、主动模式(匿名用户)配置
服务端部署:
[precode]
firewalld
selinux
[root@tcent ~]# yum -y install vsftpd
[root@tcent ~]# systemctl start vsftpd
[root@tcent ~]# [root@tcent ~]# systemctl enable vsftpd
#以上是环境搭建,搭建好之后还需要去修改配置文件
[root@tcent ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
pasv_address=#云服务器公网ip
pasv_min_port=40000
pasv_max_port=45000
权限修改:这里非常需要注意的一点就是ftp根目录权限的修改,权限必须是755,属主属组也必须是root;
否则会报错:vsftpd: refusing to run with writable root inside chroot()
而这一问题的原因是用户的根目录可写,并且使用了chroot限制,而这在最近的更新里是不被允许的。
[root@tcent ~]# cd /var/ftp/
chown -R ftp.ftp .
chmod -R 777 .
权限修改成功,就可以使用客户端进行访问了;
客户端:
[root@tcent ~]# yum -y install lftp
lftp ip地址
get——下载单个文件
mget——下载多个文件
mirror——下载目录
put——上传单个文件
mput——上传多个文件
mirror -R 上传目录
mkdir——创建目录
2、被动模式(本地用户)
服务端部署:其余步骤都一样,只需修改配置文件
首先需要将之前配置匿名用户的配置内容注释掉,在添加以下几行
[root@tcent ~]# vim /etc/vsftpd/vsftpd.conf
68 pasv_address=#云服务器公网ip
69 pasv_min_port=40000
70 pasv_max_port=45000
105 chroot_list_enable=YES
107 chroot_list_file=/etc/vsftpd/chroot_list
108 allow_writeable_chroot=YES
#以上配置信息都是必须添加的
local_root=/home/zhangsan # 设置本地用户的FTP根目录,一般为用户的家目录
local_max_rate=0 # 限制最大传输速率(字节/秒)0为无限制
#最下边两项选择添加
[root@tcent ~]# useradd username
[root@tcent ~]# passwd username
[root@tcent ~]# vim /etc/vsftpd/chroot_list
username
#以上都完成的情况下还需要修改本地用户的权限
[root@tcent ~]# chmod -R 777 .
客户端下载lftp直接访问即可;
[/precode]
Comments NOTHING