2007年05月20日

事件的起因是诺顿误报Backdoor.Haxdoor病毒而导致的。该杀毒软件将简体中文版Winxp sp2的 NetSpi32.dll 和 LsaSrv.dll系统文件误报为Backdoor.Haxdoor病毒,进行文件隔离,导致用户的电脑就会出现重启后蓝屏,安全模式下也无法进入等问题。

关于此事的诺顿说明:

  赛门铁克发出的LiveUpdate更新定义错误的把微软简体中文Windows XP 中的2个系统文件当作Backdoor.Haxdoor进行了删除,从而造成Windows系统在根据错误检测重启后无法运行。

  受到影响的是应用了微软KB924270安全更新的微软简体中文Windows XP Service Pack 2 系统,应用微软安全更新KB924270。而受影响的文件是netapi32.dll(5.1.2600.2976版本)和lsasrv.dll(5.1.2600.2976版本)。 其他语言版本Windows XP或者没有应用微软安全更新KB924270的Windows XP都没有受到影响。

  赛门铁克在北京时间5月18日下午2:30发布了LiveUpdate更新定义来更正这一事件。这些更新定义的版本号码为20070517.071。在错误检测后没有重新启动Windows系统的用户可以通过应用LiveUpdate的更新定义来解决这一问题。重新启动系统而遭受影响的用户可以通过使用微软恢复控制台来使其系统恢复到之前的状态。

  这就是当前炒得沸沸扬扬的“误杀门事件”。尽管赛门铁克已经公开道歉,修复了bug,并提出了拯救系统的方案;瑞星已经声称在与卡巴斯基协商解决办法,并宣布了卡卡是无辜的。整个事件似乎暂时平息下来了,但是,绝对没那么简单。“误杀门事件”疑云重重,留下的后遗症,值得我们去分析和思考。

  诺顿的这次失足还给了国内杀毒软件绝好的机会。瑞星,江民和金山几乎都在第一时间提出了解决诺顿错误的方案,瑞星甚至于在MSN上打出了拯救诺顿错误的广告,尽管说这种做法有些落井下石的嫌疑,不太让人接受。从本质上看,这不仅是诺顿的问题,而是整个外国杀毒软件的口碑问题。原来月亮并不是外国的圆,大概国人开始理智些了。

其它相关联结

卡卡用户向瑞星求助:用卡巴斯基杀毒软件杀毒后,瑞星卡卡上网安全助手无法正常升级。经过瑞星研发部门测试分析,发现卡巴斯基杀毒软件,把瑞星卡卡的升级组件识别为病毒,并将其彻底删除,导致瑞星卡卡无法升级。同时,当卡巴斯基杀毒软件的实时监控功能开启时,用户即使重装瑞星卡卡,其升级组件也会被继续杀除,导致该产品无法升级。

以下是恢复办法:

由于重启系统后电脑无法正常进入,只能手工修复系统

一、已经出现情况但未重启电脑的用户,可以从杀毒软件病毒隔离区恢复上述两个文件。

  二、使用安装盘恢复。

  1、 已经出现情况并且电脑重启后并无法进入系统的用户,可以使用系统安装盘,并设置BIOS从光驱启动,选择从控制台恢复系统,拷贝上述两个文件到硬盘相应目录下。

  (netapi32.dll和lsasrv.dll 文件在光盘X:\I386目录下)

  2、按R使用选择“用恢复控制台修复WINDOWSXP安装”,把上述两个文件分别拷贝到以下两个路径:

  X:\windows\system32\netapi32.dll

  X:\windows\system32\lsasrv.dll (X为相应的系统盘符)

  3、重启电脑,修改BIOS从硬盘启动电脑,系统即可进入。

  (注意:如果使用拆下硬盘挂到其它电脑上恢复文件的话,需要注意系统版本的统一,否则无效)

  三、使用挂从盘的方法恢复被删除的文件

  1、对于没有安装盘的用户,可以找一台能上网的电脑,从以下地址下载系统文件,把被破坏的系统硬盘摘下来挂在能够正常运行的计算机上。

  2、设置此硬盘为从盘,将下载下来的文件复制到系统盘相应的目录下。

   3、把硬盘安装回原来的电脑,重新启动即可。

2005年02月22日

一个多月前放了个测试页面在网站上 http://www.ugia.cn/pr.php ,这几天google更新了pagerank, 现在你可以看到这个页面的PageRank值为10。现在我终于知道http://www.pr10.darkseoteam.com 的原理了。

原理其实很简单,www.ugia.cn/pr.php这个页面的pr值其实是www.google.com的。在这个页面中有一段小程序,如果google bot访问这个页面的话,会利用http301或http302自动转向到www.google.com。那么google bot就以为这个页面是google.com的一个镜像(猜测)。所以pr值也就是google.com的了。

if (strstr($_SERVER['HTTP_USER_AGENT'], “Googlebot”))
{
    
header(“HTTP/1.1 301″);
    
header(“Location: http://www.google.com”);
}

那么如果你转向到www.msn.com,这个页面的pr值就成了9喽。但是如果在UGiA.CN的默认首页中加上这段话,那google就不能索引我的网站了,所以这个方法只能作为娱乐了,呵呵。

文章转载自:http://www.ugia.cn/?p=45

那么如果你转向到www.msn.com,这个页面的pr值就成了9喽。但是如果在UGiA.CN的默认首页中加上这段话,那google就不能索引我的网站了,所以这个方法只能作为娱乐了,呵呵。

文章转载自:http://www.ugia.cn/?p=45

2004年08月06日

多机共享一条ADSL宽带线路上网已成时下BBS上最热门的话题。多数方法是利用一台主机作代理,其他电脑通过这台代理上网。若主机没开怎么办?一个更简便的方法是利用带路由功能的ADSL Modem。具体实现方法请看下文分解。

硬件准备

首先了解一下我的网络环境,我所用的ADSL宽带由当地电信提供(包月)。采用电话线连接,PPPoE协议虚拟拨号上网,动态分配IP地址。附送的ADSL Modem是格林耐特带路由功能的GRT1500。联网所需硬件:带路由功能的ADSL Modem、集线器Hub或小交换机(端口数量以需要联网计算机为准)、交叉网线一条,平行网线若干(注:交叉网线一头使用568B制作,另外一头使用568A制作。平行网线两都采用568B制作)以及每台电脑网卡一块。

第一步:硬件连接

用交叉网线连接ADSL Modom的LAN端口与Hub的UpLink端口。当然你得先把电话线连接到Modom的Line端口上。再由Hub的其他端口通过平行网线连接到每台电脑的网卡上。别接反啦!

第二步:设置计算机的网卡

由于GRT1500默认的IP地址为192.168.1.1,所以我们必须先把电脑与ADSL Modom设置成同一网段,否则将无法通信。具体步骤如下(以Windows 98为例,其他系统的设置大同小异)。右键点击桌面上的“网上邻居”图标,选“属性”,在弹出的对话框中双击网卡所对应的TCP/IP协议,在出现对话框内填入以下相应的内容:

IP为192.168.1.2(注意别填成了192.168.1.1,因为它已被Modem占用了)

子网掩码为255.255.255.0

网关为192.168.1.1

首选DNS为202.101.107.55

注意:各地的DNS会有所不同,请咨询当地电信部门。在设定DNS时会要求填写服务器名,不用管它,爱填什么就填什么。
第三步:修改GRT1500

接下来的操作是修改GRT1500,有一定的危险性(和改主板BIOS有些相似),所以我建议您找台稳定性较高的机子。打开IE浏览器,在地址栏内输入192.168.1.1,回车后在“用户名”和“密码”栏内分别输入root和12345(如有不对,请查阅说明书或与供应商联系),点“确定”登录。

第四步:开启GRT1500的DHCP功能

如果读者完全按本文的设置方法设置,可以跳过此步骤!点“DHCP设置”,如果用户想开启GRT1500的DHCP功能则需要选中图中的“激活”选项, 填入相关参数,然后点击“Apply”,那么用户的计算机的网卡设成自动获取地址。如果用户想固定分配地址则无须改变任何配置。

注意:网关必须为GET1500的LAN地址,同样DNS最好填写本地DNS的IP地址。

第五步:配置PPPoE和PPPoA

PPPoE和PPPoA的配置完全一样,具体采用哪一种接入方式要看具体情况而定,需要注意的是:用户名、密码、VPI、VCI、认证方式、都由ISP提供,其中任何一项错误都会导致拨号不成功。具体操作步骤如下:

1. 点“WAN设置”,将出现在“VPI”框中填入8,“VCI”中填35(8/35为网管用)。

2. 点击“PPPoE(激活NAT)”选项,在用户名和密码后的框内填写宽带提供商给您的账号和密码,例如用户名(福建泉州)为8163816@ads,l密码为8163816。

3. 根据实际情况选择上网模式“direct”(包月型的计费方式)和“auto”(按实上网时间或数据流量计费)。规定“空闲时间(min)”(缺省为5秒,表示ADSL线路上如果5秒钟内没有数据通过,将自动断开,当你开始传输数据时它又自动恢复)。可根据自己的实际情况设定。选择校验协议CHAP、PAP、MSCHAPV1和MSCHAPV2,一般由ISP提供。点击“Modify”按钮完成修改。如果是电信的用户一般默认即可。

 

 

4. 这一步将保存对GRT15000的修改。点击图5中的“保存&&启动”,在出现的页面中点击“Save”按钮。然后重启计算机,关闭ADSL Modem后再打开。这样你就完成了对GRT15000的修改。打开IE试试能不能上网,不用拨号噢,也不用安装PPPoE协议。

 

 

5. 如果你不小心设置错误或者想恢复为Modem默认配置,点“消除&&重启”,在出现的页面中点击“Erase”,然后重启即可。

第六步:其他客户机的配置

网络中其他客户机的设置方法和第一台的设置方法是完全一样的:

IP:192.168.1.x(x为3-255,因为1和2都被占用了)

子网掩码:255.255.255.0

网关:192.168.1.1

首选DNS:202.101.107.55

如果客户机在此之前设有其他连接方式,请全部删除。如果要让网络中的计算机互相访问,其设置方法和普通的局域网没有任何差别。

2004年07月18日

1.Ping 127.0.0.1
   127.0.0.1是本地的循环地址,Ping通则说明TCP/IP协议工作正常,否则TCP/IP就不正常。
2.Ping本机的IP地址
   使用IPCONFIG命令可查看本机的IP地址,Ping IP地址,若Ping通,说明网络适配器(网卡或MODEM)工作正常,否则就不正常。
3.Ping同网段计算机IP地址
   Ping 不通则说明网络线路出现故障,如网络中还有路由器,则应先Ping路由器在本网段端口的IP地址,不通则此段线路有问题,通则再Ping路由器在目标计算机所在网段的端口IP地址,不通则路由出现故障,通再Ping目的机的IP地址。
4.Ping网址
   若要检测一下一个带DNS服务的网络(如Internet),在上一步Ping通了目标计算机的IP后,仍然无法连接到该机,则可以Ping机的网络名,正常情况下会出现该网址所指向的IP地址,这表明本机的DNS设置正确而且DNS服务器工作正常,反之就可能是其中之一出现了故障;同样也可以通过Ping计算机名检测WINS解析的故障(WINS是将计算机名解析到IP地址的服务。)。
18 电脑端口基础知识 :

电脑端口基础知识
端口可分为3大类:
1) 公认端口(Well Known Ports):从0到1023,它们紧密绑定于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。
2) 注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。
3) 动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。
  本节讲述通常TCP/UDP端口扫描在防火墙记录中的信息。记住:并不存在所谓ICMP端口。如果你对解读ICMP数据感兴趣,请参看本文的其它部分。
  0 通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用一种通常的闭合端口连接它时将产生不同的结果。一种典型的扫描:使用IP地址为0.0.0.0,设置ACK位并在以太网层广播。
  1 tcpmux 这显示有人在寻找SGI Irix机器。Irix是实现tcpmux的主要提供者,缺省情况下tcpmux在这种系统中被打开。Iris机器在发布时含有几个缺省的无密码的帐户,如lp, guest, uucp, nuucp, demos, tutor, diag, EZsetup, OutOfBox, 和4Dgifts。许多管理员安装后忘记删除这些帐户。因此Hacker们在Internet上搜索tcpmux并利用这些帐户。
  7 Echo 你能看到许多人们搜索Fraggle放大器时,发送到x.x.x.0和x.x.x.255的信息。
  常见的一种DoS攻击是echo循环(echo-loop),攻击者伪造从一个机器发送到另一个机器的UDP数据包,而两个机器分别以它们最快的方式回应这些数据包。(参见Chargen)
  另一种东西是由DoubleClick在词端口建立的TCP连接。有一种产品叫做“Resonate Global Dispatch”,它与DNS的这一端口连接以确定最近的路由。
  Harvest/squid cache将从3130端口发送UDP echo:“如果将cache的source_ping on选项打开,它将对原始主机的UDP echo端口回应一个HIT reply。”这将会产生许多这类数据包。
  11 sysstat 这是一种UNIX服务,它会列出机器上所有正在运行的进程以及是什么启动了这些进程。这为入侵者提供了许多信息而威胁机器的安全,如暴露已知某些弱点或帐户的程序。这与UNIX系统中“ps”命令的结果相似
  再说一遍:ICMP没有端口,ICMP port 11通常是ICMP type=11
  19 chargen 这是一种仅仅发送字符的服务。UDP版本将会在收到UDP包后回应含有垃圾字符的包。TCP连接时,会发送含有垃圾字符的数据流知道连接关闭。Hacker利用IP欺骗可以发动DoS攻击。伪造两个chargen服务器之间的UDP包。由于服务器企图回应两个服务器之间的无限的往返数据通讯一个chargen和echo将导致服务器过载。同样fraggle DoS攻击向目标地址的这个端口广播一个带有伪造受害者IP的数据包,受害者为了回应这些数据而过载。
  21 ftp 最常见的攻击者用于寻找打开“anonymous”的ftp服务器的方法。这些服务器带有可读写的目录。Hackers或Crackers 利用这些服务器作为传送warez (私有程序) 和pr0n(故意拼错词而避免被搜索引擎分类)的节点。
  22 ssh PcAnywhere建立TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点。如果配置成特定的模式,许多使用RSAREF库的版本有不少漏洞。(建议在其它端口运行ssh)
  还应该注意的是ssh工具包带有一个称为make-ssh-known-hosts的程序。它会扫描整个域的ssh主机。你有时会被使用这一程序的人无意中扫描到。
  UDP(而不是TCP)与另一端的5632端口相连意味着存在搜索pcAnywhere的扫描。5632(十六进制的0×1600)位交换后是0×0016(使进制的22)。
  23 Telnet 入侵者在搜索远程登陆UNIX的服务。大多数情况下入侵者扫描这一端口是为了找到机器运行的操作系统。此外使用其它技术,入侵者会找到密码。
  25 smtp 攻击者(spammer)寻找SMTP服务器是为了传递他们的spam。入侵者的帐户总被关闭,他们需要拨号连接到高带宽的e-mail服务器上,将简单的信息传递到不同的地址。SMTP服务器(尤其是sendmail)是进入系统的最常用方法之一,因为它们必须完整的暴露于Internet且邮件的路由是复杂的(暴露+复杂=弱点)。
  53 DNS Hacker或crackers可能是试图进行区域传递(TCP),欺骗DNS(UDP)或隐藏其它通讯。因此防火墙常常过滤或记录53端口。
  需要注意的是你常会看到53端口做为UDP源端口。不稳定的防火墙通常允许这种通讯并假设这是对DNS查询的回复。Hacker常使用这种方法穿透防火墙。
  67和68 Bootp和DHCP UDP上的Bootp/DHCP:通过DSL和cable-modem的防火墙常会看见大量发送到广播地址255.255.255.255的数据。这些机器在向DHCP服务器请求一个地址分配。Hacker常进入它们分配一个地址把自己作为局部路由器而发起大量的“中间人”(man-in-middle)攻击。客户端向68端口(bootps)广播请求配置,服务器向67端口(bootpc)广播回应请求。这种回应使用广播是因为客户端还不知道可以发送的IP地址。
  69 TFTP(UDP) 许多服务器与bootp一起提供这项服务,便于从系统下载启动代码。但是它们常常错误配置而从系统提供任何文件,如密码文件。它们也可用于向系统写入文件。
  79 finger Hacker用于获得用户信息,查询操作系统,探测已知的缓冲区溢出错误,回应从自己机器到其它机器finger扫描。
  98 linuxconf 这个程序提供linux boxen的简单管理。通过整合的HTTP服务器在98端口提供基于Web界面的服务。它已发现有许多安全问题。一些版本setuid root,信任局域网,在/tmp下建立Internet可访问的文件,LANG环境变量有缓冲区溢出。此外因为它包含整合的服务器,许多典型的HTTP漏洞可能存在(缓冲区溢出,历遍目录等)
  109 POP2 并不象POP3那样有名,但许多服务器同时提供两种服务(向后兼容)。在同一个服务器上POP3的漏洞在POP2中同样存在。
  110 POP3 用于客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交换缓冲区溢出的弱点至少有20个(这意味着Hacker可以在真正登陆前进入系统)。成功登陆后还有其它缓冲区溢出错误。
  111 sunrpc portmap rpcbind Sun RPC PortMapper/RPCBIND。访问portmapper是扫描系统查看允许哪些RPC服务的最早的一步。常见RPC服务有:rpc.mountd, NFS, rpc.statd, rpc.csmd, rpc.ttybd, amd等。入侵者发现了允许的RPC服务将转向提供服务的特定端口测试漏洞。
  记住一定要记录线路中的daemon, IDS, 或sniffer,你可以发现入侵者正使用什么程序访问以便发现到底发生了什么。
  113 Ident auth 这是一个许多机器上运行的协议,用于鉴别TCP连接的用户。使用标准的这种服务可以获得许多机器的信息(会被Hacker利用)。但是它可作为许多服务的记录器,尤其是FTP, POP, IMAP, SMTP和IRC等服务。通常如果有许多客户通过防火墙访问这些服务,你将会看到许多这个端口的连接请求。记住,如果你阻断这个端口客户端会感觉到在防火墙另一边与e-mail服务器的缓慢连接。许多防火墙支持在TCP连接的阻断过程中发回RST,着将回停止这一缓慢的连接。
  119 NNTP news 新闻组传输协议,承载USENET通讯。当你链接到诸如:news://comp.security.firewalls/. 的地址时通常使用这个端口。这个端口的连接企图通常是人们在寻找USENET服务器。多数ISP限制只有他们的客户才能访问他们的新闻组服务器。打开新闻组服务器将允许发/读任何人的帖子,访问被限制的新闻组服务器,匿名发帖或发送spam。
  135 oc-serv MS RPC end-point mapper Microsoft在这个端口运行DCE RPC end-point mapper为它的DCOM服务。这与UNIX 111端口的功能很相似。使用DCOM和/或RPC的服务利用机器上的end-point mapper注册它们的位置。远端客户连接到机器时,它们查询end-point mapper找到服务的位置。同样Hacker扫描机器的这个端口是为了找到诸如:这个机器上运行Exchange Server吗?是什么版本?
  这个端口除了被用来查询服务(如使用epdump)还可以被用于直接攻击。有一些DoS攻击直接针对这个端口。
  137 NetBIOS name service nbtstat (UDP) 这是防火墙管理员最常见的信息,请仔细阅读文章后面的NetBIOS一节
  139 NetBIOS File and Print Sharing 通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于Windows“文件和打印机共享”和SAMBA。在Internet上共享自己的硬盘是可能是最常见的问题。
  大量针对这一端口始于1999,后来逐渐变少。2000年又有回升。一些VBS(IE5 VisualBasic Scripting)开始将它们自己拷贝到这个端口,试图在这个端口繁殖。
  143 IMAP 和上面POP3的安全问题一样,许多IMAP服务器有缓冲区溢出漏洞运行登陆过程中进入。记住:一种Linux蠕虫(admw0rm)会通过这个端口繁殖,因此许多这个端口的扫描来自不知情的已被感染的用户。当RadHat在他们的Linux发布版本中默认允许IMAP后,这些漏洞变得流行起来。Morris蠕虫以后这还是第一次广泛传播的蠕虫。
  这一端口还被用于IMAP2,但并不流行。
  已有一些报道发现有些0到143端口的攻击源于脚本。
  161 SNMP(UDP) 入侵者常探测的端口。SNMP允许远程管理设备。所有配置和运行信息都储存在数据库中,通过SNMP客获得这些信息。许多管理员错误配置将它们暴露于Internet。Crackers将试图使用缺省的密码“public”“private”访问系统。他们可能会试验所有可能的组合。
  SNMP包可能会被错误的指向你的网络。Windows机器常会因为错误配置将HP JetDirect remote management软件使用SNMP。HP OBJECT IDENTIFIER将收到SNMP包。新版的Win98使用SNMP解析域名,你会看见这种包在子网内广播(cable modem, DSL)查询sysName和其它信息。
  162 SNMP trap 可能是由于错误配置
  177 xdmcp 许多Hacker通过它访问X-Windows控制台,它同时需要打开6000端口。
  513 rwho 可能是从使用cable modem或DSL登陆到的子网中的UNIX机器发出的广播。这些人为Hacker进入他们的系统提供了很有趣的信息。
  553 CORBA IIOP (UDP) 如果你使用cable modem或DSL VLAN,你将会看到这个端口的广播。CORBA是一种面向对象的RPC(remote procedure call)系统。Hacker会利用这些信息进入系统。
  600 Pcserver backdoor 请查看1524端口
  一些玩script的孩子认为他们通过修改ingreslock和pcserver文件已经完全攻破了系统– Alan J. Rosenthal.
  635 mountd Linux的mountd Bug。这是人们扫描的一个流行的Bug。大多数对这个端口的扫描是基于UDP的,但基于TCP的mountd有所增加(mountd同时运行于两个端口)。记住,mountd可运行于任何端口(到底在哪个端口,需要在端口111做portmap查询),只是Linux默认为635端口,就象NFS通常运行于2049端口。
  1024 许多人问这个端口是干什么的。它是动态端口的开始。许多程序并不在乎用哪个端口连接网络,它们请求操作系统为它们分配“下一个闲置端口”。基于这一点分配从端口1024开始。这意味着第一个向系统请求分配动态端口的程序将被分配端口1024。为了验证这一点,你可以重启机器,打开Telnet,再打开一个窗口运行“natstat -a”,你将会看到Telnet被分配1024端口。请求的程序越多,动态端口也越多。操作系统分配的端口将逐渐变大。再来一遍,当你浏览Web页时用“netstat”查看,每个Web页需要一个新端口。
 ?ersion 0.4.1, June 20, 2000
  http://www.robertgraham.com/pubs/firewall-seen.html
  Copyright 1998-2000 by Robert Graham (mailtfirewall-seen1@robertgraham.com.
  All rights reserved. This document may only be reproduced (whole or
in part) for non-commercial purposes. All reproductions must
contain this copyright notice and must not be altered, except by
permission of the author.
  1025 参见1024
  1026 参见1024
  1080 SOCKS
  这一协议以管道方式穿过防火墙,允许防火墙后面的许多人通过一个IP地址访问Internet。理论上它应该只允许内部的通信向外达到Internet。但是由于错误的配置,它会允许Hacker/Cracker的位于防火墙外部的攻击穿过防火墙。或者简单地回应位于Internet上的计算机,从而掩饰他们对你的直接攻击。WinGate是一种常见的Windows个人防火墙,常会发生上述的错误配置。在加入IRC聊天室时常会看到这种情况。
  1114 SQL
  系统本身很少扫描这个端口,但常常是sscan脚本的一部分。
  1243 Sub-7木马(TCP)
  参见Subseven部分。
  1524 ingreslock后门
  许多攻击脚本将安装一个后门Sh*ll 于这个端口(尤其是那些针对Sun系统中Sendmail和RPC服务漏洞的脚本,如statd, ttdbserver和cmsd)。如果你刚刚安装了你的防火墙就看到在这个端口上的连接企图,很可能是上述原因。你可以试试Telnet到你的机器上的这个端口,看看它是否会给你一个Sh*ll 。连接到600/pcserver也存在这个问题。
  2049 NFS
  NFS程序常运行于这个端口。通常需要访问portmapper查询这个服务运行于哪个端口,但是大部分情况是安装后NFS 杏谡飧龆丝冢?acker/Cracker因而可以闭开portmapper直接测试这个端口。
  3128 squid
  这是Squid HTTP代理服务器的默认端口。攻击者扫描这个端口是为了搜寻一个代理服务器而匿名访问Internet。你也会看到搜索其它代理服务器的端口:8000/8001/8080/8888。扫描这一端口的另一原因是:用户正在进入聊天室。其它用户(或服务器本身)Q9750406也会检验这个端口以确定用户的机器是否支持代理。请查看5.3节。
  5632 pcAnywere
  你会看到很多这个端口的扫描,这依赖于你所在的位置。当用户打开pcAnywere时,它会自动扫描局域网C类网以寻找可能得代理(译者:指agent而不是proxy)。Hacker/cracker也会寻找开放这种服务的机器,所以应该查看这种扫描的源地址。一些搜寻pcAnywere的扫描常包含端口22的UDP数据包。参见拨号扫描。
  6776 Sub-7 artifact
  这个端口是从Sub-7主端口分离出来的用于传送数据的端口。例如当控制者通过电话线控制另一台机器,而被控机器挂断时你将会看到这种情况。因此当另一人以此IP拨入时,他们将会看到持续的,在这个端口的连接企图。(译者:即看到防火墙报告这一端口的连接企图时,并不表示你已被Sub-7控制。)
  6970 RealAudio
  RealAudio客户将从服务器的6970-7170的UDP端口接收音频数据流。这是由TCP7070端口外向控制连接设置的。
  13223 PowWow
  PowWow 是Tribal Voice的聊天程序。它允许用户在此端口打开私人聊天的连接。这一程序对于建立连接非常具有“进攻性”。它会“驻扎”在这一TCP端口等待回应。这造成类似心跳间隔的连接企图。如果你是一个拨号用户,从另一个聊天者手中“继承”了IP地址这种情况就会发生:好象很多不同的人在测试这一端口。这一协议使用“OPNG”作为其连接企图的前四个字节。
  17027 Conducent
  这是一个外向连接。这是由于公司内部有人安装了带有Conducent “adbot” 的共享软件。Conducent “adbot”是为共享软件显示广告服务的。使用这种服务的一种流行的软件是Pkware。有人试验:阻断这一外向连接不会有任何问题,但是封掉IP地址本身将会导致adbots持续在每秒内试图连接多次而导致连接过载:

机器会不断试图解析DNS名─ads.conducent.com,即IP地址216.33.210.40 ;216.33.199.77 ;216.33.199.80 ;216.33.199.81;216.33.210.41。(译者:不知NetAnts使用的Radiate是否也有这种现象)
  27374 Sub-7木马(TCP)
  参见Subseven部分。
  30100 NetSphere木马(TCP)
  通常这一端口的扫描是为了寻找中了NetSphere木马。
  31337 Back Orifice “elite”
  Hacker中31337读做“elite”/ei’li:t/(译者:法语,译为中坚力量,精华。即3=E, 1=L, 7=T)。因此许多后门程序运行于这一端口。其中最有名的是Back Orifice。曾经一段时间内这是Internet上最常见的扫描。现在它的流行越来越少,其它的木马程序越来越流行。
  31789 Hack-a-tack
  这一端口的UDP通讯通常是由于”Hack-a-tack”远程访问木马(RAT, Remote Access Trojan)。这种木马包含内置的31790端口扫描器,因此任何31789端口到317890端口的连接意味着已经有这种入侵。(31789端口是控制连接,317890端口是文件传输连接)
  32770~32900 RPC服务
  Sun Solaris的RPC服务在这一范围内。详细的说:早期版本的Solaris(2.5.1之前)将portmapper置于这一范围内,即使低端口被防火墙封闭仍然允许Hacker/cracker访问这一端口。扫描这一范围内的端口不是为了寻找portmapper,就是为了寻找可被攻击的已知的RPC服务。
  33434~33600 traceroute
  如果你看到这一端口范围内的UDP数据包(且只在此范围之内)则可能是由于traceroute。参见traceroute部分。
  41508 Inoculan
  早期版本的Inoculan会在子网内产生大量的UDP通讯用于识别彼此。参见
  http://www.circlemud.org/~jelson/software/udpsend.html
  http://www.ccd.bnl.gov/nss/tips/inoculan/index.html
(二) 下面的这些源端口意味着什么?
  端口1~1024是保留端口,所以它们几乎不会是源端口。但有一些例外,例如来自NAT机器的连接。参见1.9。
  常看见紧接着1024的端口,它们是系统分配给那些并不在乎使用哪个端口连接的应用程序的“动态端口”。
Server Client 服务 描述
  1-5/tcp 动态 FTP 1-5端口意味着sscan脚本
  20/tcp 动态 FTP FTP服务器传送文件的端口
  53 动态 FTP DNS从这个端口发送UDP回应。你也可能看见源/目标端口的TCP连接。
  123 动态 S/NTP 简单网络时间协议(S/NTP)服务器运行的端口。它们也会发送到这个端口的广播。
  27910~27961/udp 动态 Quake Quake或Quake引擎驱动的游戏在这一端口运行其服务器。因此来自这一端口范围的UDP包或发送至这一端口范围的UDP包通常是游戏。
  61000以上 动态 FTP 61000以上的端口可能来自Linux NAT服务器(IP Masquerade)  
Anndoo

2004年07月09日

电脑在使用过程中难免会遇到更换机器、中毒、系统崩溃、升级等情况,而需要进行硬盘的格式化,结果在工作结束后突然想起有些重要的数据忘了备份,那可真是后悔也来不及了。笔者今天就遇到了这样的情况,在格式化硬盘的时候居然把最为重要的聊天记录忘了备份,难道真的没有办法挽回了吗?不,能恢复的。下面,笔者就今天所找回数据的方法向大家介绍一下,希望能对和笔者一样因格式化了硬盘而丢失了重要数据的朋友一些帮助。
  其实一开始笔者也不知道该如何找回数据的,后来通过在网上查找发现了一款名叫EasyRecovery的数据恢复软件,网上对它的介绍是这样写的:EasyRecovery是一款威力非常强大的硬盘数据恢复工具,它可以从被病毒破坏或是已经格式化的硬盘中恢复数据,例如被破坏的硬盘中像丢失的引导记录、BIOS 参数数据块、分区表、FAT表、引导区等都可以由它来进行恢复。(www.77my.com)

  既然是可以恢复被格式化掉的数据,那就用它吧,于是,笔者便在网上下载了EasyRecovery的共享版软件,软件语言是英文的。

安装完毕后打开,发现软件的界面上有下面几个选项,分别是“Disk Diagnostocs”(磁盘诊断)、“Data Recovery”(数据修复)、“File Repair”(文件修复)、“Email Repair”(邮件修复)、“Software Updates”(软件更新)和“Crisis Center”(教程中心)。既然是要恢复数据,所以笔者在这里选择了第二项,“Data Recovery”。

  这里有六个选项,由于笔者要求的是从被格式化的硬盘分区里找回数据,所以选择了第三项“Format Recovery”,它的功能就是能从一个已经格式化的分区中恢复文件,点击进入下一选项。

 
在这里,需要选择的就是需要恢复数据的分区和在被格式化前的文件系统的分区格式


笔者的聊天记录之前是存储在D盘分区里的,文件系统的分区格式和在被格式化以前同样是NTFS的,选择后点击“Next”继续。


这时,软件就开始扫描刚才所选择的分区了。在扫描分区的同时显示正在扫描文件的已用时间、剩余时间,和已经找到文件目录以及文件的数量。

经过了一阵漫长的等待后,扫描结果出来了,在这里,笔者找到了因为被格式化而被误删除了的“聊天记录”。点击窗口左面文件夹列表中的文件夹,在右面列出来到文件就是能被恢复的删除文件,选择要恢复的文件,在文件前面方框里打上勾,然后点击“Next”继续。

选择好要恢复的文件后,还需要选择恢复目标的选项,笔者这里选择的是恢复到本地驱动器里的。另外,除了可以手动的敲入路径外,也可以通过点击“Browse”(浏览)来选择需要保存文件的目录。这里需要注意的就是,在选择保存文件分区时,所选择的分区不能与文件原来所在的分区一样,否则不能保存。


在点击“Next”后,与扫描分区时一样,显示恢复数据时的进度。


恢复完成后,弹出一个对话框显示文件恢复摘要,这时可以进行保存或者打印,然后点击“Done”(完成)后,文件的恢复就结束了。


文件恢复后,笔者在刚才所选择恢复文件的目录里找到了因为格式化而被删除的“聊天记录”。

  最后,笔者告诉大家的就是,“EasyRecovery”这个软件不仅能恢复被格式化的硬盘里恢复数据,它还能恢复被破坏的硬盘中像丢失的引导记录、BIOS 参数数据块、分区表、FAT 表、引导区等都可以由它来进行恢复,还能够对“ZIP”文件以及微软的 “Office”系列文档进行修复。如果你以前有重要的文件被误删除过,只要时间相隔的不要太久,相信一定能够恢复的。

2004年07月08日

1、简单去除广告
   在QQ安装文件夹里找到AD文件夹,删除,再登陆QQ,看,还有那讨厌的广告没。
2、给QQ减肥
   在QQ的文件夹里有很多是冗缀的文件,比如QQ皮肤拉,聊天场景拉,其实用起来跟普通的没有什么区别,使用的时候就占用了大量的系统资源,主要是内存,告诉大家应该保留哪几个文件夹:
还是找到QQ的安装目录,保留下面几个文件夹:“0”文件夹(不知道是起什么作用的,里面空空荡荡,删除了之后只要一启动QQ还会自动生成),“newface”文件夹(里面是表情,用的着),“QRingFiles”文件夹(里面是QQ系统声音),“sound”文件夹(里面也是提示音)跟“smsdata”文件夹(不大清楚是起什么作用的,启动时自动生成,里面空空如也)。
   然后再启动QQ,看看是不是比以前“简陋”多了。呵呵,可是对于那些一边聊QQ,一边使用别的程序的“网虫”来说,可为他们节约了大量的系统资源啊(主要是内存),我做个实验,拿windows XP来说,启动没有经过处理的原版QQ2003需要占用20-30M的内存资源,而使用经过减肥之后的QQ,只需要占用15-20M的系统资源,节约了将近30%,对于那些机器内存少的计算机用户可是首选啊,自己给QQ减肥总比装什么木子版的QQ强吧,虽然说没有显示IP功能,但是显IP功能也是占用了计算机资源为代价的啊。更何况木子版的是改了QQ内核的,谁知道掺了什么其他的东西没有。
   以上都是我自己慢慢删除QQ文件一个一个试出来的,大家还有什么关于QQ的好的使用方法请在下边留言,留下你宝贵的经验,和大家一起交流办法,不胜感谢!

全国性大面积ADSL MODEM掉线问题,怀疑是受到病毒或人为攻击

1.故障的情况
———————————————————————————
3月8日起(网上了解应该是中午开始),全国范围出现了部分adsl modem出现断流及死猫
的问题。
出现此问题的adsl猫都有2个特征:
1.品牌各异,但都使用globespan的稍旧型号viking或vikingII芯片的ADSL MODEM(如比较常见的实达2110eh 4.5 4.6 4.7和华硕AAM6000EV A/J A/E A/G1等等 )。
2.都启用了MODEM本身的PPPOE路由模式;
除了华硕之外,包括晨星、 实达 、斯达康的UT-300R等部分型号的adsl猫都存在这个问题。
另外,据这些设备的官方了解,广东、广西,福州,天津、江苏、黑龙江等地都有类似情况
出现,应该是全国范围大面积的出现。
———————————————————————————
2.问题的现象
———————————————————————————
出现问题的现象有3种:
0.断流情况严重,QQ网易泡泡等软件自动掉线,网页也突然无法打开,稍候不久可以继续连接上,公网IP不会改变。
1.五分钟到半小时adsl猫就死猫,ping adsl 猫的ip,一半通一半不通,时延都在千毫秒级。
网页打不开,但QQ/MSN等还经常能在线,偶尔还能收发消息。
2.频繁出现adsl链路断开重连(半小时内出现多次);
3.频繁出现atm vc拥塞;

———————————————————————————
3.可能的原因分析
———————————————————————————
首先一点:viking或vikingII芯片的ADSL系统存在bug或者漏洞,这个基本是肯定的。

1。电信搞鬼,利用adsl猫的漏洞打击路由模式上网的用户。
电信搞鬼的可能性不大,全国范围(南方电信、北方网通)一起同时间搞鬼可能性更不大。

2。有病毒攻击。
病毒攻击adsl猫的可能性还是比较大的,adsl猫好像就是内置一个精简OS的电子设备(
其实设备本身的内核就是一个小型的LINUX系统),包含http/ftp/tftp/telnet
服务,技术上讲没有漏洞是不可能的,也许是有新病毒流行(或者旧病毒又发作了),病毒的
不断扫描造成对adsl系统的攻击,造成设备受不了不断的扫描而产生死猫。
而adsl猫作为桥接时,外网对ip的访问都直接转到 ppoe拨号的pc上,ADSL猫制作转发,
自身不受攻击,因而ADSL不会出现问题(可以用防火墙软件监视一下是否有攻击,我的PC近期
每小时都可以收到上万个攻击记录)。
ADSL猫作为路由时,外面对ip的访问首先到达adsl猫上,ADSL猫首当其冲,如果有攻击
,受攻击的就是adsl猫,这种带路由的ADSL设备是很脆弱的,受不了同时又大量的IP端口扫描
等攻击立马倒下拉。
再PING受到攻击后的ADSL时,一半通一半不通,PING通的时延也在千毫秒级以上。偶尔
能通,故MSN/QQ等软件还能暂时保持在线状态,有时还能收发成功消息。

如果是这样的话,ftp/tftp应该是只对内网开放的,可以将内网的电脑断开,检查病毒
。看adsl猫是否继续死机,以防攻击是由于内网的PC发起的。
telnet/http应该是对外也开放的,可以将对应的端口修改(amdin->port settings)
,不用默认的80和23。
http port: 61080(80, 61000-62000)
telnet port:61023(23, 61000-62000)
注:修改端口后,要保存一下,然后重启,才能生效。
并且,这样修改的话,每次登陆配置页面的话,就不是80端口了,应该是:
http://192.168.1.1:61080(61080是你修改的新端口号,改成什么了就用什么)
telnet登陆也不是23端口了,是:telnet 192.168.1.1 61023
后面的端口,一样,就是你修改的TELNET新端口号;

另外,一些傻瓜式的配置软件(如TP-LINK提供的),好像是使用ADSL猫的TELNET口进行
配置的,修改了TELNET端口后,这些软件就连不上了(软件中默认就是登陆ADSL猫的23端口,
没有选择)

(经过【你我de论坛区】的用户测试改了端口以后,已经2天没死猫了,后来又做试验,
发现 HTTP端口改回80也不会出问题,但TELNET口改回23端口就有问题了,估计是ADSL猫的
TELNET服务有漏洞。不过也不一定,从华硕网站上了解,现在监控下来ADSL猫的4个端口都有攻击)

———————————————————————————
4。解决的办法
———————————————————————————
根据网上的到的信息,总结有以下方法:

解决办法:
一.打开Modem的防护墙:点击服务-防火墙-将攻击保护和DOS保护由禁止改为许可
注意:有的版本没有防火墙选项。
二.更改端口:点击管理-端口设置-将现有HTTP,Telnet,FTP端口加上61000,变为61080,61023,61021。或者更改为其它的端口号。让扫描软件不能轻易扫描到即可。
上面两种方式请尽量都做。然后点击管理-保存和重启-保存配置。

英文:
注意:更改后的端口号要记住,以后访问Modem的配置页面使用如http://192.168.1.1:61080的地址
解决办法:
1.打开Modem的防火墙:点击服务service-防火墙firewall-将攻击保护attack protection和DOS保护由禁止改为许可
注意:有的版本没有防火墙选项。
2.更改端口:点击管理admin-端口设置port setting-将现有HTTP,Telnet,FTP端口加上61000,变为61080,61023,61021。或者更改为其它的端口号。让扫描软件不能轻易扫描到即可。
上面两种方式请尽量都做。然后点击管理admin-保存和重启commit and reboot-保存配置(提交)
3.对于在Service页面中没有防火墙Firewall的用户,按如下方法开启防火墙。
1.进入DOS界面
2.键入telnet 192.168.1.1
(如果您有修改端口号,请加上 端口号,如 telnet 192.168.1.1 61023)
3.出现Login:键入帐号(如adsl)
4.出现Password : 键入密码(如adsl1234)
5.出现$ 键入 modify fwl global attackprotect enable
6.出现$ 键入 modify fwl global dosprotect enable
7.出现$ 键入commit

重复一下上文,很多人不注意看这个,搞的自己很郁闷:
这样修改的话,每次登陆配置页面的话,就不是80端口了,应该是:
http://192.168.1.1:61080(61080是你修改的新端口号,改成什么了就用什么)
telnet登陆也不是23端口了,是:telnet 192.168.1.1 61023
后面的端口,一样,就是你修改的TELNET新端口号;

三.通过RDR映射,使外部对ADSL猫开放端口的攻击转移到内部
在adsl猫上做4个rdr映射,将外网对adsl猫的21/23/69/80端口的访问映射到内网一个不用
的ip上,转移攻击的ip包。

注:其中21/23/69/80端口分别对应 FTP/TELNET/TFTP/HTTP服务。

以上3个尽可能都使用

四.升级ADSL猫的FIRMWARE
网上有提供新版ADSL FIRMWARE的地方(下面的2个网站),更新到最新的FIRMWARE可以
避免这样的问题,但是升级有风险,而且各个品牌的FIRMWARE没理清,大家看清楚了再升级。

 

另外提醒:
打开路由模式的ADSL猫,请修改其登陆密码。路由模式下的猫,其配置用的HTTP/TELNET
都是对外开放的。外网的人,也可以登陆到你ADSL猫上,如果密码还是默认的话,很容易被
无聊的人登陆进,并修改。

  ADSL是运行在原有电话线上的一种高速宽带上网方式,它具有节省投资、上网速度快、安装简单等优点。目前很多局域网尤其是网吧都使用这种方式。当然用这种方式上网的故障也比较多,下面就为大家谈谈ADSL故障的排解方法与实例。

  造成ADSL故障的因素

  ADSL常见的硬件故障大多数是接头松动、网线断、集线器损坏和计算机系统故障等方面的问题。一般都可以通过观察指示灯来帮助定位。

  此外,电压不正常、温度过高、雷击等也容易造成故障。电压不稳定的地方最好为Modem配小功率UPS,Modem应保持干燥通风、避免水淋、保持清洁。遇雷雨天气时,务必将Modem电源和所有连线拔下。Modem损坏如果指示灯不亮,或只有一个灯亮,或更换网线、网卡之后10Base-T灯仍不亮,则表明Modem已损坏。

  线路距离过长、线路质量差、连线不合理,也是造成ADSL不能正常使用的原因。其表现是经常丢失同步、同步困难或一贯性速度很慢。解决的方法是:将需要并接的设备如电话分机、传真、普通Modem等放到分线器的PHONE口以后:检查所有接头接触是否良好,对质量不好的户线应改造或更换。

  定位ADSL故障的基本方法

  ADSL的故障定位需要一定的经验,一般原则是:留心指示灯和报错信息,先硬件后软件,先内部后外部,先本地后外网,先试主机后查客户,充分检查后再申报。故障的申报应该准确简洁,应尽量将遇到的问题与用户手册上提到的故障相对应。向机房报故障时,应根据用户手册首先报出端口编号和用户名。对经常性的故障,用户应进行记录,并在申报时提及。

  1.检查电源指示灯是否正常

  电源指示灯位于用户Modem 3个指示灯的最左边,持续点亮为正常,如电源指示灯不亮,用户可自行解决电源问题。

  2.数据指示灯是否正常

  数据指示灯位于用户Modem 3个指示灯靠右边的两个,持续点亮为正常,说明用户端至DSLAM局端线路无故障:如该指示灯不亮,说明线路有问题,需由电信部门现场解决。

  3.用户是否自行改动IP地址

  每个用户PC均有其固定IP地址,如用户改动其地址,则电信部门可提供其PC的IP地址,把IP地址重新改回来即可。

  4.用户网卡、网线是否正常

  用户PC网卡经网线连接Modem后,其指示灯会闪亮,如该指示灯不能正常闪亮,说明用户网卡或网线有故障。

  如果以上各项均正常,用户仍不能上网,则需由ISP的技术人员现场解决。

  故障诊断处理实例

  1.局域网上的计算机无法使用PPPoE

  [故障现象]

  一台ADSL连接所使用的是10/100Mb/s的HUB,而在局域网上的计算机却无法使用PPPoE。

  [故障分析处理]

  ADSL使用的是10Base-T标准即10Mb/s,它连接10/100Mb/s的HUB是不会有问题的,但是如果计算机和HUB的连接速度是100Mb/s,HUB的10/100Mb/s交换模块目前对PPPoE支持并不是很好,那么PPPoE就有可能无法在100Mb/s网速下找到ADSL信号,就不能使用了。解决办法就是用于PPPoE拨号的计算机使用10Mb/s的接线方法制作10Mb/s网线,或者将网卡强行设置工作在10Mb/s速度。

  2.数据流量大时出现死机

  < [故障现象]

  一台ADSL,当数据流量增大时就会死机。

  [故障分析处理]

  一般情况下,这是因为网卡的品质或者兼容性不好所引起,特别是老式ISA总线IOM网卡,由于PPPoE是比较新的一项技术,这类网卡兼容性可能会有问题,并且速度较慢,造成冲突,最终线路锁死,甚至死机。

  3.安装PPPoE后启动速度变慢

  [故障现象]

  安装了ADSL的PPPoE软件以后电脑启动速度慢了。

  [故障分析处理]

  这和网卡设置有问题有关,由于系统启动时需要一个合法的IP,局域网中需要正确设置DHCP服务器,如果是单机使用就给网卡指定一个IP,便可以解决问题,例如:192.168.xxx.xxx,子网掩码:255.255.255.0。

  4.不能列出ISP的服务项目

  [故障现象]

  PPPoE软件安装和工作都正常,但不能列出ISP的服务项目。

  [故障分析处理]

  首先检查硬件的连接是否正确,ISP是否在提供服务,这些可以通过观察ADSL Modem同步工作灯显示状态来判断,如果同步工作灯显示正常工作,那就检查计算机内其他设备是否干扰了ADSL的工作,并且将驱动程序升级。还需要注意的一点就是ISP是否开通了相应的服务,由于ADSL还有一些特殊编号捆绑在电话交换机中,ISP需要认证了这些编号后才能视为用户的线路合法可用;还有ISP的ADSL接入服务器没开,也不可能列出服务器项目。

  5.ADSL上网速度慢

  [故障现象]

  有时候ADSL访问速度并不比普通拨号Modem快多少。

  [故障分析处理]

  造成ADSL访问速度慢的原因主要有:

  1)如果访问国外站点,访问会受到出口带宽及对方站点配置情况等因素的影响。

  2)ADSL技术对电话线路的质量要求较高,且目前采用的ADSL是一种RADSL (速率自适应ADSL),如果电话局所在楼到用户间的电话线路在某段时间受到外在因素的干扰,RADSL会根据线路质量的优劣和传输距离的远近动态地调整用户的访问速度。

  6.有时不能联网

  [故障现象]

  ADSL有时不能正常上网。

  [故障分析处理]

  ADSL是一种基于双绞线传输的技术,双绞线是将两条绝缘的铜线以一定的规律互相缠在一起,这样可以有效抵御外界的电磁场干扰。大多电话线是平行线,从电话公司接线盒到用户电话这段线大多用的是平行线,这对ADSL传输非常不利,过长的非双绞线传输会造成连接不稳定、ADSL灯闪烁等现象,从而影响上网。由于ADSL是在普通电话线的低频语音上叠加高频数字信号,所以从电话公司到ADSL滤波器这段连接中任何设备的加入都将危害到数据的正常传输,因此在滤波器之前不要并接电话、电话防盗器等设备。

  7.ADSL的指示灯都正常但仍然掉网

  [故障现象]

  一台ADSL的指示灯为绿色,但也发生掉线现象,且重新启动Modem后就好了。

  [故障分析处理]

  这种情况多发生在没有代理服务器,没有做防火墙或没有路由器的网络用户上。这是因为在ADSLModem上有个“lOBase-T”口,这个口是接局域网的HUB口。虽然是10Mb/s的端口,但是ADSL的上行带宽只有几百kb/s。如果用户局域网内部是ADSL直接接HUB,HUB再接下面的客户机,网络内的许多与ADSL无关的数据包将占用ADSL上行通道,ADSL也无法控制局域网内的广播风暴;如果超过ADSL上行传输能力,数据包将装入ADSL的缓存;如果数据量继续增大,缓存溢出,则造成ADSL“休眠”现象。这样只有重新启动Modem了。解决办法是做一台双网卡的代理服务器,这样可以隔断Modem与局域网之间的直接通信,避免上述问题。

  8.虚拟拨号失败

  [故障现象]

  ADSL在使用虚拟拨号软件时提示错误信息,拨号失败。

  [故障分析处理]

  如果拨号窗口显示“Begin Negotiation”然后等待,最后直接弹出菜单“time out”,这种情况表明网络不通。主要原因是ADSL上的10Base-T端口上的网线没有连接好或ADSL网络不通,可以重启ADSL后再试。

  如果拨号窗口显示“Begin Negotiation”,然后显示“Authenticating”,最后显示“Authentication Failed”,这种情况表明用户账号或密码有误。

  如果拨号窗口显示“Begin Negotiation”,然后显示“Authenticating”,然后再显示“Receiving Network Parameter”,最后弹出菜单“timeout”,这种情况表明拨号IP地址已经被占满,需稍后再拨。

2004年06月06日

 

Linux 内核解读入门—-摘自“安盟”

    针对好多Linux 爱好者对内核很有兴趣却无从下口,本文旨在介绍一种解读linux内核源码的入门方法,而不是解说linux复杂的内核机制;

一.核心源程序的文件组织:

1.Linux核心源程序通常都安装在/usr/src/linux下,而且它有一个非常简单的编号约定:任何偶数的核心(例如2.0.30)都是一个稳定地发行的核心,而任何奇数的核心(例如2.1.42)都是一个开发中的核心。

本文基于稳定的2.2.5源代码,第二部分的实现平台为 Redhat Linux 6.0。

2.核心源程序的文件按树形结构进行组织,在源程序树的最上层你会看到这样一些目录:

●Arch :arch子目录包括了所有和体系结构相关的核心代码。它的每一个子目录都代表一种支持的体系结构,例如i386就是关于intel cpu及与之相兼容体系结构的子目录。PC机一般都基于此目录;

●Include: include子目录包括编译核心所需要的大部分头文件。与平台无关的头文件在 include/linux子目录下,与 intel cpu相关的头文件在include/asm-i386子目录下,而include/scsi目录则是有关scsi设备的头文件目录;

●Init: 这个目录包含核心的初始化代码(注:不是系统的引导代码),包含两个文件main.c和Version.c,这是研究核心如何工作的一个非常好的起点。

●Mm :这个目录包括所有独立于 cpu 体系结构的内存管理代码,如页式存储管理内存的分配和释放等;而和体系结构相关的内存管理代码则位于arch/*/mm/,例如arch/i386/mm/Fault.c

●Kernel:主要的核心代码,此目录下的文件实现了大多数linux系统的内核函数,其中最重要的文件当属sched.c;同样,和体系结构相关的代码在arch/*/kernel中;

●Drivers: 放置系统所有的设备驱动程序;每种驱动程序又各占用一个子目录:如,/block 下为块设备驱动程序,比如ide(ide.c)。如果你希望查看所有可能包含文件系统的设备是如何初始化的,你可以看drivers/block/genhd.c中的device_setup()。它不仅初始化硬盘,也初始化网络,因为安装nfs文件系统的时候需要网络其他: 如, Lib放置核心的库代码; Net,核心与网络相关的代码; Ipc,这个目录包含核心的进程间通讯的代码; Fs ,所有的文件系统代码和各种类型的文件操作代码,它的每一个子目录支持一个文件系统,例如fat和ext2;

Scripts, 此目录包含用于配置核心的脚本文件等。

一般,在每个目录下,都有一个 .depend 文件和一个 Makefile 文件,这两个文件都是编译时使用的辅助文件,仔细阅读这两个文件对弄清各个文件这间的联系和依托关系很有帮助;而且,在有的目录下还有Readme 文件,它是对该目录下的文件的一些说明,同样有利于我们对内核源码的理解;

  二.解读实战:为你的内核增加一个系统调用

虽然,Linux 的内核源码用树形结构组织得非常合理、科学,把功能相关联的文件都放在同一个子目录下,这样使得程序更具可读性。然而,Linux 的内核源码实在是太大而且非常复杂,即便采用了很合理的文件组织方法,在不同目录下的文件之间还是有很多的关联,分析核心的一部分代码通常会要查看其它的几个相关的文件,而且可能这些文件还不在同一个子目录下。

体系的庞大复杂和文件之间关联的错综复杂,可能就是很多人对其望而生畏的主要原因。当然,这种令人生畏的劳动所带来的回报也是非常令人着迷的:你不仅可以从中学到很多的计算机的底层的知识(如下面将讲到的系统的引导),体会到整个操作系统体系结构的精妙和在解决某个具体细节问题时,算法的巧妙;而且更重要的是:在源码的分析过程中,你就会被一点一点地、潜移默化地专业化;甚至,只要分析十分之一的代码后,你就会深刻地体会到,什么样的代码才是一个专业的程序员写的,什么样的代码是一个业余爱好者写的。

为了使读者能更好的体会到这一特点,下面举了一个具体的内核分析实例,希望能通过这个实例,使读者对 Linux的内核的组织有些具体的认识,从中读者也可以学到一些对内核的分析方法。

以下即为分析实例:

【一】操作平台:

硬件:cpu intel Pentium II ;

软件:Redhat Linux 6.0; 内核版本2.2.5【二】相关内核源代码分析:

1.系统的引导和初始化:Linux 系统的引导有好几种方式:常见的有 Lilo, Loadin引导和Linux的自举引导(bootsect-loader),而后者所对应源程序为arch/i386/boot/bootsect.S,它为实模式的汇编程序,限于篇幅在此不做分析;无论是哪种引导方式,最后都要跳转到 arch/i386/Kernel/setup.S, setup.S主要是进行时模式下的初始化,为系统进入保护模式做准备;此后,系统执行 arch/i386/kernel/head.S (对经压缩后存放的内核要先执行 arch/i386/boot/compressed/head.S); head.S 中定义的一段汇编程序setup_idt ,它负责建立一张256项的 idt 表(Interrupt Descriptor Table),此表保存着所有自陷和中断的入口地址;其中包括系统调用总控程序 system_call 的入口地址;当然,除此之外,head.S还要做一些其他的初始化工作;

2.系统初始化后运行的第一个内核程序asmlinkage void __init start_kernel(void) 定义在

/usr/src/linux/init/main.c中,它通过调用usr/src/linux/arch/i386/kernel/traps.c 中的一个函数

void __init trap_init(void) 把各自陷和中断服务程序的入口地址设置到 idt 表中,其中系统调用总控程序system_cal就是中断服务程序之一;void __init trap_init(void) 函数则通过调用一个宏

set_system_gate(SYSCALL_VECTOR,&system_call); 把系统调用总控程序的入口挂在中断0×80上;

其中SYSCALL_VECTOR是定义在 /usr/src/linux/arch/i386/kernel/irq.h中的一个常量0×80; 而 system_call 即为中断总控程序的入口地址;中断总控程序用汇编语言定义在/usr/src/linux/arch/i386/kernel/entry.S中;

3.中断总控程序主要负责保存处理机执行系统调用前的状态,检验当前调用是否合法, 并根据系统调用向量,使处理机跳转到保存在 sys_call_table 表中的相应系统服务例程的入口; 从系统服务例程返回后恢复处理机状态退回用户程序;

而系统调用向量则定义在/usr/src/linux/include/asm-386/unistd.h 中;sys_call_table 表定义在/usr/src/linux/arch/i386/kernel/entry.S 中; 同时在 /usr/src/linux/include/asm-386/unistd.h 中也定义了系统调用的用户编程接口;

4.由此可见 , linux 的系统调用也象 dos 系统的 int 21h 中断服务, 它把0×80 中断作为总的入口, 然后转到保存在 sys_call_table 表中的各种中断服务例程的入口地址 , 形成各种不同的中断服务;

由以上源代码分析可知, 要增加一个系统调用就必须在 sys_call_table 表中增加一项 , 并在其中保存好自己的系统服务例程的入口地址,然后重新编译内核,当然,系统服务例程是必不可少的。

由此可知在此版linux内核源程序中,与系统调用相关的源程序文件就包括以下这些:

1.arch/i386/boot/bootsect.S

2.arch/i386/Kernel/setup.S

3.arch/i386/boot/compressed/head.S

4.arch/i386/kernel/head.S

5.init/main.c

6.arch/i386/kernel/traps.c

7.arch/i386/kernel/entry.S

8.arch/i386/kernel/irq.h

9.include/asm-386/unistd.h

当然,这只是涉及到的几个主要文件。而事实上,增加系统调用真正要修改文件只有include/asm-386/unistd.h和arch/i386/kernel/entry.S两个;

【三】 对内核源码的修改:

1.在kernel/sys.c中增加系统服务例程如下:

asmlinkage int sys_addtotal(int numdata)

{

int i=0,enddata=0;

while(i<=numdata)

enddata+=i++;

return enddata;

}

该函数有一个 int 型入口参数 numdata , 并返回从 0 到 numdata 的累加值; 当然也可以把系统服务例程放在一个自己定义的文件或其他文件中,只是要在相应文件中作必要的说明;

2.把 asmlinkage int sys_addtotal( int) 的入口地址加到sys_call_table表中:

arch/i386/kernel/entry.S 中的最后几行源代码修改前为:

… …

.long SYMBOL_NAME(sys_sendfile)

.long SYMBOL_NAME(sys_ni_syscall) /* streams1 */

.long SYMBOL_NAME(sys_ni_syscall) /* streams2 */

.long SYMBOL_NAME(sys_vfork) /* 190 */

.rept NR_syscalls-190

.long SYMBOL_NAME(sys_ni_syscall)

.endr

修改后为: … …

.long SYMBOL_NAME(sys_sendfile)

.long SYMBOL_NAME(sys_ni_syscall) /* streams1 */

.long SYMBOL_NAME(sys_ni_syscall) /* streams2 */

.long SYMBOL_NAME(sys_vfork) /* 190 */

/* add by I */

.long SYMBOL_NAME(sys_addtotal)

.rept NR_syscalls-191

.long SYMBOL_NAME(sys_ni_syscall)

.endr

3. 把增加的 sys_call_table 表项所对应的向量,在include/asm-386/unistd.h 中进行必要申明,以供用户进程和其他系统进程查询或调用:

增加后的部分 /usr/src/linux/include/asm-386/unistd.h 文件如下:

… …

#define __NR_sendfile 187

#define __NR_getpmsg 188

#define __NR_putpmsg 189

#define __NR_vfork 190

/* add by I */

#define __NR_addtotal 191

4.测试程序(test.c)如下:

#include

#include

_syscall1(int,addtotal,int, num)

main()

{

int i,j;

  do

printf(“Please input a number\n”);

while(scanf(“%d”,&i)==EOF);

if((j=addtotal(i))==-1)

printf(“Error occurred in syscall-addtotal();\n”);

printf(“Total from 0 to %d is %d \n”,i,j);

}

对修改后的新的内核进行编译,并引导它作为新的操作系统,运行几个程序后可以发现一切正常;在新的系统下对测试程序进行编译(*注:由于原内核并未提供此系统调用,所以只有在编译后的新内核下,此测试程序才能可能被编译通过),运行情况如下:

$gcc -o test test.c

$./test

Please input a number

36

Total from 0 to 36 is 666

可见,修改成功;

而且,对相关源码的进一步分析可知,在此版本的内核中,从/usr/src/linux/arch/i386/kernel/entry.S

文件中对 sys_call_table 表的设置可以看出,有好几个系统调用的服务例程都是定义在/usr/src/linux/kernel/sys.c 中的同一个函数:

asmlinkage int sys_ni_syscall(void)

{

return -ENOSYS;

}

例如第188项和第189项就是如此:

… …

.long SYMBOL_NAME(sys_sendfile)

.long SYMBOL_NAME(sys_ni_syscall) /* streams1 */

.long SYMBOL_NAME(sys_ni_syscall) /* streams2 */

.long SYMBOL_NAME(sys_vfork) /* 190 */

… …

而这两项在文件 /usr/src/linux/include/asm-386/unistd.h 中却申明如下:

… …

#define __NR_sendfile 187

#define __NR_getpmsg 188 /* some people actually want streams */

#define __NR_putpmsg 189 /* some people actually want streams */

#define __NR_vfork 190

由此可见,在此版本的内核源代码中,由于asmlinkage int sys_ni_syscall(void) 函数并不进行任何操作,所以包括 getpmsg, putpmsg 在内的好几个系统调用都是不进行任何操作的,即有待扩充的空调用; 但它们却仍然占用着sys_call_table表项,估计这是设计者们为了方便扩充系统调用而安排的; 所以只需增加相应服务例程(如增加服务例程getmsg或putpmsg),就可以达到增加系统调用的作用。

结语:当然对于庞大复杂的 linux 内核而言,一篇文章远远不够,而且与系统调用相关的代码也只是内核中极其微小的一部分;但重要的是方法、掌握好的分析方法;所以上的分析只是起个引导的作用,而正真的分析还有待于读者自己的努力。:)

                                                

2004年06月05日

如果你玩过路由器的话,就知道路由器里面那些很好玩的命令缩写。例如,”sh int” 的意思是 “show interface”。 现在 Windows 2000 也有了类似界面的工具,叫做 netsh。

 
我们在 Windows 2000 的 cmd shell 下,输入 netsh就出来:netsh> 提示符,输入 int ip 就显示:interface ip> 然后输入 dump ,我们就可以看到当前系统的网络配置:

# ———————————-
# Interface IP Configuration
# ———————————-
pushd interface ip

# Interface IP Configuration for “Local Area Connection”
set address name = “Local Area Connection” source = static addr = 192.168.1.168
mask = 255.255.255.0
add address name = “Local Area Connection” addr = 192.1.1.111 mask = 255.255.255.0
set address name = “Local Area Connection” gateway = 192.168.1.100 gwmetric = 1
set dns name = “Local Area Connection” source = static addr = 202.96.209.5
set wins name = “Local Area Connection” source = static addr = none

popd
# End of interface IP configuration

上面介绍的是通过交互方式操作的一种办法。
我们可以直接输入命令:
”netsh interface ip add address “Local Area Connection” 10.0.0.2
255.0.0.0″
来添加 IP 地址。如果不知道语法,不要紧的哦!在提示符下,输入 ? 就可以找到答案了。方便不方便啊?原来微软的东西里面,也有那么一些让人喜欢的玩意儿。可惜,之至者甚少啊!

Windows网络命令行程序

这部分包括:
使用 ipconfig /all 查看配置
使用 ipconfig /renew 刷新配置
使用 ipconfig 管理 DNS 和 DHCP 类别 ID
使用 Ping 测试连接
使用 Arp 解决硬件地址问题
使用 nbtstat 解决 NetBIOS 名称问题
使用 netstat 显示连接统计
使用 tracert 跟踪网络连接
使用 pathping 测试路由器
使用 ipconfig /all 查看配置

发现和解决 TCP/IP 网络问题时,先检查出现问题的计算机上的 TCP/IP 配置。可以使用 ipconfig 命令获得主机配置信息,包括 IP 地址、子网掩码和默认网关。

注意

对于 Windows 95 和 Windows 98 的客户机,请使用 winipcfg 命令而不是 ipconfig 命令。

使用带 /all 选项的 ipconfig 命令时,将给出所有接口的详细配置报告,包括任何已配置的串行端口。使用 ipconfig /all,可以将命令输出重定向到某个文件,并将输出粘贴到其他文档中。也可以用该输出确认网络上每台计算机的 TCP/IP 配置,或者进一步调查 TCP/IP 网络问题。

例如,如果计算机配置的 IP 地址与现有的 IP 地址重复,则子网掩码显示为 0.0.0.0。

下面的范例是 ipconfig /all 命令输出,该计算机配置成使用 DHCP 服务器动态配置TCP/IP,并使用 WINS 和 DNS 服务器解析名称。

Windows 2000 IP Configuration
Node Type.. . . . . . . . : Hybrid
IP Routing Enabled.. . . . : No
WINS Proxy Enabled.. . . . : No
Ethernet adapter Local Area Connection:
Host Name.. . . . . . . . : corp1.microsoft.com
DNS Servers . . . . . . . : 10.1.0.200
Description. . . . . . . : 3Com 3C90x Ethernet Adapter
Physical Address. . . . . : 00-60-08-3E-46-07
DHCP Enabled.. . . . . . . : Yes
Autoconfiguration Enabled.: Yes
IP Address. . . . . . . . . : 192.168.0.112
Subnet Mask. . . . . . . . : 255.255.0.0
Default Gateway. . . . . . : 192.168.0.1
DHCP Server. . . . . . . . : 10.1.0.50
Primary WINS Server. . . . : 10.1.0.101
Secondary WINS Server. . . : 10.1.0.102
Lease Obtained.. . . . . . : Wednesday, September 02, 1998 10:32:13 AM
Lease Expires.. . . . . . : Friday, September 18, 1998 10:32:13 AM

如果 TCP/IP 配置没有问题,下一步测试能够连接到 TCP/IP 网络上的其他主机。

使用 ipconfig /renew 刷新配置

解决 TCP/IP 网络问题时,先检查遇到问题的计算机上的 TCP/IP 配置。如果计算机启用 DHCP 并使用 DHCP 服务器获得配置,请使用 ipconfig /renew 命令开始刷新租约。
使用 ipconfig /renew 时,使用 DHCP 的计算机上的所有网卡(除了那些手动配置的适配器)都尽量连接到 DHCP 服务器,更新现有配置或者获得新配置。
也可以使用带 /release 选项的 ipconfig 命令立即释放主机的当前 DHCP 配置。有关 DHCP 和租用过程的详细信息,请参阅客户机如何获得配置。

注意

对于启用 DHCP 的 Windows 95 和 Windows 98 客户,请使用 winipcfg 命令的 release 和 renew 选项,而不是 ipconfig /release 和 ipconfig /renew 命令,手动释放或更新客户的 IP 配置租约。

使用 ipconfig 管理 DNS 和 DHCP 类别 ID 也可以使用 ipconfig 命令:
显示或重置 DNS 缓存。详细信息,请参阅使用 ipconfig 查看或重置客户解析程序缓存。

刷新已注册的 DNS 名称。详细信息,请参阅使用 ipconfig 更新 DNS 客户注册。

显示适配器的 DHCP 类别 ID。详细信息,请参阅显示客户机上的 DHCP 类别 ID 信息。

设置适配器的 DHCP 类别 ID。详细信息,请参阅设置客户机上的 DHCP 类别 ID 信息。

使用 Ping 测试连接

Ping 命令有助于验证 IP 级的连通性。发现和解决问题时,可以使用 Ping 向目标主机名或 IP 地址发送 ICMP 回应请求。需要验证主机能否连接到 TCP/IP 网络和网络资源时,请使用 Ping。也可以使用 Ping 隔离网络硬件问题和不兼容配置。

通常最好先用 Ping 命令验证本地计算机和网络主机之间的路由是否存在,以及要连接的网络主机的 IP 地址。Ping 目标主机的 IP 地址看它是否响应,如下:

ping IP_address

使用 Ping 时应该执行以下步骤:
Ping 环回地址验证是否在本地计算机上安装 TCP/IP 以及配置是否正确。
ping 127.0.0.1

Ping 本地计算机的 IP 地址验证是否正确地添加到网络。
ping IP_address_of_local_host

Ping 默认网关的 IP 地址验证默认网关是否运行以及能否与本地网络上的本地主机通讯。
ping IP_address_of_default_gateway

Ping 远程主机的 IP 地址验证能否通过路由器通讯。
ping IP_address_of_remote_host

Ping 命令用 Windows 套接字样式的名称解析将计算机名解析成 IP 地址,所以如果用地址成功,但是用名称 Ping 失败,则问题出在地址或名称解析上,而不是网络连通性的问题。详细信息,请参阅使用 Arp 解决硬件地址问题。

如果在任何点上都无法成功地使用 Ping,请确认:

安装和配置 TCP/IP 之后重新启动计算机。

“Internet 协议 (TCP/IP) 属性”对话框“常规”选项卡上的本地计算机的 IP 地址有效而且正确。

用 IP 路由,并且路由器之间的链路是可用的。

您可以使用 Ping 命令的不同选项来指定要使用的数据包大小、要发送多少数据包、是否记录用过的路由、要使用的生存时间 (TTL) 值以及是否设置“不分段”标志。可以键入 ping -? 查看这些选项。

下例说明如何向 IP 地址 172.16.48.10 发送两个 Ping,每个都是 1,450 字节:

C:\>ping -n 2 -l 1450 172.16.48.10
Pinging 172.16.48.10 with 1450 bytes of data:
Reply from 172.16.48.10:bytes=1450 time<10ms TTL=32
Reply from 172.16.48.10:bytes=1450 time<10ms TTL=32

Ping statistics for 157.59.8.1:
Packets:Sent = 2, Received = 2, Lost = 0 (0% loss),
Approximate roundtrip times in milli-seconds:
Minimum = 0ms, Maximum = 10ms, Average = 2ms

默认情况下,在显示“请求超时”之前,Ping 等待 1,000 毫秒(1 秒)的时间让每个响应返回。如果通过 Ping 探测的远程系统经过长时间延迟的链路,如卫星链路,则响应可能会花更长的时间才能返回。可以使用 -w (等待)选项指定更长时间的超时。
使用 Arp 解决硬件地址问题

“地址解析协议 (ARP)”允许主机查找同一物理网络上的主机的媒体访问控制地址,如果给出后者的 IP 地址。为使 ARP 更加有效,每个计算机缓存 IP 到媒体访问控制地址映射消除重复的 ARP 广播请求。

可以使用 arp 命令查看和修改本地计算机上的 ARP 表项。arp 命令对于查看 ARP 缓存和解决地址解析问题非常有用。

详细信息,请参阅查看“地址解析协议 (ARP)”缓存和添加静态 ARP 缓存项目。

使用 nbtstat 解决 NetBIOS 名称问题

TCP/IP 上的 NetBIOS (NetBT) 将 NetBIOS 名称解析成 IP 地址。TCP/IP 为 NetBIOS 名称解析提供了很多选项,包括本地缓存搜索、WINS 服务器查询、广播、DNS 服务器查询以及 Lmhosts 和主机文件搜索。

Nbtstat 是解决 NetBIOS 名称解析问题的有用工具。可以使用nbtstat 命令删除或更正预加载的项目:

nbtstat -n 显示由服务器或重定向器之类的程序在系统上本地注册的名称。
nbtstat -c 显示 NetBIOS 名称缓存,包含其他计算机的名称对地址映射。
nbtstat -R 清除名称缓存,然后从 Lmhosts 文件重新加载。
nbtstat -RR 释放在 WINS 服务器上注册的 NetBIOS 名称,然后刷新它们的注册。
nbtstat -a name 对 name 指定的计算机执行 NetBIOS 适配器状态命令。适配器状态命令将

返回计算机的本地 NetBIOS 名称表,以及适配器的媒体访问控制地址。

nbtstat -S 列出当前的 NetBIOS 会话及其状态(包括统计),如下例所示:
NetBIOS connection table
Local name State In/out Remote Host Input Output
——————————————————————
CORP1 <00> Connected Out CORPSUP1<20> 6MB 5MB
CORP1 <00> Connected Out CORPPRINT<20> 108KB 116KB
CORP1 <00> Connected Out CORPSRC1<20> 299KB 19KB
CORP1 <00> Connected Out CORPEMAIL1<20> 324KB 19KB
CORP1 <03> Listening

使用 netstat 显示连接统计

可以使用 netstat 命令显示协议统计信息和当前的 TCP/IP 连接。netstat -a 命令将显示所有连接,而 netstat -r 显示路由表和活动连接。netstat -e 命令将显示Ethernet 统计信息,而 netstat -s 显示每个协议的统计信息。如果使用 netstat -n,则不能将地址和端口号转换成名称。下面是 netstat 的输出示例:

C:\>netstat -e
Interface Statistics
Received Sent
Bytes 3995837940 47224622
Unicast packets 120099 131015
Non-unicast packets 7579544 3823
Discards 0 0
Errors 0 0
Unknown protocols 363054211
C:\>netstat -a
Active Connections
Proto Local Address Foreign Address State
TCP CORP1:1572 172.16.48.10:nbsession ESTABLISHED
TCP CORP1:1589 172.16.48.10:nbsession ESTABLISHED
TCP CORP1:1606 172.16.105.245:nbsession ESTABLISHED
TCP CORP1:1632 172.16.48.213:nbsession ESTABLISHED
TCP CORP1:1659 172.16.48.169:nbsession ESTABLISHED
TCP CORP1:1714 172.16.48.203:nbsession ESTABLISHED
TCP CORP1:1719 172.16.48.36:nbsession ESTABLISHED
TCP CORP1:1241 172.16.48.101:nbsession ESTABLISHED
UDP CORP1:1025 *:*
UDP CORP1:snmp *:*
UDP CORP1:nbname *:*
UDP CORP1:nbdatagram *:*
UDP CORP1:nbname *:*
UDP CORP1:nbdatagram *:*
C:\>netstat -s
IP Statistics
Packets Received = 5378528
Received Header Errors = 738854
Received Address Errors = 23150
Datagrams Forwarded = 0
Unknown Protocols Received = 0
Received Packets Discarded = 0
Received Packets Delivered = 4616524
Output Requests = 132702
Routing Discards = 157
Discarded Output Packets = 0
Output Packet No Route = 0
Reassembly Required = 0
Reassembly Successful = 0
Reassembly Failures =
Datagrams Successfully Fragmented = 0
Datagrams Failing Fragmentation = 0
Fragments Created = 0
ICMP Statistics
Received Sent
Messages 693 4
Errors 0 0
Destination Unreachable 685 0
Time Exceeded 0 0
Parameter Problems 0 0
Source Quenches 0 0
Redirects 0 0
Echoes 4 0
Echo Replies 0 4
Timestamps 0 0
Timestamp Replies 0 0
Address Masks 0 0
Address Mask Replies 0 0
TCP Statistics
Active Opens = 597
Passive Opens = 135
Failed Connection Attempts = 107
Reset Connections = 91
Current Connections = 8
Segments Received = 106770
Segments Sent = 118431
Segments Retransmitted = 461
UDP Statistics
Datagrams Received = 4157136
No Ports = 351928
Receive Errors = 2
Datagrams Sent = 13809
使用 tracert 跟踪网络连接

Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据报访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。

Tracert 工作原理

通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert 诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。

Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在Tracert 实用程序中看不到。

Tracert 命令按顺序打印出返回“ICMP 已超时”消息的路径中的近端路由器接口列表。如果使用 -d 选项,则Tracert 实用程序不在每个 IP 地址上查询 DNS。

在下例中,数据包必须通过两个路由器(10.0.0.1 和 192.168.0.1)才能到达主机172.16.0.99。主机的默认网关是 10.0.0.1,192.168.0.0 网络上的路由器的 IP 地 址是 192.168.0.1。

C:\>tracert 172.16.0.99 -d
Tracing route to 172.16.0.99 over a maximum of 30 hops
1 2s 3s 2s 10,0.0,1
2 75 ms 83 ms 88 ms 192.168.0.1
3 73 ms 79 ms 93 ms 172.16.0.99
Trace complete.

用 tracert 解决问题

可以使用 tracert 命令确定数据包在网络上的停止位置。下例中,默认网关确定 192.168.10.99 主机没有有效路径。这可能是路由器配置的问题,或者是 192.168.10.0 网络不存在(错误的 IP 地址)。

C:\>tracert 192.168.10.99
Tracing route to 192.168.10.99 over a maximum of 30 hops
1 10.0.0.1 reportsestination net unreachable.
Trace complete.

Tracert 实用程序对于解决大网络问题非常有用,此时可以采取几条路径到达同一个点。

Tracert 命令行选项

Tracert 命令支持多种选项,如下表所示。
tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name

选项 描述
-d 指定不将 IP 地址解析到主机名称。
-h maximum_hops 指定跃点数以跟踪到称为 target_name 的主机的路由。
-j host-list 指定 Tracert 实用程序数据包所采用路径中的路由器接口列表。
-w timeout 等待 timeout 为每次回复所指定的毫秒数。
target_name 目标主机的名称或 IP 地址。
详细信息,请参阅使用 tracert 命令跟踪路径。
使用 pathping 测试路由器

pathping 命令是一个路由跟踪工具,它将 ping 和 tracert 命令的功能和这两个工具所不提供的其他信息结合起来。pathping 命令在一段时间内将数据包发送到到达最终目标的路径上的每个路由器,然后基于数据包的计算机结果从每个跃点返回。由于命令显示数据包在任何给定路由器或链接上丢失的程度,因此可以很容易地确定可能导致网络问题的路由器或链接。某些选项是可用的,如下表所示。

 

000 

默认的跃点数是 30,并且超时前的默认等待时间是 3 秒。默认时间是 250 毫秒,并且沿着路径对每个路由器进行查询的次数是 100。

以下是典型的 pathping 报告。跃点列表后所编辑的统计信息表明在每个独立路由器上数据包丢失的情况。

D:\>pathping -n msw
Tracing route to msw [7.54.1.196]
over a maximum of 30 hops:
0 172.16.87.35
1 172.16.87.218
2 192.68.52.1
3 192.68.80.1
4 7.54.247.14
5 7.54.1.196
Computing statistics for 125 seconds…
Source to Here This Node/Link
Hop RTT Lost/Sent = Pct Lost/Sent = Pct Address
0 172.16.87.35
0/ 100 = 0% |
1 41ms 0/ 100 = 0% 0/ 100 = 0% 172.16.87.218
13/ 100 = 13% |
2 22ms 16/ 100 = 16% 3/ 100 = 3% 192.68.52.1
0/ 100 = 0% |
3 24ms 13/ 100 = 13% 0/ 100 = 0% 192.68.80.1
0/ 100 = 0% |
4 21ms 14/ 100 = 14% 1/ 100 = 1% 10.54.247.14
0/ 100 = 0% |
5 24ms 13/ 100 = 13% 0/ 100 = 0% 10.54.1.196
Trace complete.

当运行 pathping 时,在测试问题时首先查看路由的结果。此路径与 tracert 命令所显示的路径相同。然后 pathping 命令对下一个 125 毫秒显示忙消息(此时间根据跃点计数变化)。在此期间,pathping 从以前列出的所有路由器和它们之间的链接之间收集信息。在此期间结束时,它显示测试结果。

最右边的两栏 This Node/Link Lost/Sent=Pct 和 Address 包含的信息最有用。172.16.87.218(跃点 1)和 192.68.52.1(跃点 2)丢失 13% 的数据包。 所有其他链接工作正常。在跃点 2 和 4 中的路由器也丢失寻址到它们的数据包(如 This Node /Link 栏中所示),但是该丢失不会影响转发的路径。

对链接显示的丢失率(在最右边的栏中标记为 |)表明沿路径转发丢失的数据包。该丢失表明链接阻塞。对路由器显示的丢失率(通过最右边栏中的 IP 地址显示)表明这些路由器的 CPU 可能超负荷运行。这些阻塞的路由器可能也是端对端问题的一个因素,尤其是在软件路由器转发数据包时。

 

 

 

 

文章作者: MSA2000      文章整理:sasa