当前位置:网站首页>FTP服务
FTP服务
2022-07-28 05:28:00 【光的方向79】
目录
出现的问题:1、Failed to establish connection.
一、FTP工作原理及通信方式
1、FTP作用和模式
作用:通过Internet网络来进行上下行传送文件的协议。
VSFTPD全称:Very Secure FTP
VSFTPD模式:C/S模式
FTP是一种文件传输协议,他是基于TCP协议的应用层协议,使用20和21端口进行传输,其中20 端口用于建立数据连接,并传输数据,21端口用于控制连接,并传输FTP控制指令。
2、FTP工作原理
FTP客户端连接到FTP服务器的21端口,发送用户名和密码,客户端随机开放一个端口(1024以上),发送PORT命令到FTP服务器,告知服务器客户端采用主动模式并开放端口,FTP服务器收到PORT主动模式命令和端口后,通过服务器的20端口额客户端开放的端口连接,发送数据。
3、FTP的两种模式
它支持两种模式,Standard(Active)的主动模式和Passive(PASV)的被动模式
①Standard模式(主动)
FTP客户端首先和FTP Server模式,21端口来建立连接,通过这个通道发送指令,客户端需要接收数据的时候再这个通道上发送PORT指令。PORT命令包含了客户端的数据,在传送的时候,服务器通过自己的TCP 20端口发送数据。FTP Server必须和客户端建立一个新的连接用来传输数据。
②Passive模式(被动)
在建立控制通道的时候和Standard模式类似,当客户端通过发送PASV命令的时候 ,TFPServer打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传输数据的请求,然后FTP Server将通过这个端口来进行数据的传输。这个时候FTP Server不在需要建立一个新的和客户端之间的连接。
二、配置FTP服务
yum install -y vsftpd ##下载软件

匿名
vim /etc/vsftpd/vsftpd.conf ##配置文件
anonymous_enable=YES #开启匿名用户访问。默认已开启(FTP)
write_enable=YES # 开放服务器的写权限(如要上传,必须开启)
anon_umask=002 #设置匿名用户所上传数据的权限掩码(反掩码)

anon_upload_enable=YES #允许匿名用户.上传文件。默认已注释,需要取消注释

anon_mkdir_write_enable=YES #允许匿名用户创建(上传)目录 默认已注释,需取消注释

anon_other_write_enable=YES #允许其他删除、重命名、覆盖等操作。需要添加

保存并退出
chmod 777 /var/ftp/pub/ #为匿名访问ftp的根目录的pub的子目录设置最大权限,以便匿名用户进行操作
systemctl start vsftdp 开启服务

匿名访问测试

然后我们打开一个windows系统虚拟机 cmd进入字符界面进行连接
ftp 加上刚才主机的IP地址 用户用ftp 密码直接回车

本地新建一个文件夹


然后我们在win10本地创建一个文件并且写入一些数据

上传

验证
![]()
出现的问题:1、Failed to establish connection.
解决方法:
vsftp中,通过编辑 /etc/vsftp.conf 实现启用PASV连接。
sudo vi /etc/vsftp.conf
在配置文件中添加下面语句:
pasv_enable=YES
pasv_min_port=6000
pasv_max_port=7000
2、 Could not create file.

暂时没解决
本地用户
vim /etc/vsftpd/vsftpd.conf
修改配置文件
anonymous_enable=NO #关闭匿名用户访问
local_enable=YES #启动本地用户
write_enable=YES #开放服务器的写权限(如果要上传必须开启)
local_umask=007 #可设置仅宿主用户拥有被上传的文件的权限(反掩码)
chroot_local_user=YES #将访问禁锢在用户的宿主目录中
allow_writeable_chroot=YES #允许被限制的用户主目录具有写权限
anon_mkdir_write_enable=YES 注释掉
anon_other_write_enable=YES 注释掉
三、总结
本文主要讲了FTP的作用和工作原理,以及两种工作模式:主动模式和被动模式。讲解了如何搭建和配置FTP服务,包括匿名用户实验和设置用户模式登录实验。
边栏推荐
猜你喜欢
![[dynamic planning -- the best period for buying and selling stocks Series 2]](/img/6c/887a026d3c1bcbd278bb7f3e0afd05.png)
[dynamic planning -- the best period for buying and selling stocks Series 2]

Compilation and preprocessing of C language

KVM热迁移

Which brand of air conduction earphones is good and highly praised

MySQL index optimization

Leetcode skimming diary sword finger offer II 050. sum of downward path nodes

mysql-8.0.17-winx64(附加navicat)手动配置版安装

如何描述一个BUG以及BUG级别的定义、生命周期

SSAO by computer shader (II)

2022 Tanabata gift recommendation! Nice, cheap and practical gift recommendation
随机推荐
Yapi vulnerability hanging horse program chongfu.sh processing
mysql索引优化
Two dimensional array practice: spiral matrix
It is recommended to wear air conduction earphones, which do not need to wear in ear
JS逆向100题——第1题
Mongodb quick start
Redis cache design and performance optimization
[dynamic planning -- the best period series for buying and selling stocks]
Leetcode brush question diary sword finger offer II 053. Medium order successor in binary search tree
HDU-5806-NanoApeLovesSequenceⅡ(尺取法)
Water rendering example
设计测试用例的方法
redis实现分布式锁思路及redission分布式锁主流程分析
网络——网络层
技术分享 | 接口测试价值与体系
小tips
MySQL主从
[dynamic planning -- the best period for buying and selling stocks Series 2]
AQS之ReentrantLock源码解析
---栈&队列---