行至水穷处,坐看云起时

  • rss
  • 博客首页
  • 音乐故事
  • 摄影相册
  • 站点导航
  • 与我联络

QQ群互通(QQ_Bot)程序配置教程

2007-10-03 | 17:01
        什么是QQ群互通比如你加入了两个QQ群,群A和群B。这两个群的人数上限都是100人,为了使这两个群中的会员可以相互交流,那么我们就需要通过一个手段把这两个群桥接起来,实现两个群间信息可以共享,相互交流。
配置步骤在这里我们实用一款名叫QQ_Bot的QQ群互通工具,首先感谢该程序的原作者给我们提供一个这么方便的小工具,其主页地址是:http://refile.googlepages.com/qq_bot
该程序的下载地址是http://refile.googlepages.com/QQ_Bot.rar]http://refile.googlepages.com/QQ_Bot.rar
此程序用于将不同QQ群桥接起来,方便不同QQ群之间相互聊天,程序基于Perl模块Net::OICQ 1.6
使用前请先配置QQ.ini,必须是自己QQ号上已加入的群
首先把这个程序下载下来解压,放到D盘根目录,结构示意图如下:
H:\
│
└───QQ_Bot 本程序根目录
│ Perl58.dll 本程序支持程序
│ QQ.ini 配置文件
│ QQ_Bot.exe 主运行程序
│ QQ_readme.txt 说明文档
│
└───OICQ_Data 备份数据目录
oicq.log 程序运行日志
特别提示:因为QQ号码只能在一个地方登陆使用,如果你把你通常使用的QQ号码用到这个桥接程序中来的话,那么你就不能正常使用你的这个QQ号码了。所以一定要专门去申请一个QQ号码,把这个刚申请的QQ号码加入你预备桥接的这几个群中,然后再按照教程配置!
比如我的QQ号码是115637658 我加入的两个群号码分别是:28702398 5330027
然后打开配置文件QQ.ini
在UserID = 后面写上自己的QQ号码
例如:UserID = 115637658
如果你上网是通过设置代理服务器上网的话,那么就需要设置Proxy = 这一项,如果你没有通过代理上网,则这里保持默认(留空)
比如你的代理服务器IP是192.168.0.1 SOCK5代理端口是:1080
则这里就写为
Proxy = 192.168.0.1:1080
协议模式
Protocol = TCP
保持默认即可
ConnectMode = Invisible
这里也是保持默认
在[Group 1]下面的GrpExtId后面写上你第一个QQ群的号码;在GrpName写上你要给这个QQ群定义的名称,可以和QQ群的真实名称不一样,越简单越好,我建议大家设置为数字序号1,把第二群的GrpName写为2;GrpIntId这个值随手写一个6到8位的数字,稍后我们会修正这个值,这个值是程序根据GrpExtId(QQ群号码)计算获得的。
然后再在[Group 2]下面的GrpExtId后面写上你第二个QQ群的号码;在GrpName写上你要给这个QQ群定义的名称,可以和QQ群的真实名称不一样,越简单越好,我建议大家把第一个群的这个值设置为数字序号1,把第二群的GrpName写为2;GrpIntId这个值随手写一个6到8位的数字,稍后我们会修正这个值,这个值是程序根据GrpExtId(QQ群号码)计算获得的。
如下所示:(这里的两个GrpIntId值都是随手写的)
[Group 1]
GrpExtId = 28702398
GrpName = 1
GrpIntId = 521524512
[Group 2]
GrpExtId = 5330027
GrpName = 2
GrpIntId = 5585566325
再然后把第一个群的GrpExtId(QQ群号码)值写到Group后面,保存。
这里是通过程序算出第一个GrpExtId(QQ群号码)的GrpIntId 值。
点击屏幕左下角的“开始”——“运行”——输入:cmd (回车)
然后再在打开的命令行窗口中输入:cd d:\qq_bot (回车)
再输入: d: (回车)
看到如下界面

在上图所示的这个提示符后面输入:qq_bot.exe(空格)(QQ密码)
比如 qq_bot.exe 74110
然后回车
如果网络繁忙或者你挂(登陆)的QQ太多了的话,会弹出如下对话框

则点击确定再试一次
直到出现如下图所示,即获得到第一个群的GrpIntId 值

把这个提示框中的GrpIntId 值写到配置文件QQ.ini中的第一个群([Group 1])中的GrpIntId后面(替换这个GrpIntId当前值)
然后再把Group后面的值(第一个群的号码)替换为第二个群的号码([Group 2]下面的GrpExtId值),保存。
然后再在刚才的命令行窗口中执行qq_bot.exe(空格)(密码)
如下图所示,即获得到第二个群的GrpIntId 值

把这个提示框中的GrpIntId 值写到配置文件QQ.ini中的第二个群([Group 2])中的GrpIntId后面(替换这个GrpIntId当前值)
然后再把Group后面的值(第二个群的号码)删除,使Group的值保持为空
如图:

然后再保存配置文件QQ.ini
然后再在刚才的命令行窗口中执行qq_bot.exe(空格)(密码)
如果网络繁忙或者你挂(登陆)的QQ太多了的话,会弹出如下对话框

则点击确定再试一次
直到不出现任何提示的那一次,这个时候你就可以用你另外一个也加入了这两个QQ群的QQ来发消息试验了,如果在1群中发消息,2群中也有收到;在2群中发消息,1群也有收到的话,那么你就配置成功了。这个时候你就可以关闭这个命令行窗口了。
特别提示该程序作者说的是可以支持四个群互通,但是经过实际测试只能两个互通,所以请在配置QQ.ini的时候把文件中最下面的
[Group 3]
GrpExtId = 7454195
GrpName = PerlChina3
GrpIntId = 209454195
[Group 4]
GrpExtId = 386891
GrpName = Perl交流1
GrpIntId = 202386891
删除掉。
离线版本教程(PDF格式)下载地址:点击下载
作者可能会在下个版本中完善此问题和加入更多功能,敬请关注作者主页http://refile.googlepages.com/qq_bot
再加一句:很多网友都把这个东西看的太神秘了,都不能正常理解这个原理。简单一句话就是通过程序控制一个QQ,来使他实现根据设定来中转群信息~!
Comments
没有留言 »
分类
休闲娱乐
Tags
baidu, google, proxy, QQ, 网络
订阅RSS留言 订阅RSS留言
Trackback Trackback

tor代理软件及相关工具

2006-11-13 | 16:47

tor是一个路由类的代理软件,而且是在不断变化中的。
你的浏览器 ==连接==> 你机子上的Tor ==连接==> 他人的Tor ==连接==> ... ==连接==> 你要浏览的页面
大概原理就是这样

IPB Image

IPB Image

IPB Image

在 http://tor.freehaven.net/download.html.en 这里可以下到 Tor & Privoxy & Vidalia 的组合包,其中 tor自然是自动路由作用,vidalia是个tor的图形管理端(而且有支持中文语言的也),Privoxy本来是个防火墙,但在这里,它最大的作用是把http的代理协议转为sock方式的代理协议,留意其中 Privoxy图标,选择Edit -> Main Configuration,会打开记事本,中间会有下列语句:forward-socks4a / localhost:9050 .(空格和.是需要保留着的哟)就是表示的是把http的端口转到9050 ,而这个9050则正好是tor使用的端口咯。。。我刚才试了一下,速度还行,很好用,以后访问某些站点不会伤脑筋咯。

注意,还需要在浏览器里设置为privoxy的相应端口呢

配置应用程序来使用Tor。

配置浏览器。如果你使用Firefox,直接安装一个Torbutton插件就可以自动配置了。 这个是我最喜欢的一种方式。Torbutton安装在Firefox工具条上面,点它切换使用还是不使用Tor,十分方便。

当然你也可以手动配置浏览器。配置Firefox步骤Tools->Options->General->Connection Settings出现如下图窗口,配置如下:

IE浏览器配置步骤:Tools|Internet Options|Connections|LAN Settings|Check Proxy Server|Advanced。非socks5的地方一律填写localhost,端口8118;socks5的地方填写localhost,端口9050。

对其它支持HTTP或者SOCKS5代理的应用程序都可以这样配置。对不支持的应用程序需要配合SocksCap或者FreeCap来使用。 FreeCap是免费软件,可以到 http://freecap.ru/eng/?p=download 这里下载。(比如我用Zoundry写这则blog的时候,就无法直接访问到google的443去,于是利用了FreeCap软件,设置了默认走127.0.0.1的9050口,然后添加新应用里选中了zoudry的执行文件,之后运行它,就可以顺利地上传咯)

OK,上网,去下面的几个IP检测网站验证自己的IP,看看代理是否起作用。
http://www.showmyip.com/cn
http://ipid.shat.net

请不要用此技术来作不道德的事,但是合理利用它来帮助自己的工作学习是值得提倡的。

Comments
没有留言 »
分类
艺海无涯
Tags
blog, google, proxy, tor, 网站, 软件
订阅RSS留言 订阅RSS留言
Trackback Trackback

linux可设置ip协议参数说明及个人杂语(四)

2006-07-29 | 11:13

在linux的源程序/Documentation/networking/ip-sysctl.txt 文件中,有详细地记录可以修改的关于linux的ip协议参数,以下是我的整理美化修整后添加个人心得的版本.(如蒙垂青,需要转载,请著名出处 http://skylove.study-area.org/blog/ )

格式

参数名 参数类型
参数值(如无特别标注,内存类的单位为byte,关于时间的单位为秒)
官方详细说明(skylove对该参数的个人心得或补充说明)

正文

===========网络接口界面(比如lo,eth0,eth1)参数===========

/proc/sys/net/ipv4/conf/{interface}/* :
在/proc/sys/net/ipv4/conf/ 下可以发现类似 all,eth0,eth1,default,lo 等网络接口界面,每一个都是目录,他们下属的文件中,每个文件对应该界面下某些可以设置的选项设置.(all/是特定的,用来修改所有接口的设置,default/ 表示缺省设置,lo/表示本地接口设置,eth0/表示第一块网卡,eth1/表示第2块网卡.注意:下面有的参数,是需要all和该界面下同时为ture才生效,而某些则是只需要该界面下为true即可,注意区别!!)

log_martians : BOOLEAN
记录带有不允许的地址的数据报到内核日志中。all/ 或者{interface}/ 下至少有一个为True即可生效.

accept_redirects : BOOLEAN
对于主机来说默认为True,对于用作路由器时默认值为False
收发接收ICMP重定向消息。all/ 和{interface}/ 下两者同时为True方可生效.
(如果不熟悉所在网络的结构.推荐不修改,因为在有多个出口的网络的时候,如果有2个出口路由器,由于作为主机的时候默认只指认一个网关,出口路由可能有策略设置转到另一个路由器上.)

forwarding : BOOLEAN
在该接口打开转发功能 (在3块或以上的网卡的时候很实用,有时候只想让其中一外一内,另一块做服务,就可以让这块做服务的网卡不转发数据进出)

mc_forwarding :BOOLEAN
是否进行多播路由。只有内核编译有CONFIG_MROUTE并且有路由服务程序在运行该参数才有效。

medium_id :INTEGER
默认值是0
通常,这个参数用来区分不同媒介.两个网络设备可以使用不同的值,使他们只有其中之一接收到广播包.默认值为0表示各个网络介质接受他们自己介质上的媒介,值-1表示该媒介未知。 通常,这个参数被用来配合proxy_arp实现:proxy_arp的特性即是允许arp报文在两个不同的网络介质中转发.(第一段 Integer value used to differentiate the devices by the medium they
are attached to. Two devices can have different id values when
the broadcast packets are received only on one of them.
The default value 0 means that the device is the only interface
to its medium, value of -1 means that medium is not known.
没读懂,去cu问人,以后更正)

proxy_arp : BOOLEAN
打开arp代理功能。all/ 或者{interface}/ 下至少有一个为True即可生效

shared_media : BOOLEAN
默认为True

发送(路由器)或接收(主机) RFC1620 共享媒体重定向。覆盖ip_secure_redirects的值。all/ 或者{interface}/ 下至少有一个为True即可生效

secure_redirects : BOOLEAN
默认为True

仅仅接收发给默认网关列表中网关的ICMP重定向消息,默认值是TRUE。all/ 或者{interface}/ 下至少有一个为True即可生效。 (这个参数一般情形请不要修改,可以有效地防止来自同网段的非网关机器发出恶意ICMP重定向攻击行为)

send_redirects : BOOLEAN
默认为True
如果是router,允许发送重定向消息.all/ 或者{interface}/ 下至少有一个为True即可生效。(根据网络而定,如果是做NAT,并且网内只有此一个网关的时候,其实是可以关闭掉它的,事实上目前而言,IP Redirects是TCP/IP协议产生早期为了解决网络持续性而提出的一种方法,后来事实证明这种措施不太实用而且具有很大的安全风险,可能引起各种可能的网络风险产生 - 拒绝服务攻击,中间人攻击,会话劫持等等,所以很多安全文档是推荐关闭它.)

bootp_relay : BOOLEAN
默认为False

接收源地址为0.b.c.d,目的地址不是本机的数据报。用来支持BOOTP转发服务进程,该进程将捕获并转发该包。目前还没有实现。

accept_source_route : BOOLEAN
对于主机来说默认为False,对于用作路由器时默认值为True
接收带有SRR选项的数据报。all/ 和{interface}/ 下两者同时为True方可生效.(IP源路由选项,也是TCP/IP协议早期的一个实现缺陷,允许IP包自身携带路由选择选项,这将允许攻击者绕过某些安全检验的网关,或者被用来探测网络环境。 在企业网关上强烈建议设置关闭或过绿丢弃IP源路由选项数据包。这个功能在调试网络的时候很有用,但是在真正的实际应用中,有可能造成一些麻烦和危险)

rp_filter : BOOLEAN
默认值为False

1 - 通过反向路径回溯进行源地址验证(在RFC1812中定义)。对于单穴主机和stub网络路由器推荐使用该选项。
0 - 不通过反向路径回溯进行源地址验证。
默认值为0,但某些发布在启动时自动将其打开。 (router默认会路由所有东西﹐就算该封包'显然'不属於我们的网路的。常见的例子﹐莫过於将私有 IP 泄漏到 internet 上去。假如某个界面﹐其上设定的网络地址段為
195.96.96.0/24﹐那么理论上不会有212.64.94.1 这样的地址段封包会到达这个界面上。许多人都不想转发非本网段的数据包﹐因此核心设计者也打开了方便之门。在 /proc 裡面有些档案﹐透过它们您可以让核心為您做到这点。此方法被称為 "逆向路径过滤(Reverse Path Filtering)"。基本上﹐假如对此封包作出的回应﹐不是循其进入的界面送出去﹐那它就被置之不理。)

arp_filter : BOOLEAN
默认值为False
1 -允许多个网络介质位于同一子网段内,每个网络界面依据是否内核指派路由该数据包经过此界面来确认是否回答ARP查询(这个实现是由来源地址确定路由的时候决定的),换句话说,允许控制使用某一块网卡(通常是第一块)回应arp询问。(做负载均衡的时候,可以考虑用
echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter
这样的方式就可以解决,当然 利用
echo 2 /proc/sys/net/ipv4/conf/all/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
两条命令配合使用更好,因为arp_announce 和arp_ignore 似乎是对arp_filter的更细节控制的实现。)

0 -默认值,内核设置每个网络界面各自应答其地址上的arp询问。这项看似会错误的设置却经常能非常有效,因为它增加了成功通讯的机会。在Linux主机上,每个IP地址是网络界面独立的,而非一个复合的接口。只有在一些特殊的设置的时候,比如负载均衡的时候会带来麻烦。
all/ 或者{interface}/ 下至少有一个为True即可生效。(简单来说,就是同一Linux上,如果有某些原因,有2块网卡必须设置为同一网段,那么默认情况下,会有一块工作,而另外一块不工作或者内核频繁报告错误,这个时候就需要打开这个选项了)

arp_announce : INTEGER
默认为0

对网络接口上本地IP地址发出的ARP回应作出相应级别的限制:

确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口
0 - (默认) 在任意网络接口上的任何本地地址
1 -尽量避免不在该网络接口子网段的本地地址. 当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一.如果改来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理.
2 - 对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送

all/ 和{interface}/ 下两者同时比较,取较大一个值生效.

提高约束级别有益于从指定的目标接受应答,而降低级别可以给予更多的arp查询者以反馈信息(关于arp代理这一段我普遍翻译地不好,去啃一下tcp/ip bible的卷一,然后再翻译吧)

arp_ignore : INTEGER
默认为0
定义对目标地址为本地IP的ARP询问不同的应答模式

0 - (默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求(比如eth0=192.168.0.1/24,eth1=10.1.1.1/24,那么即使eth0收到来自10.1.1.2这样地址发起的对10.1.1.1 的arp查询也会回应--而原本这个请求该是出现在eth1上,也该有eth1回应的)

1 - 只回答目标IP地址是来访网络接口本地地址的ARP查询请求(比如eth0=192.168.0.1/24,eth1=10.1.1.1/24,那么即使eth0收到来自10.1.1.2这样地址发起的对192.168.0.1的查询会回答,而对10.1.1.1 的arp查询不会回应)
2 -只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内(比如eth0=192.168.0.1/24,eth1=10.1.1.1/24,eth1收到来自10.1.1.2这样地址发起的对192.168.0.1的查询不会回答,而对192.168.0.2发起的对192.168.0.1的arp查询会回应)
3 - 不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应(do not reply for local addresses configured with scope host,only resolutions for global and link addresses are replied 翻译地似乎不好,这个我的去问问人)
4-7 - 保留未使用
8 -不回应所有(本地地址)的arp查询

all/ 和{interface}/ 下两者同时比较,取较大一个值生效.

tag : INTEGER
默认为0
你可以写一些,可以视需要而定.(没有明白这个是什么作用,以后补充)

以后如果有机会,我会把route部分的设置也翻译了。 通过翻译以及了解相关协议的过程中,我本人也学习到了很多,也了解到了linux在一些方面还存在着的不足,比如linux无法设置定期ARP清理的时间,linux的sysctl可控制参数比bsd来弱了很多(后者基本上是除了kernel的编译参数外,都可以通过sysctl调整).也有不少比大多数unix优秀的地方,比如TIME_WAIT的超时设置,在AIX,Tru64 UNIX里就没有.而且linuxTCP序列号本身就是依照RFC1948实现的(RFC1948 协议提出了一个加强的随机TCP序列号生成算法,启用RFC 1948支持将时TCP序列号能难以被预测,从而防止IPSpoof攻击和TCP任务劫持攻击产生。)

Comments
1 条留言 »
分类
心得分享
Tags
blog, CU, linux, nat, proxy, unix, 安全, 网络
订阅RSS留言 订阅RSS留言
Trackback Trackback

linux可设置ip协议参数说明及个人杂语(二)

| 10:41

在linux的源程序/Documentation/networking/ip-sysctl.txt 文件中,有详细地记录可以修改的关于linux的ip协议参数,以下是我的整理美化修整后添加个人心得的版本.(如蒙垂青,需要转载,请著名出处 http://skylove.study-area.org/blog/ )

格式

参数名 参数类型
参数值(如无特别标注,内存类的单位为byte,关于时间的单位为秒)
官方详细说明(skylove对该参数的个人心得或补充说明)

正文

====================TCP 参数================

tcp_syn_retries :INTEGER
默认值是5

对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃。不应该大于255,默认值是5,对应于180秒左右时间。(对于大负载而物理通信良好的网络而言,这个值偏高,可修改为2.这个值仅仅是针对对外的连接,对进来的连接,是由tcp_retries1 决定的)

tcp_synack_retries :INTEGER
默认值是5

对于远端的连接请求SYN,内核会发送SYN + ACK数据报,以确认收到上一个 SYN连接请求包。这是所谓的三次握手( threeway handshake)机制的第二个步骤。这里决定内核在放弃连接之前所送出的 SYN+ACK 数目。不应该大于255,默认值是5,对应于180秒左右时间。(可以根据上面的 tcp_syn_retries 来决定这个值)

tcp_keepalive_time :INTEGER
默认值是7200(2小时)
当keepalive打开的情况下,TCP发送keepalive消息的频率。(由于目前网络攻击等因素,造成了利用这个进行的攻击很频繁,曾经也有cu的朋友提到过,说如果2边建立了连接,然后不发送任何数据或者rst/fin消息,那么持续的时间是不是就是2小时,空连接攻击? tcp_keepalive_time就是预防此情形的.我个人在做nat服务的时候的修改值为1800秒)

tcp_keepalive_probes:INTEGER
默认值是9

TCP发送keepalive探测以确定该连接已经断开的次数。(注意:保持连接仅在SO_KEEPALIVE套接字选项被打开是才发送.次数默认不需要修改,当然根据情形也可以适当地缩短此值.设置为5比较合适)

tcp_keepalive_intvl:INTEGER
默认值为75
探测消息发送的频率,乘以tcp_keepalive_probes就得到对于从开始探测以来没有响应的连接杀除的时间。默认值为75秒,也就是没有活动的连接将在大约11分钟以后将被丢弃。(对于普通应用来说,这个值有一些偏大,可以根据需要改小.特别是web类服务器需要改小该值,15是个比较合适的值)

tcp_retries1 :INTEGER
默认值是3
放弃回应一个TCP连接请求前﹐需要进行多少次重试。RFC 规定最低的数值是3﹐这也是默认值﹐根据RTO的值大约在3秒 - 8分钟之间。(注意:这个值同时还决定进入的syn连接)

tcp_retries2 :INTEGER
默认值为15
在丢弃激活(已建立通讯状况)的TCP连接之前﹐需要进行多少次重试。默认值为15,根据RTO的值来决定,相当于13-30分钟(RFC1122规定,必须大于100秒).(这个值根据目前的网络设置,可以适当地改小,我的网络内修改为了5)

tcp_orphan_retries :INTEGER
默认值是7
在近端丢弃TCP连接之前﹐要进行多少次重试。默认值是7个﹐相当于 50秒 - 16分钟﹐视 RTO 而定。如果您的系统是负载很大的web服务器﹐那么也许需要降低该值﹐这类 sockets 可能会耗费大量的资源。另外参的考 tcp_max_orphans 。(事实上做NAT的时候,降低该值也是好处显著的,我本人的网络环境中降低该值为3)

tcp_fin_timeout :INTEGER
默认值是 60
对于本端断开的socket连接,TCP保持在FIN-WAIT-2状态的时间。对方可能会断开连接或一直不结束连接或不可预料的进程死亡。默认值为 60 秒。过去在2.2版本的内核中是 180 秒。您可以设置该值﹐但需要注意﹐如果您的机器为负载很重的web服务器﹐您可能要冒内存被大量无效数据报填满的风险﹐FIN-WAIT-2 sockets 的危险性低于 FIN-WAIT-1 ﹐因为它们最多只吃 1.5K 的内存﹐但是它们存在时间更长。另外参考 tcp_max_orphans。(事实上做NAT的时候,降低该值也是好处显著的,我本人的网络环境中降低该值为30)

tcp_max_tw_buckets :INTEGER
默认值是180000
系统在同时所处理的最大 timewait sockets 数目。如果超过此数的话﹐time-wait socket 会被立即砍除并且显示警告信息。之所以要设定这个限制﹐纯粹为了抵御那些简单的 DoS 攻击﹐千万不要人为的降低这个限制﹐不过﹐如果网络条件需要比默认值更多﹐则可以提高它(或许还要增加内存)。(事实上做NAT的时候最好可以适当地增加该值)

tcp_tw_recycle :BOOLEAN
默认值是0
打开快速 TIME-WAIT sockets 回收。除非得到技术专家的建议或要求﹐请不要随意修改这个值。(做NAT的时候,建议打开它)

tcp_tw_reuse:BOOLEAN
默认值是0
该文件表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接(这个对快速重启动某些服务,而启动后提示端口已经被使用的情形非常有帮助)

tcp_max_orphans :INTEGER
缺省值是8192
系统所能处理不属于任何进程的TCP sockets最大数量。假如超过这个数量﹐那么不属于任何进程的连接会被立即reset,并同时显示警告信息。之所以要设定这个限制﹐纯粹为了抵御那些简单的 DoS 攻击﹐千万不要依赖这个或是人为的降低这个限制(这个值Redhat AS版本中设置为32768,但是很多防火墙修改的时候,建议该值修改为2000)

tcp_abort_on_overflow :BOOLEAN
缺省值是0
当守护进程太忙而不能接受新的连接,就象对方发送reset消息,默认值是false。这意味着当溢出的原因是因为一个偶然的猝发,那么连接将恢复状态。只有在你确信守护进程真的不能完成连接请求时才打开该选项,该选项会影响客户的使用。(对待已经满载的sendmail,apache这类服务的时候,这个可以很快让客户端终止连接,可以给予服务程序处理已有连接的缓冲机会,所以很多防火墙上推荐打开它)

tcp_syncookies :BOOLEAN
默认值是0
只有在内核编译时选择了CONFIG_SYNCOOKIES时才会发生作用。当出现syn等候队列出现溢出时象对方发送syncookies。目的是为了防止syn flood攻击。
注意:该选项千万不能用于那些没有收到攻击的高负载服务器,如果在日志中出现synflood消息,但是调查发现没有收到synflood攻击,而是合法用户的连接负载过高的原因,你应该调整其它参数来提高服务器性能。参考:
tcp_max_syn_backlog
tcp_synack_retries
tcp_abort_on_overflow
syncookie严重的违背TCP协议,不允许使用TCP扩展,可能对某些服务导致严重的性能影响(如SMTP转发)。(注意,该实现与BSD上面使用的tcp proxy一样,是违反了RFC中关于tcp连接的三次握手实现的,但是对于防御syn-flood的确很有用.)

tcp_stdurg :BOOLEAN
默认值为0
使用 TCP urg pointer 字段中的主机请求解释功能。大部份的主机都使用老旧的 BSD解释,因此如果您在 Linux 打开它﹐或会导致不能和它们正确沟通。

tcp_max_syn_backlog :INTEGER
对于那些依然还未获得客户端确认的连接请求﹐需要保存在队列中最大数目。对于超过 128Mb 内存的系统﹐默认值是 1024 ﹐低于 128Mb 的则为 128。如果服务器经常出现过载﹐可以尝试增加这个数字。警告﹗假如您将此值设为大于 1024﹐最好修改 include/net/tcp.h 里面的 TCP_SYNQ_HSIZE ﹐以保持 TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog ﹐并且编进核心之内。(SYN Flood攻击利用TCP协议散布握手的缺陷,伪造虚假源IP地址发送大量TCP-SYN半打开连接到目标系统,最终导致目标系统Socket队列资源耗尽而无法接受新的连接。为了应付这种攻击,现代Unix系统中普遍采用多连接队列处理的方式来缓冲(而不是解决)这种攻击,是用一个基本队列处理正常的完全连接应用(Connect()和Accept() ),是用另一个队列单独存放半打开连接。 这种双队列处理方式和其他一些系统内核措施(例如Syn-Cookies/Caches)联合应用时,能够比较有效的缓解小规模的SYN Flood攻击(事实证明<1000p/s)加大SYN队列长度可以容纳更多等待连接的网络连接数,所以对Server来说可以考虑增大该值.)

tcp_window_scaling :INTEGER
缺省值为1

该文件表示设置tcp/ip会话的滑动窗口大小是否可变。参数值为布尔值,为1时表示可变,为0时表示不可变。tcp/ip通常使用的窗口最大可达到65535 字节,对于高速网络,该值可能太小,这时候如果启用了该功能,可以使tcp/ip滑动窗口大小增大数个数量级,从而提高数据传输的能力(RFC 1323)。(对普通地百M网络而言,关闭会降低开销,所以如果不是高速网络,可以考虑设置为0)

tcp_timestamps :BOOLEAN
缺省值为1
Timestamps 用在其它一些东西中﹐可以防范那些伪造的 sequence 号码。一条1G的宽带线路或许会重遇到带 out-of-line数值的旧sequence 号码(假如它是由于上次产生的)。Timestamp 会让它知道这是个 '旧封包'。(该文件表示是否启用以一种比超时重发更精确的方法(RFC 1323)来启用对 RTT 的计算;为了实现更好的性能应该启用这个选项。)

tcp_sack :BOOLEAN
缺省值为1

使用 Selective ACK﹐它可以用来查找特定的遗失的数据报--- 因此有助于快速恢复状态。该文件表示是否启用有选择的应答(Selective Acknowledgment),这可以通过有选择地应答乱序接收到的报文来提高性能(这样可以让发送者只发送丢失的报文段)。(对于广域网通信来说这个选项应该启用,但是这会增加对 CPU 的占用。)

tcp_fack :BOOLEAN
缺省值为1
打开FACK拥塞避免和快速重传功能。(注意,当tcp_sack设置为0的时候,这个值即使设置为1也无效)

tcp_dsack :BOOLEAN
缺省值为1
允许TCP发送"两个完全相同"的SACK。

tcp_ecn :BOOLEAN
缺省值为0
打开TCP的直接拥塞通告功能。

tcp_reordering :INTEGER
默认值是3
TCP流中重排序的数据报最大数量 。 (一般有看到推荐把这个数值略微调整大一些,比如5)

tcp_retrans_collapse :BOOLEAN
缺省值为1
对于某些有bug的打印机提供针对其bug的兼容性。(一般不需要这个支持,可以关闭它)

tcp_wmem(3个INTEGER变量): min, default, max
min
:为TCP socket预留用于发送缓冲的内存最小值。每个tcp socket都可以在建议以后都可以使用它。默认值为4096(4K)。

default:为TCP socket预留用于发送缓冲的内存数量,默认情况下该值会影响其它协议使用的net.core.wmem_default 值,一般要低于net.core.wmem_default的值。默认值为16384(16K)。

max: 用于TCP socket发送缓冲的内存最大值。该值不会影响net.core.wmem_max,"静态"选择参数SO_SNDBUF则不受该值影响。默认值为131072(128K)。(对于服务器而言,增加这个参数的值对于发送数据很有帮助,在我的网络环境中,修改为了51200 131072 204800)

tcp_rmem (3个INTEGER变量): min, default, max
min:为TCP socket预留用于接收缓冲的内存数量,即使在内存出现紧张情况下tcp socket都至少会有这么多数量的内存用于接收缓冲,默认值为8K。

default:为TCP socket预留用于接收缓冲的内存数量,默认情况下该值影响其它协议使用的 net.core.wmem_default 值。该值决定了在tcp_adv_win_scale、tcp_app_win和tcp_app_win=0默认值情况下,TCP窗口大小为65535。默认值为87380

max:用于TCP socket接收缓冲的内存最大值。该值不会影响 net.core.wmem_max,"静态"选择参数 SO_SNDBUF则不受该值影响。默认值为 128K。默认值为87380*2 bytes。(可以看出,.max的设置最好是default的两倍,对于NAT来说主要该增加它,我的网络里为 51200 131072 204800)

tcp_mem(3个INTEGER变量):low, pressure, high
low:当TCP使用了低于该值的内存页面数时,TCP不会考虑释放内存。(理想情况下,这个值应与指定给 tcp_wmem 的第 2 个值相匹配 - 这第 2 个值表明,最大页面大小乘以最大并发请求数除以页大小 (131072 * 300 / 4096)。 )

pressure:当TCP使用了超过该值的内存页面数量时,TCP试图稳定其内存使用,进入pressure模式,当内存消耗低于low值时则退出pressure状态。(理想情况下这个值应该是 TCP 可以使用的总缓冲区大小的最大值 (204800 * 300 / 4096)。 )

high:允许所有tcp sockets用于排队缓冲数据报的页面量。(如果超过这个值,TCP 连接将被拒绝,这就是为什么不要令其过于保守 (512000 * 300 / 4096) 的原因了。 在这种情况下,提供的价值很大,它能处理很多连接,是所预期的 2.5 倍;或者使现有连接能够传输 2.5 倍的数据。 我的网络里为192000 300000 732000)

一般情况下这些值是在系统启动时根据系统内存数量计算得到的。

tcp_app_win : INTEGER
默认值是31

保留max(window/2^tcp_app_win, mss)数量的窗口由于应用缓冲。当为0时表示不需要缓冲。

tcp_adv_win_scale : INTEGER
默认值为2

计算缓冲开销bytes/2^tcp_adv_win_scale(如果tcp_adv_win_scale > 0)或者bytes-bytes/2^(-tcp_adv_win_scale)(如果tcp_adv_win_scale <= 0)。

tcp_rfc1337 :BOOLEAN
缺省值为0
这个开关可以启动对于在RFC1337中描述的"tcp 的time-wait暗杀危机"问题的修复。启用后,内核将丢弃那些发往time-wait状态TCP套接字的RST 包.

tcp_low_latency : BOOLEAN
缺省值为0

允许 TCP/IP 栈适应在高吞吐量情况下低延时的情况;这个选项一般情形是的禁用。(但在构建Beowulf 集群的时候,打开它很有帮助)

tcp_westwood :BOOLEAN
缺省值为0
启用发送者端的拥塞控制算法,它可以维护对吞吐量的评估,并试图对带宽的整体利用情况进行优化;对于 WAN 通信来说应该启用这个选项。

tcp_bic :BOOLEAN
缺省值为0
为快速长距离网络启用 Binary Increase Congestion;这样可以更好地利用以 GB 速度进行操作的链接;对于 WAN 通信应该启用这个选项。

Comments
没有留言 »
分类
心得分享
Tags
apache, blog, CU, linux, nat, proxy, unix, web, 朋友, 网络
订阅RSS留言 订阅RSS留言
Trackback Trackback

几则值得一看的帖子

2004-10-04 | 14:50

今天逛到linuxforum的时候发现的,关于双端iptables用udp穿nat方式失败的问题的阐述。。。
iptables下udp穿越基础篇----iptables与stunhttp://www.linuxforum.net/forum/showflat.php?Cat=&Board=proxy&Number=515763&page=0&view=collapsed&sb=5&o=0&fpart=
iptables下udp穿越实用篇----iptables与natcheckhttp://www.linuxforum.net/forum/showflat.php?Cat=&Board=proxy&Number=515996&page=0&view=collapsed&sb=5&o=0&fpart=
目前在等作者放出最后的iptables下udp穿越结尾篇----iptables与socks5
文中提到的e话通软件是我曾经有写过一则文章专门介绍它的一个im软件,只可惜yesky的软件版女编辑不识货把我的文章给撤了。。。让外行来作编辑本身就是个悲哀??试想一下O'reilly那里的编辑们的厉害吧。。。 那软件在通讯技术上有不少过人之处,可以去 www.et66.com下一个来使用,我的号码是 118952835 ,用的朋友可以加上偶咱们视频一下

Comments
没有留言 »
分类
流水杂记
Tags
linux, nat, php, proxy, 朋友, 软件
订阅RSS留言 订阅RSS留言
Trackback Trackback

ABOUT ME


网 名: 天缘(skylove)












RSS邮天下订阅  文章 留言

最新日志

  • SecureCRT同时向多个session发送相同命令的方法
  • cacti常见问题解决办法【转载】
  • 一位IT同行的日志
  • 办公网常见的安全问题及华为交换机上的配置说明
  • cm7里adroid市场可浏览而无法下载的解决方法
  • Cisco设备光模块解密方法
  • 如何快速创建 Xen 虚拟机镜像
  • 伪技术人员的成长历程之70-Xen虚拟机下添加Swap磁盘
  • CentOS5.3下xen虚拟机的配置笔记
  • xen虚拟机管理xm的用法

分类

  • android (4)
  • 休闲娱乐 (22)
  • 妙文转载 (9)
  • 学习摄影 (10)
  • 心得分享 (97)
  • 心情随笔 (69)
  • 流水杂记 (42)
  • 艺海无涯 (71)
  • 过失教训 (5)

过去的日记

最新评论

  • Remote Energy Monitor: Check out this gibberish... Do you really believ...
  • 视频聊天室: 双击执行它...
  • 达人秀: 看个热闹吧.....
  • SecureCRT同时向多个session发送相同命令的方法 | 我友博客: [...] 通过行至水穷处,坐看云起时 » ...
  • East Fife Self Catering: Can I buy a vowel... I have not any idea about t...
  • iqzlnhyyia: sentttlzmpwf, qysvbuvwx...
  • outdoor lighting manufacturers canada: 我不得不承认,我通常会觉得无聊,...
  • Josie: Well done article that. I'll make sure to use it ...
  • Dsestbredo: buy bulk facebook fans buy cheap facebook fans ...
  • BlalselepNews: A hires the cialis generico in a cialis. Hovered ...

标签云

乐山 书 分手 升级 图片 安全 感情 手机 摄影 朋友 桌面 歌曲 照片 爱情 硬盘 网站 网络 脚本 虚拟化 软件 2008 apache asp blog blogger cisco CU dns flash google linux mp3 MSN nat photo php QQ script shell tor unix vb web windows xml

我的相册

武隆的图片

技术站点

  • Google站点统计
  • 网站检测
  • 高亮代码(.Net)
  • 高亮代码生成(PHP)

朋友们的站

  • GNAH‘s Not Another Programmer!
  • kiki on the way
  • NetKiller的主页
  • 哇靠~又写起了博客
  • 许敬刚老师的博达软件平台
  • 远方的远方

功能

  • 注册
  • 登录
  • 日志 RSS
  • 评论 RSS
  • WordPress.org
rss 订阅RSS留言 valid xhtml 1.1 design by jide powered by Wordpress get firefox