首页 > 其他分享 >文件传输协议FTP

文件传输协议FTP

时间:2024-10-24 09:49:52浏览次数:1  
标签:FTP enable 协议 文件传输 用户 默认 YES 客户端

FTP工作原理

  1. FTP介绍

文件传输协议:File Transfer Protocol ,基于C/S架构

数据传输格式:二进制(默认)、文本

双通道协议:命令和数据连接

  1. 两种工作模式:从服务器角度

1️⃣ 主动(port style):​服务器主动连接

命令(控制):客户端随机Port --->服务器21/tcp

数据:客户端随机Port<---服务器:20/tcp

2️⃣ 被动模式(PASV style):客户端主动连接

命令(控制): 客户端随机Port --->服务器21/tcp

数据:客户端随机Port--->服务器随机port/tcp

3️⃣ 范例:服务器被动模式数据端口

227 Entering Passive Mode (0,0,0,0,183,57).

在FTP中,当出现上述消息时,它通常意味着FTP客户端正在尝试与FTP服务器建立数据连接,而不是控制连接(控制连接用于发送FTP命令和响应)。

括号内的数字 (0,0,0,0,183,57)是被动模式(PASV模式)的IP地址和端口编码。FTP的被动模式允许FTP服务器告知FTP客户端哪个端口它应该侦听以便接收和发送数据。

数字解读:

前四个数字(0.0.0.0)通常代表FTP服务器的IP地址。但在某些情况下服务器会出于安全原因反回0.0.0.0。这通常表示客户端应该使用它用于控制连接的同一IP来连接数据端口

后两个数字(183,57)实际上是一个端口号。具体的说,随机端口号=183*256+57=46905

  1. FTP状态码:

1XXX:信息,125:数据链接打开

2XXX:成功类状态, 200:命令OK,230:登陆成功

3XXX:补充类,331:用户名OK

4XXX:客户端错误,425:不能打开数据连接

5XXX:服务器错误,530:不能登录

  1. 用户认证

匿名用户:ftp,anonymous,对应linux用户ftp

系统用户:Linux用户

虚拟用户:特定服务的专用用户,独立的用户/密码文件

vsftpd服务常见配置

1️⃣ 命令端口

listen_port=21默认值为21

2️⃣ 主动模式端口

connect_from_port_20=YES主动模式端口为20

ftp_data_port=20(默认)指定主动模式的端口

3️⃣ 被动模式端口范围

linux ftp客户端默认使用被动模式

window ftp客户端默认使用主动模式

--端口范围会影响FTP客户端的并发数

pasv_min_port=6000 #设置被动模式使用的最小端口号

pasv_max_port=6200 #设置被动模式使用的最大端口号

4️⃣ 使用当地时间

use_localtime=YES #使用当地时间(默认为NO,使用MGT)

5️⃣ 匿名用户登录

anonymous_enable=YES #支持匿名用户,CentOS8默认不允许匿名

no_anon_password=YES #匿名用户跳过口令检测,默认为NO

6️⃣ 匿名用户上传

anon_upload_enable=YES #匿名上传,须注意文件系统权限

anon_mkdir_write_enable=YES #匿名创建目录

注意:需要开启文件系统的访问权限,不能给FTP根目录写权限,只能给子目录写权限,否则会报错。

anon_world_readable_only=YES #只能下载全部读的文件,默认YES

anon_umask=0333 #指定匿名上传文件的umask,默认0777,注意0333中的0不能省略

anon_other_write_enble=YES #可删除和修改上传的文件,默认为NO

7️⃣ 指定匿名用户上传的文件的默认所有者和权限

chown_uploads=YES #默认为NO

chown_username=www

chown_upload_mode=0644

8️⃣ Linux系统用户

local_enable=YES #是否允许linux用户登录

write_enable=YES #允许linux用户上传文件

local_umask=022/ #指定系统用户上传的文件的默认权限

9️⃣ 将系统用户映射为指定的guest用户

guest_enable=YES #所有系统用户都用映射为guest用户

guest_username=ftp #配合上面选项才生效,指定guest用户

local_root=/ftproot guest用户登录所在目录

  1. 禁锢系统用户

chroot_local_user=YES #禁锢系统用户,默认NO,即不禁锢

# 禁锢或不禁锢特定系统用户在家目录中,与上面设置功能相反

chroot_list_enable=YES #默认是NO

chroot_list_file=/etc/vsftpd/chroot_list #默认值

  • 当chroot_local_user=YES和chroot_list_enable=YES时,则chroot_list中用户不禁锢,即白名单
  • 当chroot_local_user=NO和chroot_list_enable=YES时,则chroot_list中用户禁锢,即黑名单
  1. FTP日志

# wu-ftp日志:默认启用

xferlog_enable=YES #启用记录上传和下载日志,默认YES

xferlog_std_format=YES使用wu-ftp日志格式,默认为YES

xferlog_file=/var/log/xferlog #可自动生成

# vsftpd日志,默认不启用

dual_log_enable=YES #使用vsftpd日志格式,默认不启用

vsftpd_log_file=/var/log/vsftpd.log #可自动生成,默认路径

  1. 是否启用控制用户登录的列表文件

userlist_enable=YES #默认

userlist_deny=YES #黑名单,不提示口令,NO为白名单

userlist_file=/etc/vsftpd/user_list #默认文件路径

  1. vsftpd服务指定用户身份运行

nopriv_user=nobody #默认值

  1. 连接数限制

max_clients=0 #最大并发连接数,如果超出,会报错:421 There are too many connected users,olease try later.

  1. 每个IP同时发起的最大连接数

max_per_ip=0 #每个IP同时发起的最大连接数

  1. 传输速率,单位 :字节/秒

anon_max_rate=0 #匿名用户最大传输

local_max_rate=0 #本地用户最大传输

  1. 连接时间

connect_timeout=60 #主动模式数据连接超时时长

accept_timeout=60 #被动模式数据连接超时时长

data_connecttion_timeout=300 #数据连接无数据传输超时时长

idle_session_timeout=60 #无命令操作超时时长

  1. 优先以文本传输,注:不建议使用文本方式,可能会导致二进制文件内容损坏

ascli_upload_enable=YES

ascli_download_enable=YES

标签:FTP,enable,协议,文件传输,用户,默认,YES,客户端
From: https://www.cnblogs.com/baixisuozai/p/18498910

相关文章

  • stm32入门教程--UART协议详解
    目录简介UART串口协议串行通信并行通信串行通信与并行通信的区别单工通信半双工全双工同步和异步的区别UART帧结构简介STM32是意法半导体公司推出的一款32位ARMCortex-M系列微控制器。UART、SPI和I2C是STM32中常用的串行通信协议。UART(通用异步收发器):UART是一......
  • 【网络原理】——HTTP协议、fiddler抓包
     阿华代码,不是逆风,就是我疯你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你!!目录一:认识HTTP1:超文本传输2:发展历史3:HTML4:交互过程5:报文格式6:HTTP请求格式7:HTTP的响应格式二:fiddler1:介绍2:设置三:URL1:认识URL2:URL完整结构3:URLencode四:HTTP首行方......
  • HTTP协议
    什么是HTTP?◼什么是HTTP呢?我们来看一下维基百科的解释:超文本传输协议(英语:HyperTextTransferProtocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议;HTTP是万维网的数据通信的基础,设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法;通过HTT......
  • 使用Python ftplib库进行封装FTP自动下载
    fromftplibimportFTPfrombaseapi.loggerimportMyLoggerlogger=MyLogger.get_logger()classFTPUtils:ftp=FTP()ftp.set_pasv(False)def__init__(self,username,password,host,port=21):"""用于FTP站点初始化......
  • SPI通讯协议笔记
    SPI的通讯时序当我的NSS从机片选线从高电平被拉至低电平代表选中了这个从机,通讯开始,当从机片选线从低电平升至高电平,代表通讯结束(选中从机状态取消)SCK每一个周期传输MOSI和MISO的一个数据,当SCK下降沿时采样MOSI和MISO的数据......
  • 推荐一些关于计算机网络和 TCP/IP 协议的书籍
    以下是一些关于计算机网络和TCP/IP协议的优秀书籍推荐:《TCP/IP详解》:作者为W.RichardStevens,这是一套经典之作,分为三卷。《TCP/IP详解卷1:协议》:详细解析了TCP/IP协议的工作原理和实现细节,对协议族中的各个层次和协议,如IP、TCP、UDP等进行了深入剖析,适合想......
  • 可以通过以下几种方法设置FTP用户权限
    在Linux系统中,可以通过以下几种方法设置FTP用户权限:使用chown命令:可以使用chown命令更改FTP用户所属的用户和组。例如,要将FTP用户的所有文件的所有者更改为ftpuser并将组更改为ftp,可以使用以下命令:sudochown-Rftpuser:ftp/path/to/ftpuser复制代码使用chmod命令:可以使用ch......
  • DeviceNet主站转EtherCAT协议转换网关
    一,设备主要功能捷米特JM-ECT-DNTM网关实现EtherCAT网络与DeviceNet网络之间的数据通讯,可连接DeviceNet网络到EtherCAT网络。即将DeviceNet设备连接到EtherCAT网络。应用广泛:本产品应用于支持DeviceNet接口的电机、IO模块、机器人、仪表、等等。例如半导体设备中的IO模块、M......
  • EtherCAT转CC-Link协议转换网关
    一,设备主要功能捷米特JM-ECT-CCLK网关是自主研发的一款CC-Link从站功能的通讯网关。该产品主要功能是将各种CC-Link总线和EtherCAT网络连接起来。本网关连接到EtherCAT总线中做为从站使用,连接到CC-Link总线中做为从站使用。应用广泛:实现不同协议设备的集成:工业现场存在支持Et......
  • TCP与UDP协议
    (1)TCP协议面向连接、可靠、基于字节的传输,IP报头中协议号为6。一般用于对可靠性要求较高的应用。(2)UDP协议无连接、不可靠、基于报文的传输,IP报头中协议号为17。主机不需维持连接状态具有较高的传输效率,可靠性由应用层来提供。TCP报头结构①源端口和目的端口:传输层与......