Transmit

2023-12-12 17:38
文章标签 transmit

本文主要是介绍Transmit,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

好多人问transmit的封禁策略,看了一下代码,讲解一下:

transmit.conf中有像这样的几个配置项,比如:

#连接阀值CONN_CHECK_PERIOD_0 : 30CONN_STAY_PERIOD_0 : 590CONN_THRESHOLD_0 : 20#IP阀值
IP_CHECK_PERIOD_0 : 30IP_STAY_PERIOD_0 : 590IP_THRESHOLD_0 : 64IP_CHECK_PERIOD_1 : 600IP_STAY_PERIOD_1 : 590IP_THRESHOLD_1 : 300#cookie阀值COOKIE_CHECK_PERIOD_0 : 30COOKIE_STAY_PERIOD_0 : 590COOKIE_THRESHOLD_0 : 60


transmit支持3种类型的判断封禁,连接(CONN),IP,COOKIE其中CONN和IP都是以用户的IP包头中的IP来进行判断的。 COOKIE是HTTP包内的cookie的值来进行判断的。

一.CONN会在accept成功的时候(用户连接的时候)把用户的ip对应的计数器加1 --注意:KEEPALIVE的用户不会重复连接

二.IP会在

1.accept成功的时候

2.读取用户信息的HTTP包头的时候

把用户ip对应的累加器加1

三.COOKIE会在读取用户HTTP包头的时候把用户的cookie对应的计数器加1 --注意:只要cookie一样都会被累加


于是可以这么理解:

CONN计数器会为每一个ip分一个计数器,在有用户新建立连接的时候加一

IP计数器会为每一个ip分一个计数器,在有用户数据包到的时候加一

COOKIE计数器会为每一个COOKIE值分配一个计数器,在有相同的COOKIE值的时候加一


CHECK_PERIOD,STAY_PERIOD,THRESHOLD三者的意义

CHECK_PERIOD为检测的间隔,如果用户在这个时间内没有请求,就会清除用户的请 求记录。

STAY_PERIOD为当需要封禁用户时候,封禁的时间。

THRESHOLD为阈值,如果次数在CHECK_PERIOD时间内超过这个阈值,就把它放到 PRISON中。

每一种类型CONN,IP,COOKIE可以支持配置多个监测点(总共最多5个,不然会对效率产生影响)比如上面的例子IP配了两个。每一个IP来的时候,会分别对这两个阈值进行判断, 如果一个满足封禁要求,就把它放到PRISON中。

这样是为了: 有些用机器抓取我们的页面,一个短时间内不会超过阈值,但是很长时间内会有持续的较大量的连接,用户一般来说不可能有这样的行为。 这样我们第二个配置就可以生效。

个人认为第一个配置是为了防止攻击的(短时间内大量的请求),第二个是为了防止有机器抓取的(长时间内的较大量的请求)。


transmit可以配好多种apache,有如下的配置项:

#MAIN_APACHELOCAL_APACHE : localhost:8090#BWSBWS_DIR : /s? /sina? /index.php? /?BWS_PAGE : / /index.php /index.html /index.htmBWS : localhost:8200#PP_APACHEPP_APACHE_DIR : /sina.php? /cpro.php? /conads.php? /live.php?PP_APACHE0 : tc-news-vi00.tc:8080PP_APACHE1 : tc-news-vi01.tc:8080#COOKIE_APACHECOOKIE_APACHE0:10.23.11.11 8080 cookiefile.1COOKIE_APACHE0:10.23.11.12 8080 cookiefile.2COOKIE_APACHE0:10.23.11.13 8080 cookiefile.3DISPATCH_SCALE : 0#DISPATCH_APACHEDISPATCH_APACHE : 10.23.12.32:8080RECOVER_TIME : 30


其中LOCAL_APACHE是主apache

BWS是次要的apache,可以支持对请求路径和页面的分流(BWS_DIR,BWS_PAGE)

PP_APACHE是轮训的APACHE(也支持PP_DIR根据请求串分流)

COOKIE_APACHE是根据用户请求的COOKIE值分流的apache。COOKIE_APACHE配置的第三项要指定cookiefile,里面有一些cookie值,如果用户请求中的cookie匹配这个apache的cookiefile的某一项,那么就能落在这个apache上。

DISPATCH_APACHE是根据用户的IP分流的apache。

recover_time是一旦发现哪个apache挂了,在这段时间内不再会连接这个apache,

recover_time时间后会重试。

以下是一个请求(注意:不是一次连接,KEEPALIVE的每一次请求都会选择一个apache)进来选择apache的策略(逻辑较复杂):

如果配置了BWS_DIR或者是BWS_PAGE:用户的请求匹配到这个DIR或是PAGE,(比如用户请求www.sina.com/s?word=sina就匹配上面的配置):

如果配置了COOKIE_APACHE,并且用户请求的的COOKIE值匹配某一个cookie_apache的cookiefile中的值,就选择这个 cookie_apache.

如果没有配置COOKIE_APACHE或者没有匹配任何的cookie_file:

如果用户配置了DISPATCH_APACHE并且符合DISPATCH_SCALE的比例,就选择dispatch_apache.

既没有配置cookie_apache和dispache_apache就选择BWS。

如果用户指定的PP_DIR:用户的请求的DIR符合PP_APACHE_DIR的就被选择到了这个PP_APACHE,轮训选择PP_APACHE中的一个APACHE。

如果没有BWS_DIR,BWS_PAGE,PP_APACHE_DIR或者不匹配上面条件中的任何一个,就选择LOCAL_APACHE.


所以,基本的功能可以这样理解:

如果只需要连接一个APACHE,配置LOCAL_APACHE即可

如果需要根据用户的IP分流,可以指定BWS_DIR或者BWS_PAGE(配置本服务支持的所有的DIR或PAGE),DISPATCH_SCALE (默认为0),DISPATCH_APACHE,BWS

如果需要根据用户的COOKIE分流,可以指定BWS_DIR或者BWS_PAGE(配置本服务支 持的所有的DIR或PAGE),COOKIE_APACHEn (需要指定cookie file), BWS

如果需要轮训apache,可以指定PP_APACHE_DIR / (表示所有请求), 若干个PP_APACHEn,一个LOCAL_APACHE(万一前面的PP_APACHE都不行了,这个自动为备用)

如果既需要根据用户的DIR分流,可以配合BWS_DIR,BWS 和 PP_APACHE_DIR PP_APACHEn 和LOCAL_APACHE(如果都不匹配,选择这个apache)。


这篇关于Transmit的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/485428

相关文章

好用的FTP客户端 Transmit 5中文

Transmit 5是一款专为macOS设计的FTP客户端软件,由Panic公司开发。它支持FTP、SFTP、WebDAV和Amazon S3等多种传输协议,满足用户多样化的文件传输需求。Transmit 5拥有用户友好的界面设计,提供了清晰的文件传输状态和详细的信息,让用户能够轻松监控文件传输过程。此外,它还具有自动同步、文件夹比较、SSH隧道等实用功能,以及强大的文件管理能力,包括文件的上传、

FTP客户端Transmit 5 for Mac中文激活版

Transmit 5是一款功能强大的Mac FTP客户端软件,它由Panic公司开发,为用户提供简单、高效的文件传输体验。 Transmit 5 for Mac中文激活版下载 Transmit 5支持多种传输协议,如FTP、SFTP、WebDAV和Amazon S3等,满足用户不同的文件传输需求。 其用户友好的界面和强大的功能使得文件传输变得轻而易举,无论是上传还是下载文件,都可以通过简单

NETDEV WATCHDOG: ethx (xxx): transmit queue 0 timed out 分析

platform: 高通 msm-3.18 kernel。  mac: 高通ethernet mac。 phy: Ti dp83。 kernel log 如下: [  451.647838] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [  462.010112] ------------[ cut here ]---

【C语言】tcp_transmit_skb

一、__tcp_transmit_skb讲解 这个函数 __tcp_transmit_skb() 是 Linux 内核中 TCP/IP 协议栈的一部分,负责处理传输控制协议(TCP)数据包的发送。具体来说,这个函数将 TCP 头部添加到一个没有任何头部信息的 socket buffer (sk_buff) 数据包上,然后使用 IP 层进行进一步处理,并将数据包发送到网络设备。接下来用中文逐段说明

Transmit 5 for Mac:最佳的FTP客户端工具,让文件传输变得更简单

在数字化时代,文件传输是企业和个人之间进行合作和共享的重要环节。为了更好地管理和传输文件,Mac用户需要一款高效且易于使用的FTP客户端工具。而Transmit 5 for Mac正是满足这一需求的最佳选择。 Transmit 5 for Mac是一款为Mac用户设计的强大的FTP客户端工具。它提供了许多功能和特性,使文件传输变得更加简单和高效。 首先,Transmit 5 for Mac具有

A Novel Technique to Simultaneously Transmit ACO-OFDM and DCO-OFDM in IM/DD Systems

读后感: 今天读了《A Novel Technique to Simultaneously Transmit ACO-OFDM and DCO-OFDM in IM/DDSystems》,文章主要介绍了ACO-OFDM和DCO-OFDM两个新型的OFDM系统,及进行仿真比较。 强度调制直接检测系统(IM/DD):就是对强度调制的光载无线信号直接进行包络检测,也就是说强度调制信号直接通过光电探

【Com通信】报文的触发发送机制Trigger Transmit

目录 前言 正文 1.CAN报文IPDU的发送过程 1.1 COM模块发送IPDU 1.2 PDUR模块发送IPDU

Transmit 5 | Mac | 永久版 | 正品序列号 | 新品限时

Transmit 5 | Mac | 永久版 | 正品序列号 | 点击打开查看

Transmit 5 :高效轻便的文件传输工具,提升Mac传输效率

在数字时代,文件传输是我们日常生活和工作中不可或缺的一部分。对于使用Mac的用户来说,一个强大而高效的文件传输工具能够极大地提升他们的工作效率。而Transmit 5正是这样一款符合这一需求的理想工具。 Transmit 5凭借其高效轻便的特性,成为了Mac用户们的首选。它拥有出色的传输算法,能够在短时间内完成大量文件的传输任务。无论是上传还是下载,Transmit 5都能以惊人的速度处理文件,

CanIf Transmit Buffering 机制说明

目录 前言未使能场景的报文发送机制使能场景的报文发送机制如何配置 前言 在AUTOSAR CanIf 中,提供了发送的Buffering机制 。对于一个报文来说,Buffering起始于CanIf_Transmit,结束于CanIf_TxConfirmation 。 主要应用与一个MailBox 发送多个报文的场景,用于解决因为硬件发送不及时而导致的发送失败的问题 未使能场景的