文章目录
一,FTP文件传输协议
-
ftp用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层,TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证
-
FTP服务器默认使用 TCP 协议的 20 21 端口与客户端进行通信
-
VSFTP全称(very secure FTP)
-
VSFTP模式:C / S 模式
-
20 端口用于建立数据连接,并传输文件数据
-
21 端口用于建立控制连接,并传输 FTP 控制命令
1.1FTP 数据连接分为主动模式和被动模式
-
主动模式(POST):服务器主动发起数据连接
-
被动模式(PASV):服务器被动等待数据连接
工作原理图:
1.2设置匿名用户访问的FTP服务(最大权限)
- 1.关闭防火墙,核心防护,配置DNS,安装vsftpd服务,备份并开启服务和开机自启
关闭防火墙和增强型安全功能
[root@c7-1 ~]# systemctl stop firewalld
[root@c7-1 ~]# setenforce 0
[root@c7-1 ~]# echo "nameserver 114.114.114.114 " >> /etc/resolv.conf
[root@c7-1 ~]# yum install vsftpd -y //安装vsftpd服务
[root@c7-1 ~]# cd /etc/vsftpd/
[root@c7-1 ~]# cp vsftpd.conf vsftpd.conf.bak //备份
启动服务并设置开启自启
[root@c7-1 ~]# systemctl start vsftpd
[root@c7-1 ~]# systemctl enable vsftpd
- 2.进入配置文件里面主要都是干什么的
[root@c7-1 ~]# vim /etc/vsftpd/vsftpd.conf
anonymous enable=YES //开启匿名用户访问,默认已开启
write_enable=YES //开放服务器的写权限(若要上传,必须开启)。默认已开启
anon_umask=022 //设置匿名用户所上传数据的权I限掩码(反掩码)
anon_upload_enable=YES //允许其他用户.上传文件。默认已注释,需取消注释
anon_ mkdir_write_enable=YES //允许匿名用户创建(上传)目录。默认已注释,需取消注释
anon_other_write_enable =YES //允许删除、重命名、覆盖等操作。需添加
chmod 777 7var/ftp/pub/ //为匿名访问ftp的根目录下的pub子目录设置最大权限,以便匿名用户上传数据
- 3.匿名访问测试
- 先在centos里,pub里面写入一个东西,方便在windows测试连接到FTP主机时查看是否上传或下载成功
-
切换到win10 win+r,输入命令打开命令提示符
建立ftp连接 ftp 192.168.113.125 #匿名访问,用户名为ftp,密码为空,直接回车即可完成登陆 ftp>pwd //匿名访问ftp的根目录为Linux系统的/var/ftp/目录 ftp>ls //查看当前目录 ftp>cd pub //切换到pub目录 ftp>get文件名 //下载文件到当前windows本地目录 ftp>put文件名 //上传文件到ftp目录 ftp>quit //退出
下载到了我的电脑C盘里
- 在测试上传带centos
先新建个文本输入内容
上传,pwd查上传到了centos那里
到centos里查到的目录查看是否上传
1.3设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录)
- 进入配置文件里面主要修改什么
[root@c7-1 ~]# vim /etc/vsftpd/vsftpd.conf
local_enable=Yes //启用本地用户
anonymous_enable=NO //关闭匿名用户访问
write_ enable=YES //开放服务器的写权I限(若要上传,必须开启)
local_umask=077 //可设置仅宿主用户拥有被上传的文件的权限(反掩码)
chroot_local user=YES //将访问禁锢在用户的宿主目录中
allow_writeable chroot=YES //允许被限制的用户主目录具有写权限
#anon_mkdir_write_enable=YES //注释掉
#anon_other_write_enable=YES //注释掉
local_root=/var/www/xtj2 //添加一个路径,改变登陆位置
[root@ftp vsftpd]# mkdir -p /var/www/xtj2 //vim配置完出来递归创建此目录
[root@ftp vsftpd]# chmod -R 777 /var/www/xtj2 //递归给与创建的目录权限
[root@ftp vsftpd]# useradd dxj2 //创建个用户
[root@ftp vsftpd]# echo "100700" | passwd --stdin dxj2 //免交互给密码
[root@c7-1 ~]# systemctl restart vsftpd //重启服务
ftp 192.168.113.125 //进入Windows后的操作在下面
把注释取消,添加允许被限制的用户主目录具有写权限
注释掉
anon_ mkdir_write_enable=YES //允许匿名用户创建(上传)目录
anon_other_write_enable =YES //允许其他用户删除、重命名、覆盖等操作
添加一个路径,改变登陆位置,
vim配置完出来递归创建此目录
递归给与创建的目录所有权限
创建个用户,免交互给密码
重启服务
进入windows上传文件,之前创建的文件
此时就上传到了指定创建的目录下
img-iIpaaBry-1655646674656)]
重启服务
[外链图片转存中…(img-rkwzy0wK-1655646674656)]
进入windows上传文件,之前创建的文件
[外链图片转存中…(img-WEpPvdjB-1655646674657)]
此时就上传到了指定创建的目录下