FTP文件传输
FTP(File Transfer Protocol,文件传输协议)是一种用于在计算机网络上进行文件传输的标准协议。它允许用户在客户端和服务器之间上传和下载文件。FTP服务器端可以同时提供给多人共享使用。
FTP服务是Client/Server(简称C/S)模式,基于FTP协议实现FTP文件对外共享及传输的软件称之为FTP服务器源端,客户端程序基于FTP协议,则称之为FTP客户端,FTP客户端可以向FTP服务器上传、下载文件。
1. FTP模式
1.1 主动模式
主动模式(Active Mode):客户端打开一个端口,服务器通过这个端口与客户端建立连接。
ftp主动模式:客户端开启一个端口N(>1023)向服务端的21端口,建立连接,同时开启一个N+1,告诉服务端,我监听的是N+1端口,服务端接到请求之后,用自己的20端口连接到客户端的N+1端口,进行传输。服务端的21号端口建立连接,20号端口传输数据。
1.2 被动模式
被动模式(Passive Mode):服务器打开一个端口,客户端连接到这个端口。被动模式通常用于防火墙环境下。
ftp被动模式:客户端同时开启两个端口(N,N+1),一个端口(N)跟服务端的21端口建立连接,并请求服务端再开一个端口。服务端接到请求之后,随机会开启一个端口(x)并告诉客户端我开启的是x端口,客户端用另一个端口(N+1)与服务端的(x)端口进行连接,传输数据
2. ftp匿名用户访问
同时准备两台服务器,一台服务端ftp-server(192.168.234.22),一台客户端ftp-client(192.168.234.23)
两台服务器都要关闭selinux和防火墙
2.1 ftp服务端配置
yum -y install vdftpd #安装ftp服务
systemctl start vsftpd #启动ftp服务
systemctl enable vsftpd #ftp开机自启
/var/ftp/ #FTP默认共享目录
vim /etc/vsftpd/vsftpd.conf #编辑配置文件
添加以下内容
anon_umask=022 #匿名用户上传下载目录权限掩码
anon_other_write_enable=YES #允许匿名用户对目录进行操作
anon_upload_enable=YES #允许匿名用户上传文件
anon_mkdir_write_enable=YES #允许匿名用户创建目录
cd /var/ftp
chown -R ftp.ftp * #修改根目录的属主与属组,如果不改变的话,只能访问,其他权限不能生效
systemctl restart vsftpd #重新启动ftp
2.2 ftp客户端配置
yum -y install lftp #安装lftp
lftp 192.168.234.22 #连接到服务端
此时可进行touch,mkdir,ls,cd等操作,但上传下载命令有不同
get #下载单个文件
mget #下载多个文件
mirror #下载目录
put #上传单个文件
mput #上传多个文件
mirror -R #上传目录
exit或quit或Ctrl+D退出登录
3. ftp本地用户访问
3.1 ftp服务端配置
创建用户并设置密码
useradd zhangsan #创建用户zhangsan
echo '密码' | passwd --stdin zhangsan #设置密码
修改配置文件
vim /etc/vsftpd/vsftpd.conf #编辑配置文件
anonymous_enable=NO #将允许匿名登录关闭
#anon_umask=022 #匿名用户上传下载目录权限掩码
#anon_other_write_enable=YES #允许匿名用户对目录进行操作
#anon_upload_enable=YES #允许匿名用户上传文件
#anon_mkdir_write_enable=YES #允许匿名用户创建目录
关闭匿名用户登录并注释掉所有匿名用户的配置
添加以下配置
chroot_list_enable=YES #启用限制登陆用户在主目录里面
chroot_list_file=/etc/vsftpd/chroot_list #限制登陆的用户在这个文件列表中,一行一个用户
allow_writeable_chroot=YES #允许限制的用户对目录有写权限
local_root=/home/zhangsan #设置本地用户的FTP根目录,一般为用户的家目录
local_max_rate=0 #限制最大传输速率(字节/秒)0为无限制
添加用户名到文件
echo "zhangsan" >>/etc/vsftpd/chroot_list #一定要一行一个用户
重启生效
systemctl restart vsftpd
3.2 ftp客户端配置
yum -y install lftp -u zhangsan
Password:输入密码
操作方法同前文,但此时上传和创建的文件目录在服务端/home/zhangsan/目录下,不在/var/ftp