相关的值项在
HKLMSYSTEMCurrentControlSetServiceTcpipParameters下。
1) DWORD:SynAttackProtect:定义了是否允许SYN淹没攻击保护,值1表示允许起用WIN2000的SYN淹没攻击保护。
2) DWORD:TcpMaxConnectResponseRetransmissions:定义了对于连接请求回应包的重发次数。值为1,则SYN淹没攻击不会有效果,但是这样会造成连接请求失败几率的增高。SYN淹没攻击保护只有在该值>=2时才会被启用,默认值为3。
(上边两个值定义是否允许SYN淹没攻击保护,下面三个则定义了激活SYN淹没攻击保护的条件,满足其中之一,则系统自动激活SYN淹没攻击保护。)
3) DWORD:TcpMaxHalfOpen:定义能够处于SYN_RECEIVED状态的TCP连接的数目。默认值100。
4) TcpMaxHalfOpenRetried:定义在重新发送连接请求后,仍然处于SYN_RECEIVED状态的TCP连接的数目。默认值80。
5) TcpMaxPortsExhausted:定义系统拒绝连接请求的次数。默认值5。
减小syn-ack包的响应时间。
HKLMSYSTEMCurrentControlSetServicesTcpipParametersTcpMaxConnectResponseRetransmissions定义了重发SYN-ACK包的次数。
增大NETBT的连接块增加幅度和最大数器。NETBT使用139端口。
HKLMSYSTEMCurrentControlSetServicesNetBtParametersBacklogIncrement默认值为3,最大20,最小1。
HKLMSYSTEMCurrentControlSetServicesNetBtParametersMaxConnBackLog默认值为1000,最大可取40000。
动态配置Backlog。
相关的值项在HKLMSYSTEMCurrentControlSetServiceAFDParameters下
1) DWORD:EnableDynamicBacklog:定义是否允许动态Backlog,默认为0,1为允许。
2) DWORD:MinimumDynamicBacklog:定义动态Backlog分配的未使用的自由连接的最小数目。默认值为0,建议设为20。
3) DWORD:MaximumDynamicBacklog:定义最大“准”连接数目。大小取决于内存的大小,一般每32M最大可以增加5000个。
4) DWORD:DynamicBacklogGrowthDelta:定义每次增加的自由连接数目,建议设置为10。
10)、预防DoS:
在注册表HKLMSYSTEMCurrentControlSetServicesTcpipParameters中更改以下值可以防御一定强度的DoS攻击
SynAttackProtect REG_DWORD 2
EnablePMTUDiscovery REG_DWORD 0
NoNameReleaseOnDemand REG_DWORD 1
EnableDeadGWDetect REG_DWORD 0
KeepAliveTime REG_DWORD 300,000
PerformRouterDiscovery REG_DWORD 0
EnableICMPRedirects REG_DWORD 0
11)、防止ICMP重定向报文的攻击
HKLMSYSTEMCurrentControlSetServicesTcpipParametersEnableICMPRedirects REG_DWORD 0x0(默认值为0x1)
该参数控制Windows 2000是否会改变其路由表以响应网络设备(如路由器)发送给它的ICMP重定向消息,有时会被利用来干坏事。Win2000中默认值为1,表示响应ICMP重定向报文。
12)、禁止响应ICMP路由通告报文
HKLMSYSTEMCurrentControlSetServicesTcpipParametersInterfacesinterfacePerformRouterDiscovery REG_DWORD 0x0(默认值为0x2)
“ICMP路由公告”功能可造成他人计算机的网络连接异常,数据被窃听,计算机被用于流量攻击等严重后果。此问题曾导致校园网某些局域网大面积,长时间的网络异常。建议关闭响应ICMP路由通告报文.Win2000中默认值为2,表示当DHCP发送路由器发现选项时启用。
13)、设置生存时间
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersDefaultTTL REG_DWORD 0-0xff(0-255 十进制,默认值128)
指定传出IP数据包中设置的默认生存时间(TTL)值。TTL决定了IP数据包在到达目标前在网络中生存的最大时间。它实际上限定了IP数据包在丢弃前允许通过的路由器数量.有时利用此数值来探测远程主机*作系统。
14)、不支持IGMP协议
HKLMSYSTEMCurrentControlSetServicesTcpipParametersIGMPLevel REG_DWORD 0x0(默认值为0x2)
记得Win9x下有个bug,就是用可以用IGMP使别人蓝屏,修改注册表可以修正这个bug。Win2000虽然没这个bug了,但IGMP并不是必要的,因此照样可以去掉。改成0后用route print将看不到那个讨厌的224.0.0.0项了。
15)、设置arp缓存老化时间设置
HKLMSYSTEMCurrentControlSetServices:TcpipParameters
ArpCacheLife REG_DWORD 0-0xFFFFFFFF(秒数,默认值为120秒)
ArpCacheMinReferencedLife REG_DWORD 0-0xFFFFFFFF(秒数,默认值为600)
如果ArpCacheLife大于或等于ArpCacheMinReferencedLife,则引用或未引用的ARP缓存项在ArpCacheLife秒后到期。如果ArpCacheLife小于ArpCacheMinReferencedLife,未引用项在ArpCacheLife秒后到期,而引用项在ArpCacheMinReferencedLife秒后到期。每次将出站数据包发送到项的IP地址时,就会引用ARP缓存中的项。
特征:服务器正常CPU消耗应该在75%以下,而且CPU消耗应该是上下起伏的,出现这种问题的服务器,CPU会突然一直处100%的水平,而且不会下降。查看任务管理器,可以发现是DLLHOST.EXE消耗了所有的CPU空闲时间,管理员在这种情况下,只好重新启动IIS服务,奇怪的是,重新启动IIS服务后一切正常,但可能过了一段时间后,问题又再次出现了。

直接原因:
有一个或多个ACCESS数据库在多次读写过程中损坏,微软的MDAC系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态,结果其他线程只能等待,IIS被死锁了,全部的CPU时间都消耗在DLLHOST中。

解决办法:
最简单的办法是使用文件医生,自动查找并修复所有有问题的文件,请参考:
http://7i24.com/serverdoctor/filedoctor.htm


另一个办法是:
安装“一流信息监控拦截系统”,使用其中的“首席文件检查官IIS健康检查官”软件,
启用”查找死锁模块”,设置:
;--wblock=yes
;监控的目录,请指定您的主机的文件所在目录:
;--wblockdir=d:\test
监控生成的日志的文件保存位置在安装目录的log目录中,文件名为:logblock.htm

停止IIS,再启动“首席文件检查官IIS健康检查官”,再启动IIS,“首席文件检查官IIS健康检查官”会在logblock.htm中记录下最后写入的ACCESS文件的。

过了一段时间后,当问题出来时,例如CPU会再次一直处100%的水平,可以停止IIS,检查logblock.htm所记录的最后的十个文件,注意,最有问题的往往是计数器类的ACCESS文件,例如:”**COUNT.MDB”,”**COUNT.ASP”,可以先把最后十个文件或有所怀疑的文件删除到回收站中,再启动IIS,看看问题是否再次出现。我们相信,经过仔细的查找后,您肯定可以找到这个让您操心了一段时间的文件的。
找到这个文件后,可以删除它,或下载下来,用ACCESS2000修复它,问题就解决了!!!

ASP.NET的修复

[ 2004/11/24 17:13 | by gOxiA ]
一般IIS运行不了ASP.NET,试一下下面四种方法,99%有效:
1).NET 安装的顺序应该是先装IIS,再装VS.NET,如果次序反了,或者IIS重装了,就
需要使用aspnet_regiis.exe -i来重新安装IIS Mapping(主要用于aspx, asmx等文件
的Extention的匹配)。在C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705目录下,
运行下面的命令:
aspnet_regiis.exe -i

2)重设ASPNET的密码,然后在下面的目录中找到Machine.config文件:
%Systemroot%\Microsoft.NET\Framework\v1.0.3705\CONFIG (Systemroot是你的安装
目录),在标识中添加/修改:
userName和password

3)如果还不行,重装IIS,然后再按照方法1进行操作

4)如果你的机器是域控制器,你可以参考Q315158:ASP.NET Does Not Work with
ASPNET Account on Domain Controller:
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q315158&

大致操作步骤:
1)在Administrative Tools->Active Directory Users and Computers中建立一个名
为ASPUSER的用户,将该用户添加到用户组中(默认情况下已在User Group中)

2)在Administrative Tools->Local Security Settings->Local Policy->User
Right Assignment中,双击右栏的Log on as a batch job项,在弹出的窗口中点击
Add,选择或输入刚才建立的ASPUSER帐号,确定。(需要重启机器)

3)确保ASPUSER帐号有相应文件、目录的访问权限

4)在下面的目录中找到Machine.config文件:
%Systemroot%\Microsoft.NET\Framework\v1.0.3705\CONFIG (Systemroot是你的安装
目录),在标识中添加/修改:
userName="DomainName\ASPUSER" password="ASPUSERpassword" 其中ASPUSERpassword
是刚刚建立的ASPUSER的密码,DomainName是域名 (重启机器)
分页: 460/469 第一页 上页 455 456 457 458 459 460 461 462 463 464 下页 最后页 [ 显示模式: 摘要 | 列表 ]