﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Todd-随笔分类-webserver</title><link>http://www.blogjava.net/Todd/category/42530.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 06 Feb 2012 21:45:45 GMT</lastBuildDate><pubDate>Mon, 06 Feb 2012 21:45:45 GMT</pubDate><ttl>60</ttl><item><title>[转]linux下抓包命令--tcpdump的使用</title><link>http://www.blogjava.net/Todd/archive/2012/02/06/369460.html</link><dc:creator>Todd</dc:creator><author>Todd</author><pubDate>Mon, 06 Feb 2012 02:38:00 GMT</pubDate><guid>http://www.blogjava.net/Todd/archive/2012/02/06/369460.html</guid><wfw:comment>http://www.blogjava.net/Todd/comments/369460.html</wfw:comment><comments>http://www.blogjava.net/Todd/archive/2012/02/06/369460.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Todd/comments/commentRss/369460.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Todd/services/trackbacks/369460.html</trackback:ping><description><![CDATA[<div><div>例:tcpdump host 172.16.29.40 and port 4600 -X -s 500&nbsp;</div><div></div><div>tcpdump采用命令行方式，它的命令格式为：</div><div>　　tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]</div><div>　　　　　　　　　　[ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]</div><div>　　　　　　　　　　[ -T 类型 ] [ -w 文件名 ] [表达式 ]</div><div></div><div>　　1. tcpdump的选项介绍</div><div>　　　-a 　　　将网络地址和广播地址转变成名字；</div><div>　　　-d 　　　将匹配信息包的代码以人们能够理解的汇编格式给出；</div><div>　　　-dd 　　　将匹配信息包的代码以c语言程序段的格式给出；</div><div>　　　-ddd 　　　将匹配信息包的代码以十进制的形式给出；</div><div>　　　-e 　　　在输出行打印出数据链路层的头部信息；</div><div>　　　-f 　　　将外部的Internet地址以数字的形式打印出来；</div><div>　　　-l 　　　使标准输出变为缓冲行形式；</div><div>　　　-n 　　　不把网络地址转换成名字；</div><div>　　　-t 　　　在输出的每一行不打印时间戳；</div><div>　　　-v 　　　输出一个稍微详细的信息，例如在ip包中可以包括ttl和服务类型的信息；</div><div>　　　-vv 　　　输出详细的报文信息；</div><div>　　　-c 　　　在收到指定的包的数目后，tcpdump就会停止；</div><div>　　　-F 　　　从指定的文件中读取表达式,忽略其它的表达式；</div><div>　　　-i 　　　指定监听的网络接口；</div><div>　　　-r 　　　从指定的文件中读取包(这些包一般通过-w选项产生)；</div><div>　　　-w 　　　直接将包写入文件中，并不分析和打印出来；</div><div>　　　-T 　　　将监听到的包直接解释为指定的类型的报文，常见的类型有rpc （远程过程</div><div>调用）和snmp（简单　　　　　　　网络管理协议；）</div><div></div><div>　　2. tcpdump的表达式介绍</div><div>　　　表达式是一个正则表达式，tcpdump利用它作为过滤报文的条件，如果一个报文满足表</div><div>达式的条件，则这个报文将会被捕获。如果没有给出任何条件，则网络上所有的信息包将会</div><div>被截获。</div><div>　　　在表达式中一般如下几种类型的关键字，一种是关于类型的关键字，主要包括host，</div><div>net，port, 例如 host 210.27.48.2，指明 210.27.48.2是一台主机，net 202.0.0.0 指明</div><div>202.0.0.0是一个网络地址，port 23 指明端口号是23。如果没有指定类型，缺省的类型是</div><div>host.</div><div>　　　第二种是确定传输方向的关键字，主要包括src , dst ,dst or src, dst and src ,</div><div>这些关键字指明了传输的方向。举例说明，src 210.27.48.2 ,指明ip包中源地址是210.27.</div><div>48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0 。如果没有指明方向关键字，则</div><div>缺省是src or dst关键字。</div><div>　　　第三种是协议的关键字，主要包括fddi,ip ,arp,rarp,tcp,udp等类型。Fddi指明是在</div><div>FDDI(分布式光纤数据接口网络)上的特定的网络协议，实际上它是"ether"的别名，fddi和e</div><div>ther具有类似的源地址和目的地址，所以可以将fddi协议包当作ether的包进行处理和分析。</div><div>其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议，则tcpdump将会</div><div>监听所有协议的信息包。</div><div>　　　除了这三种类型的关键字之外，其他重要的关键字如下：gateway, broadcast,less,</div><div>greater,还有三种逻辑运算，取非运算是 'not ' '! ', 与运算是'and','&amp;&amp;';或运算 是'o</div><div>r' ,'||'；</div><div>　　　这些关键字可以组合起来构成强大的组合条件来满足人们的需要，下面举几个例子来</div><div>说明。</div><div>　　　(1)想要截获所有210.27.48.1 的主机收到的和发出的所有的数据包：</div><div>　　　　#tcpdump host 210.27.48.1&nbsp;</div><div>　　　(2) 想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信，使用命令</div><div>：（在命令行中适用　　　括号时，一定要</div><div>　　　　#tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)&nbsp;</div><div>　　　(3) 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包</div><div>，使用命令：</div><div>　　　　#tcpdump ip host 210.27.48.1 and ! 210.27.48.2</div><div>　　　(4)如果想要获取主机210.27.48.1接收或发出的telnet包，使用如下命令：</div><div>　　　　#tcpdump tcp port 23 host 210.27.48.1&nbsp;</div><div></div><div>　　3. tcpdump 的输出结果介绍</div><div>　　　下面我们介绍几种典型的tcpdump命令的输出信息</div><div>　　　(1) 数据链路层头信息</div><div>　　　使用命令#tcpdump --e host ice</div><div>　　　ice 是一台装有linux的主机，她的MAC地址是0：90：27：58：AF：1A</div><div>　　　H219是一台装有SOLARIC的SUN工作站，它的MAC地址是8：0：20：79：5B：46；上一条</div><div>命令的输出结果如下所示：</div><div>21:50:12.847509 eth0 &lt; 8:0:20:79:5b:46 0:90:27:58:af:1a ip 60: h219.33357 &gt; ice.</div><div>telne</div><div>t 0:0(0) ack 22535 win 8760 (DF)</div><div>　　分析：21：50：12是显示的时间， 847509是ID号，eth0 &lt;表示从网络接口eth0 接受该</div><div>数据包，eth0 &gt;表示从网络接口设备发送数据包, 8:0:20:79:5b:46是主机H219的MAC地址,它</div><div>表明是从源地址H219发来的数据包. 0:90:27:58:af:1a是主机ICE的MAC地址,表示该数据包的</div><div>目的地址是ICE . ip 是表明该数据包是IP数据包,60 是数据包的长度, h219.33357 &gt; ice.</div><div>telnet 表明该数据包是从主机H219的33357端口发往主机ICE的TELNET(23)端口. ack 22535</div><div>表明对序列号是222535的包进行响应. win 8760表明发送窗口的大小是8760.</div><div></div><div>　　(2) ARP包的TCPDUMP输出信息</div><div>　　　使用命令#tcpdump arp&nbsp;</div><div>　　　得到的输出结果是：</div><div>　　22:32:42.802509 eth0 &gt; arp who-has route tell ice (0:90:27:58:af:1a)</div><div>　　22:32:42.802902 eth0 &lt; arp reply route is-at 0:90:27:12:10:66 (0:90:27:58:af</div><div>:1a)</div><div>　　分析: 22:32:42是时间戳, 802509是ID号, eth0 &gt;表明从主机发出该数据包, arp表明是</div><div>ARP请求包, who-has route tell ice表明是主机ICE请求主机ROUTE的MAC地址。 0:90:27:5</div><div>8:af:1a是主机ICE的MAC地址。</div><div></div><div>　　(3) TCP包的输出信息</div><div>　　　用TCPDUMP捕获的TCP包的一般输出信息是：</div><div>　　src &gt; dst: flags data-seqno ack window urgent options</div><div>　　src &gt; dst:表明从源地址到目的地址, flags是TCP包中的标志信息,S 是SYN标志, F (F</div><div>IN), P (PUSH) , R (RST) "." (没有标记); data-seqno是数据包中的数据的顺序号, ack是</div><div>下次期望的顺序号, window是接收缓存的窗口大小, urgent表明数据包中是否有紧急指针.&nbsp;</div><div>Options是选项.</div><div></div><div>　　(4) UDP包的输出信息</div><div>　　　用TCPDUMP捕获的UDP包的一般输出信息是：</div><div>　　route.port1 &gt; ice.port2: udp lenth</div><div>　　UDP十分简单，上面的输出行表明从主机ROUTE的port1端口发出的一个UDP数据包到主机</div><div>ICE的port2端口，类型是UDP， 包的长度是lenth&nbsp;<br />=====================================================<br /><div><div id="appShareTitle" style="word-wrap: break-word; height: 24px; line-height: 24px; font-weight: bold; color: #333333; font-family: arial; background-color: #f4f8fb; ">tcpdump抓包分析详解</div><div id="appShareOpt" style="word-wrap: break-word; text-align: right; margin-bottom: 10px; margin-right: 5px; line-height: 24px; font-family: arial; background-color: #f4f8fb; "></div><div id="app-share-content" style="word-wrap: break-word; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #edf1f4; border-right-color: #edf1f4; border-bottom-color: #edf1f4; border-left-color: #edf1f4; border-image: initial; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f4f8fb; padding-top: 20px; padding-right: 20px; padding-bottom: 20px; padding-left: 20px; color: #9a9a9a; font-size: 12px; font-family: arial; "><div style="word-wrap: break-word; ">說實在的，對於 tcpdump 這個軟體來說，你甚至可以說這個軟體其實就是個駭客軟體， 因為他不但可以分析封包的流向，連封包的內容也可以進行『監聽』， 如果你使用的傳輸資料是明碼的話，不得了，在 router 上面就可能被人家監聽走了！ 很可怕吶！所以，我們也要來瞭解一下這個軟體啊！(註：這個 tcpdump 必須使用 root 的身份執行)<br /><table fck__showtableborders"="" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; "><tbody><tr><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><pre>[root@linux ~]# <strong>tcpdump [-nn] [-i 介面] [-w 儲存檔名] [-c 次數] [-Ae]</strong>                 <strong>        [-qX] [-r 檔案] [所欲擷取的資料內容]</strong> 參數： -nn：直接以 IP 及 port number 顯示，而非主機名與服務名稱 -i ：後面接要『監聽』的網路介面，例如 eth0, lo, ppp0 等等的介面； -w ：如果你要將監聽所得的封包資料儲存下來，用這個參數就對了！後面接檔名 -c ：監聽的封包數，如果沒有這個參數， tcpdump 會持續不斷的監聽，      直到使用者輸入 [ctrl]-c 為止。 -A ：封包的內容以 ASCII 顯示，通常用來捉取 WWW 的網頁封包資料。 -e ：使用資料連接層 (OSI 第二層) 的 MAC 封包資料來顯示； -q ：僅列出較為簡短的封包資訊，每一行的內容比較精簡 -X ：可以列出十六進位 (hex) 以及 ASCII 的封包內容，對於監聽封包內容很有用 -r ：從後面接的檔案將封包資料讀出來。那個『檔案』是已經存在的檔案，      並且這個『檔案』是由 -w 所製作出來的。 所欲擷取的資料內容：我們可以專門針對某些通訊協定或者是 IP 來源進行封包擷取，      那就可以簡化輸出的結果，並取得最有用的資訊。常見的表示方法有：      'host foo', 'host 127.0.0.1' ：針對單部主機來進行封包擷取      'net 192.168' ：針對某個網域來進行封包的擷取；      'src host 127.0.0.1' 'dst net 192.168'：同時加上來源(src)或目標(dst)限制      'tcp port 21'：還可以針對通訊協定偵測，如 tcp, udp, arp, ether 等      還可以利用 and 與 or 來進行封包資料的整合顯示呢！  範例一：以 IP 與 port number 捉下 eth0 這個網路卡上的封包，持續 3 秒 [root@linux ~]# <strong>tcpdump -i eth0 -nn</strong> tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 01:33:40.41 IP 192.168.1.100.22 &gt; 192.168.1.11.1190: P 116:232(116) ack 1 win 9648 01:33:40.41 IP 192.168.1.100.22 &gt; 192.168.1.11.1190: P 232:364(132) ack 1 win 9648 &lt;==按下 [ctrl]-c 之後結束 6680 packets captured              &lt;==捉下來的封包數量 14250 packets received by filter   &lt;==由過濾所得的總封包數量 7512 packets dropped by kernel     &lt;==被核心所丟棄的封包</pre></td></tr></tbody></table>如果你是第一次看 tcpdump 的 man page 時，肯定一個頭兩個大，因為 tcpdump 幾乎都是分析封包的表頭資料，使用者如果沒有簡易的網路封包基礎，要看懂粉難吶！ 所以，至少您得要回到<a style="color: #1463c4; text-decoration: none; ">網路基礎</a>裡面去將 TCP 封包的表頭資料理解理解才好啊！ ^_^！至於那個範例一所產生的輸出範例中，我們可以約略區分為數個欄位， 我們以範例一當中那個特殊字體行來說明一下：<br /><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: none; list-style-position: initial; list-style-image: initial; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: initial; list-style-position: initial; list-style-type: none; ">01:33:40.41：這個是此封包被擷取的時間，『時:分:秒』的單位；</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: initial; list-style-position: initial; list-style-type: none; ">IP：透過的通訊協定是 IP ；</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: initial; list-style-position: initial; list-style-type: none; ">192.168.1.100.22 &gt;&nbsp;：傳送端是 192.168.1.100 這個 IP，而傳送的 port number 為 22，您必須要瞭解的是，那個大於 (&gt;) 的符號指的是封包的傳輸方向喔！</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: initial; list-style-position: initial; list-style-type: none; ">192.168.1.11.1190：接收端的 IP 是 192.168.1.11， 且該主機開啟 port 1190 來接收；</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: initial; list-style-position: initial; list-style-type: none; ">P 116:232(116)：這個封包帶有 PUSH 的資料傳輸標誌， 且傳輸的資料為整體資料的 116~232 byte，所以這個封包帶有 116 bytes 的資料量；</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: initial; list-style-position: initial; list-style-type: none; ">ack 1 win 9648：ACK與 Window size 的相關資料。</li></ul>最簡單的說法，就是該封包是由 192.168.1.100 傳到 192.168.1.11，透過的 port 是由 22 到 1190 ， 且帶有 116 bytes 的資料量，使用的是 PUSH 的旗標，而不是 SYN 之類的主動連線標誌。 呵呵！不容易看的懂吧！所以說，上頭才講請務必到&nbsp;<a style="color: #1463c4; text-decoration: none; ">TCP 表頭資料</a>的部分去瞧一瞧的啊！<br /><br />再來，一個網路狀態很忙的主機上面，你想要取得某部主機對你連線的封包資料而已時， 使用 tcpdump 配合管線命令與正規表示法也可以，不過，畢竟不好捉取！ 我們可以透過 tcpdump 的表示法功能，就能夠輕易的將所需要的資料獨立的取出來。 在上面的範例一當中，我們僅針對 eth0 做監聽，所以整個 eth0 介面上面的資料都會被顯示到螢幕上， 不好分析啊！那麼我們可以簡化嗎？例如只取出 port 21 的連線封包，可以這樣做：<br /><table fck__showtableborders"="" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; "><tbody><tr><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><pre>[root@linux ~]# <strong>tcpdump -i eth0 -nn port 21</strong> tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 01:54:37.96 IP 192.168.1.11.1240 &gt; 192.168.1.100.21: . ack 1 win 65535 01:54:37.96 IP 192.168.1.100.21 &gt; 192.168.1.11.1240: P 1:21(20) ack 1 win 5840 01:54:38.12 IP 192.168.1.11.1240 &gt; 192.168.1.100.21: . ack 21 win 65515 01:54:42.79 IP 192.168.1.11.1240 &gt; 192.168.1.100.21: P 1:17(16) ack 21 win 65515 01:54:42.79 IP 192.168.1.100.21 &gt; 192.168.1.11.1240: . ack 17 win 5840 01:54:42.79 IP 192.168.1.100.21 &gt; 192.168.1.11.1240: P 21:55(34) ack 17 win 5840</pre></td></tr></tbody></table>瞧！這樣就僅提出 port 21 的資訊而已，且仔細看的話，你會發現封包的傳遞都是雙向的， client 端發出『要求』而 server 端則予以『回應』，所以，當然是有去有回啊！ 而我們也就可以經過這個封包的流向來瞭解到封包運作的過程。 舉例來說：<ol style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: none; list-style-position: initial; list-style-image: initial; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: none; list-style-position: outside; list-style-type: none; ">我們先在一個終端機視窗輸入『 tcpdump -i lo -nn 』 的監聽，</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: none; list-style-position: outside; list-style-type: none; ">再另開一個終端機視窗來對本機 (127.0.0.1) 登入『ssh localhost』</li></ol>那麼輸出的結果會是如何？<br /><table fck__showtableborders"="" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; "><tbody><tr><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><pre>[root@linux ~]# <strong>tcpdump -i lo -nn</strong>  1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode  2 listening on lo, link-type EN10MB (Ethernet), capture size 96 bytes  3 11:02:54.253777 IP 127.0.0.1.32936 &gt; 127.0.0.1.22: S 933696132:933696132(0)     win 32767 &lt;mss 16396,sackOK,timestamp 236681316 0,nop,wscale 2&gt;  4 11:02:54.253831 IP 127.0.0.1.22 &gt; 127.0.0.1.32936: S 920046702:920046702(0)     ack 933696133 win 32767 &lt;mss 16396,sackOK,timestamp 236681316 236681316,nop,    wscale 2&gt;  5 11:02:54.253871 IP 127.0.0.1.32936 &gt; 127.0.0.1.22: . ack 1 win 8192 &lt;nop,    nop,timestamp 236681316 236681316&gt;  6 11:02:54.272124 IP 127.0.0.1.22 &gt; 127.0.0.1.32936: P 1:23(22) ack 1 win 8192     &lt;nop,nop,timestamp 236681334 236681316&gt;  7 11:02:54.272375 IP 127.0.0.1.32936 &gt; 127.0.0.1.22: . ack 23 win 8192 &lt;nop,    nop,timestamp 236681334 236681334&gt;</pre></td></tr></tbody></table>上表顯示的頭兩行是 tcpdump 的基本說明，然後：<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: none; list-style-position: initial; list-style-image: initial; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: initial; list-style-position: initial; list-style-type: none; ">第 3 行顯示的是『來自 client 端，帶有 SYN 主動連線的封包』，</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: initial; list-style-position: initial; list-style-type: none; ">第 4 行顯示的是『來自 server 端，除了回應 client 端之外(ACK)，還帶有 SYN 主動連線的標誌；</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: initial; list-style-position: initial; list-style-type: none; ">第 5 行則顯示 client 端回應 server 確定連線建立 (ACK)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: initial; list-style-position: initial; list-style-type: none; ">第 6 行以後則開始進入資料傳輸的步驟。</li></ul>從第 3-5 行的流程來看，熟不熟悉啊？沒錯！那就是&nbsp;<a style="color: #1463c4; text-decoration: none; ">三向交握</a>&nbsp;的基礎流程啦！夠有趣吧！ 不過 tcpdump 之所以被稱為駭客軟體之一可不止上頭介紹的功能吶！ 上面介紹的功能可以用來作為我們主機的封包連線與傳輸的流程分析， 這將有助於我們瞭解到封包的運作，同時瞭解到主機的防火牆設定規則是否有需要修訂的地方。<br /><br />更神奇的使用要來啦！如果我們使用 tcpdump 在 router 上面監聽『明碼』的傳輸資料時， 例如 FTP 傳輸協定，你覺得會發生什麼問題呢？ 我們先在主機端下達『 tcpdump -i lo port 21 -nn -X 』然後再以 ftp 登入本機，並輸入帳號與密碼， 結果你就可以發現如下的狀況：<br /><table fck__showtableborders"="" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; "><tbody><tr><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><pre>[root@linux ~]# <strong>tcpdump -i lo -nn -X 'port 21'</strong>     0x0000:  4500 0048 2a28 4000 4006 1286 7f00 0001  E..H*(@.@.......     0x0010:  7f00 0001 0015 80ab 8355 2149 835c d825  .........U!I.\.%     0x0020:  8018 2000 fe3c 0000 0101 080a 0e2e 0b67  .....&lt;.........g     0x0030:  0e2e 0b61 3232 3020 2876 7346 5450 6420  ...a220.(vsFTPd.     0x0040:  322e 302e 3129 0d0a                      2.0.1)..      0x0000:  4510 0041 d34b 4000 4006 6959 7f00 0001  E..A.K@.@.iY....     0x0010:  7f00 0001 80ab 0015 835c d825 8355 215d  .........\.%.U!]     0x0020:  8018 2000 fe35 0000 0101 080a 0e2e 1b37  .....5.........7     0x0030:  0e2e 0b67 5553 4552 2064 6d74 7361 690d  ...gUSER.dmtsai.     0x0040:  0a                                       .      0x0000:  4510 004a d34f 4000 4006 694c 7f00 0001  E..J.O@.@.iL....     0x0010:  7f00 0001 80ab 0015 835c d832 8355 217f  .........\.2.U!.     0x0020:  8018 2000 fe3e 0000 0101 080a 0e2e 3227  .....&gt;........2'     0x0030:  0e2e 1b38 5041 5353 206d 7970 6173 7377  ...8PASS.mypassw     0x0040:  6f72 6469 7379 6f75 0d0a                 ordisyou..</pre></td></tr></tbody></table>上面的輸出結果已經被簡化過了，你必須要自行在你的輸出結果當中搜尋相關的字串才行。 從上面輸出結果的特殊字體中，我們可以發現『該 FTP 軟體使用的是 vsftpd ，並且使用者輸入 dmtsai 這個帳號名稱，且密碼是 mypasswordisyou』 嘿嘿！你說可不可怕啊！如果使用的是明碼的方式來傳輸你的網路資料？ 所以我們才常常在講啊，網路是很不安全低！<br /><br />另外你得瞭解，為了讓網路介面可以讓 tcpdump 監聽，所以執行 tcpdump 時網路介面會啟動在 『錯亂模式 (promiscuous)』，所以你會在 /var/log/messages 裡面看到很多的警告訊息， 通知你說你的網路卡被設定成為錯亂模式！別擔心，那是正常的。 至於更多的應用，請參考 man tcpdump 囉！<br /><br /><table cellspacing="0" cellpadding="5" width="90%" border="1" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; "><tbody><tr><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">例題：如何使用 tcpdump 監聽 (1)來自 eth0 介面卡且 (2)通訊協定為 port 22 ，(3)目標來源為 192.168.1.100 的封包資料？<br /><br />答：<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: none; list-style-position: initial; list-style-image: initial; ">tcpdump -i eth0 -nn 'port 22 and src host 192.168.1.100'</ul></td></tr></tbody></table></div><hr /><a name="ethereal" style="color: rgb(20, 99, 196); text-decoration: none; "></a><img height="23" alt="小標題的圖示" width="16" align="middle" src="http://linux.vbird.org/images/penguin-s.gif" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; " /><strong>ethereal<br /></strong><div style="word-wrap: break-word; ">除了 tcpdump 這個軟體之外，其實你還可以使用 ethereal 這個好用的網路流量分析軟體吶！ ethereal 分為文字介面與圖形介面，文字介面的用法與 tcpdump 相當的類似，不過他的指令名稱為 tethereal 就是了。因為用法差不多，所以建議您直接使用 man tethereal 查閱吧！ 在 CentOS 上原本就有 ethereal 了，所以請拿出光碟來安裝即可喔！ 需要安裝 ethereal 與 ethereal-gnome 才行吶！<br /><br />啟動的方法很簡單，你必須要在 X Window 底下，先開啟一個終端機，然後直接輸入 ethereal 後， 就會出現如下的畫面了：<br /><br /><center><img title="ethereal 使用範例圖" alt="ethereal 使用範例圖" src="http://linux.vbird.org/linux_server/0140networkcommand/ethereal_1.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; " /><br />圖五、ethereal 使用範例圖</center><br />簡單的作法，你可以點選如上圖顯示的那個按鈕，會出現挑選監聽的介面視窗，如下所示：<br /><br /><center><img title="ethereal 使用範例圖" alt="ethereal 使用範例圖" src="http://linux.vbird.org/linux_server/0140networkcommand/ethereal_2.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; " /><br />圖六、ethereal 使用範例圖</center><br />你應該選擇要監聽的介面，在這裡因為是測試用的，所以鳥哥使用的是 lo 這個內部介面， 你當然應該要選擇你自己的網路介面才是。然後按下 start 後，就會出現開始偵測的畫面了：<br /><br /><center><img title="ethereal 使用範例圖" alt="ethereal 使用範例圖" src="http://linux.vbird.org/linux_server/0140networkcommand/ethereal_3.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; " /><br />圖七、ethereal 使用範例圖</center><br />在這個畫面當中你可以看到很多類型的封包協定，在等你處理完畢後，就可以按下『stop』結束監聽， 而開始進入如下的封包分析畫面。<br /><br /><center><img title="ethereal 使用範例圖" alt="ethereal 使用範例圖" src="http://linux.vbird.org/linux_server/0140networkcommand/ethereal_4.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; " /><br />圖八、ethereal 使用範例圖</center><br />封包分析畫面共分為三大區塊，如上圖所示，第一區塊主要顯示的是封包的標頭資料， 內容就有點類似 tcpdump 的顯示結果，第二區塊則是詳細的表頭資料， 包括訊框的內容、通訊協定的內容以及 socket pair 等等資訊。 第三區塊則是 16 進位與 ASCII 碼的顯示結果。透過這個 ethereal 您就可以一口氣得到所需要的所有封包內容啦！ 而且還是圖形介面的，很方便吧！透過在第一區塊選擇不同的封包，就能夠查閱每個封包的資料內容囉！</div><hr /><a name="nc" style="color: rgb(20, 99, 196); text-decoration: none; "></a><img height="23" alt="小標題的圖示" width="16" align="middle" src="http://linux.vbird.org/images/penguin-s.gif" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; " /><strong>nc, netcat<br /></strong><div style="word-wrap: break-word; ">這個 nc 可以用來作為某些服務的檢測，因為他可以連接到某個 port 來進行溝通， 此外，還可以自行啟動一個 port 來傾聽其他用戶的連線吶！非常的不錯用！ 如果在編譯的時候給予『GAPING_SECURITY_HOLE』參數的話，嘿嘿！ 這個軟體還可以用來取得用戶端的 bash 哩！可怕吧！我們的 CentOS 比較人性化，並沒有給予上面的參數，所以我們不能夠用來作為駭客軟體～ 但是用來取代 telnet 也是個很棒的功能了！(有的系統將執行檔改名為 netcat 啦！)<br /><table fck__showtableborders"="" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; "><tbody><tr><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><pre>[root@linux ~]# <strong>nc [IP|host] [port]</strong> [root@linux ~]# <strong>nc -l -p [port]</strong> 參數： -l ：作為監聽之用，亦即開啟一個 port 來監聽用戶的連線； -p ：開啟的這個 port number  範例一：連接本地端的 port 25 查閱相關訊息 [root@linux ~]# <strong>nc localhost 25</strong> localhost.localdomain [127.0.0.1] 25 (smtp) open 220 pc.dm.tsai ESMTP Postfix <strong>ehlo localhost</strong> 250-pc.dm.tsai 250-PIPELINING 250-SIZE 40000000 250-ETRN <strong>quit</strong> 221 Bye</pre></td></tr></tbody></table>這個最簡單的功能與 telnet 幾乎一樣吧！可以去檢查某個服務啦！不過，更神奇的在後面， 我們可以建立兩個連線來傳訊喔！舉個例子來說，我們先在 client 端的地方啟動一個 port 來進行傾聽：<br /><table fck__showtableborders"="" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; "><tbody><tr><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><pre>範例二：啟動一個 port 來監聽使用者的連線要求 [root@linux ~]# <strong>nc -l -p 20000</strong> # 啟動一個 port 20000  在主機上，如果此時使用 netstat -tlnp  # 就可以看到系統上多出來一個 port 20000 在傾聽使用者的連線喔！</pre></td></tr></tbody></table>然後在主機端的地方，也利用 nc 來連線到用戶端，並且輸入一些指令看看喔！<br /><table fck__showtableborders"="" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; "><tbody><tr><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><pre>[root@linux ~]# <strong>nc localhost 20000</strong>    &lt;==這裡可以開始輸入字串了！</pre></td></tr></tbody></table>此時，在主機端我們可以打入一些字，你會發現在 client 端會同時出現你輸入的字眼吶！ 如果你同時給予一些額外的參數，例如利用標準輸入與輸出 (stdout, stdin) 的話， 那麼就可以透過這個連線來作很多事情了！ 當然 nc 的功能不只如此，你還可以發現很多的用途喔！ 請自行到您主機內的 /usr/share/doc/nc-1.10/scripts 目錄下看看這些 script ，有幫助的吶！ 不過，如果你需要額外的編譯出含有 GAPING_SECURITY_HOLE 功能， 以使兩端</div></div><div id="appShareUrl" style="word-wrap: break-word; font-size: 12px; color: #999999; margin-top: 10px; border-top-width: 1px; border-top-style: solid; border-top-color: #f4f4f4; font-family: arial; background-color: #f4f8fb; clear: both; ">来自:&nbsp;<a href="http://hi.baidu.com/june2june/blog/item/84a66865ea77acf8f73654ea.html" target="_blank" style="color: #9a9a9a; text-decoration: none; ">http://hi.baidu.com/june2june/blog/item/84a66865ea77acf8f73654ea.html</a></div></div></div></div><img src ="http://www.blogjava.net/Todd/aggbug/369460.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Todd/" target="_blank">Todd</a> 2012-02-06 10:38 <a href="http://www.blogjava.net/Todd/archive/2012/02/06/369460.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DNS 服务器 清除缓存</title><link>http://www.blogjava.net/Todd/archive/2010/06/22/324131.html</link><dc:creator>Todd</dc:creator><author>Todd</author><pubDate>Tue, 22 Jun 2010 03:05:00 GMT</pubDate><guid>http://www.blogjava.net/Todd/archive/2010/06/22/324131.html</guid><wfw:comment>http://www.blogjava.net/Todd/comments/324131.html</wfw:comment><comments>http://www.blogjava.net/Todd/archive/2010/06/22/324131.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Todd/comments/commentRss/324131.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Todd/services/trackbacks/324131.html</trackback:ping><description><![CDATA[DNS 缓存不及时清理会导致解析错误，网页打不开。<br />server:win server 2008<br />1.win 2008 会自启动 dns client ,它会缓存dns的记录，提供了客户端的名字解析与缓存服务；把它停掉;<br />2.利用dns server的 scavenging，在dns服务器上右键-》属性-》高级 自动清理过时记录，设定清理周期即可<br /><br /><img src ="http://www.blogjava.net/Todd/aggbug/324131.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Todd/" target="_blank">Todd</a> 2010-06-22 11:05 <a href="http://www.blogjava.net/Todd/archive/2010/06/22/324131.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>apache resin ngnix 性能比较</title><link>http://www.blogjava.net/Todd/archive/2010/06/15/323590.html</link><dc:creator>Todd</dc:creator><author>Todd</author><pubDate>Mon, 14 Jun 2010 17:56:00 GMT</pubDate><guid>http://www.blogjava.net/Todd/archive/2010/06/15/323590.html</guid><wfw:comment>http://www.blogjava.net/Todd/comments/323590.html</wfw:comment><comments>http://www.blogjava.net/Todd/archive/2010/06/15/323590.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Todd/comments/commentRss/323590.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Todd/services/trackbacks/323590.html</trackback:ping><description><![CDATA[静态页面测试，静态页面包括css,js,img<br />
ab -c 20 -n 30 并发测试（高数值的也测过，结论一致）<br />
resin2.17&nbsp; 平均响应时间为0.521ms<br />
nginx-0.7.65 平均响应时间为1.042ms （少许几次小于1.042）<br />
apache2.0 平均响应时间为最低1.042ms<br />
<br />
在resin的官网上也看到文档说明 resin,性能比 apache好，无需和apache搭配。<br />
<br />
有人用apache+resin,只是说apache应该比resin处理html快，不知道他哪来的结论，原来做技术都是想当然的<br />
<br />
总结<br />
静态页处理性能(版本号省略)：<br />
&nbsp;resin &gt; ngnix &gt;apache<br />
<br />
jsp性能的测试细节就不说了，只当是验证了：<br />
&nbsp;resin2 &gt; tomcat6<br />
<br />
&nbsp;<br />
<br />
<br />
<img src ="http://www.blogjava.net/Todd/aggbug/323590.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Todd/" target="_blank">Todd</a> 2010-06-15 01:56 <a href="http://www.blogjava.net/Todd/archive/2010/06/15/323590.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>myeclips resin 出现 a full jdk must be specified 错误</title><link>http://www.blogjava.net/Todd/archive/2010/06/13/323538.html</link><dc:creator>Todd</dc:creator><author>Todd</author><pubDate>Sun, 13 Jun 2010 11:02:00 GMT</pubDate><guid>http://www.blogjava.net/Todd/archive/2010/06/13/323538.html</guid><wfw:comment>http://www.blogjava.net/Todd/comments/323538.html</wfw:comment><comments>http://www.blogjava.net/Todd/archive/2010/06/13/323538.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Todd/comments/commentRss/323538.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Todd/services/trackbacks/323538.html</trackback:ping><description><![CDATA[到window/Preferences/java-&gt;installed jres将JRE路径指向JDK根目录路径，ok
<img src ="http://www.blogjava.net/Todd/aggbug/323538.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Todd/" target="_blank">Todd</a> 2010-06-13 19:02 <a href="http://www.blogjava.net/Todd/archive/2010/06/13/323538.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>win2008server 安全配置</title><link>http://www.blogjava.net/Todd/archive/2010/06/06/322903.html</link><dc:creator>Todd</dc:creator><author>Todd</author><pubDate>Sun, 06 Jun 2010 12:28:00 GMT</pubDate><guid>http://www.blogjava.net/Todd/archive/2010/06/06/322903.html</guid><wfw:comment>http://www.blogjava.net/Todd/comments/322903.html</wfw:comment><comments>http://www.blogjava.net/Todd/archive/2010/06/06/322903.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Todd/comments/commentRss/322903.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Todd/services/trackbacks/322903.html</trackback:ping><description><![CDATA[【转】系统安装　 <br />
分区： <br />
服务器的硬盘是320Ｇ，分成了4个区，C盘做系统盘（30G），D盘做数据库和软件盘（50G），E盘做网站目录（150G），F盘做备份盘（90G），以NTFS格式对4个区进行格式化。 <br />
<br />
安装系统： <br />
启动服务器，设置BIOS为光盘启动，重启，插入Windows2008R2安装盘至光驱中，根据提示安装操作系统。 <br />
<br />
设置登录时不弹出&#8220;管理您的服务器&#8221;窗口： <br />
启动计算机，弹出&#8220;管理您的服务器&#8221;窗口，勾选窗口左下方的&#8220;登录时不要显示此页&#8221;。 <br />
<br />
启动自动更新： <br />
选择初始配置任务--启动自动更新和反馈--启动自动更新和反馈。 <br />
<br />
<br />
下载并安装更新： <br />
选择初始配置任务--下载并安装更新--更改设置--重要更新--选择下载更新，但是让我选择是否安装更新--确定 <br />
<br />
修改计算机名： <br />
选择初始配置任务--提供计算机名和域--更改--输入计算机名--确定--重启 <br />
<br />
安装驱动： <br />
系统安装更新完毕，进入系统，按照主板-显卡-声卡-网卡-其他设备的顺序安装各类驱动程序。 <br />
<br />
安装WEB服务器： <br />
01.进入服务器管理器 <br />
02.选择角色，添加角色 <br />
03选择WEB服务器，下一步 <br />
04.选择除FTP服务器外的所有选项，下一步 <br />
05.安装 <br />
<br />
安装.net　3.5功能： <br />
01.进入服务器管理器 <br />
02.选择功能，添加功能 <br />
03.选择.net　Framework　3.51功能，选择Windows　进程激活服务，选择XPS查看器 <br />
04.下一步，安装 <br />
<br />
安装更新： <br />
点击右下角更新图标，选择更新，安装更新，重启计算机。 <br />
<br />
启用父路径 <br />
打开Internet　信息服务(IIS)管理器，选择本地服务器，选择ASP，选择启用父路径，将False改为True。 <br />
<br />
远程访问服务 <br />
一.启动远程访问服务 <br />
01.选择服务器管理器--启用远程桌面 <br />
02.选择允许运行任意版本远程桌面的计算机连接(较不安全)。备注：方便多种版本Windows远程管理服务器。 <br />
03.确定 <br />
二.修改远程访问服务端口 <br />
01.在开始--运行菜单里,输入regedit,进入注册表编辑,按下面的路径进入修改端口的地方 <br />
02.HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal　Server\WinStations\RDP-Tcp <br />
03.找到右侧的　"PortNumber"，用十进制方式显示，默认为3389，改为(例如)6666端口 <br />
04.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal　Server\Wds\rdpwd\Tds\tcp <br />
05.找到右侧的　"PortNumber"，用十进制方式显示，默认为3389，改为同上的端口 <br />
06.在控制面板--Windows　防火墙--高级设置--入站规则--新建规则 <br />
07.选择端口--协议和端口--TCP/特定本地端口：同上的端口 <br />
08.下一步，选择允许连接 <br />
09.下一步，选择公用 <br />
10.下一步，名称：远程桌面-新(TCP-In)，描述：用于远程桌面服务的入站规则，以允许RDP通信。[TCP　同上的端口] <br />
11.删除远程桌面(TCP-In)规则 <br />
12.重新启动计算机 <br />
<br />
堵住资源共享隐患 <br />
打开&#8220;本地连接&#8221;界面，选择&#8220;属性&#8221;，左键点击&#8220;Microsoft网络客户端&#8221;，再点击&#8220;卸载&#8221;，在弹出的对话框中&#8220;是&#8221;确认卸载。点击&#8220;Microsoft网络的文件和打印机共享&#8221;，再点击&#8220;卸载&#8221;，在弹出的对话框中选择&#8220;是&#8221;确认卸载。 <br />
<br />
解除Netbios和TCP/IP协议的绑定 <br />
打开&#8220;本地连接&#8221;界面，选择&#8220;属性&#8221;，在弹出的&#8220;属性&#8221;框中双击&#8220;Internet协议版本（TCP/IPV4）&#8221;，点击&#8220;属性&#8221;，再点击&#8220;高级&#8221;—&#8220;WINS&#8221;，选择&#8220;禁用TCP/IP上的NETBIOS&#8221;，点击&#8220;确认&#8221;并关闭本地连接属性。 <br />
<br />
禁止默认共享 <br />
点
击&#8220;开始&#8221;—&#8220;运行&#8221;，输入&#8220;Regedit&#8221;，打开注册表编辑器，打开注册表项&#8220;HKEY_LOCAL_MACHINE\SYSTEM
\CurrentControlSet\Services\lanmanserver\parameters&#8221;，在右边的窗口中新建Dword值，名称设
为AutoShareServer，值设为&#8220;0&#8221;。 <br />
<br />
修改虚拟内存的位置或禁用虚拟内存 <br />
两者选择其一，在内存足够大的情况下可以禁用虚拟内存。如果内存不是非常大，还是修改虚拟内存到硬盘的非系统盘。一般情况下不建议禁用虚拟内存。 <br />
1、
修改虚拟内存的位置：右键点击&#8220;计算机&#8221;，选择&#8220;属性&#8221;—&#8220;高级系统设置&#8221;—&#8220;高级&#8221;—&#8220;设置&#8221;—&#8220;高级&#8221;—&#8220;虚拟内存&#8221;—&#8220;更改&#8221;，取
消勾选&#8220;自动管理所有驱动器的分页文件大小&#8221;，在&#8220;驱动器&#8221;选择框里面选中系统盘，选择&#8220;无分页文件&#8221;，在非系统盘如D盘，选择&#8220;自定义大小&#8221;，输入&#8220;初
始大小&#8221;和&#8220;最大值&#8221;，点击&#8220;设置&#8221;，并确认修改。 <br />
2、　　　　　　　　禁用虚拟内存：右键点击&#8220;计算机&#8221;，选择&#8220;属性&#8221;—&#8220;高级系统设置&#8221;—&#8220;高级&#8221;—&#8220;设置&#8221;—&#8220;高级&#8221;—&#8220;虚拟内存&#8221;—&#8220;更改&#8221;，取消勾选&#8220;自动管理所有驱动器的分页文件大小&#8221;，对所有驱动器都选择&#8220;无分页文件&#8221;，然后点击&#8220;设置&#8221;并确认修改。 <br />
<br />
本地安全策略 <br />
更改管理员账号和来宾账号 <br />
本地策略-安全选项-账户，重命名系统管理员账户，把Administrator改名。重命名来宾账户，把Guest用户改名为Administrator，不过是什么权限都没有的那种，然后打开记事本，一阵乱敲，复制，粘贴到"密码"里去。 <br />
<br />
组策略 <br />
计算机配置—Windows设置—安全设置—本地策略—安全选项 <br />
交互式登陆：不显示最后的用户名（启用） <br />
<br />
关闭自动播放 <br />
控制面板，自动播放，取消勾选，保存。 <br />
点
击&#8220;开始&#8221;—&#8220;运行&#8221;，输入&#8220;Gpedit.msc&#8221;，打开组策略编辑器，依次展开&#8220;计算机配置&#8221;—&#8220;管理模板&#8221;—&#8220;Windows组件&#8221;，在右侧窗口找
到&#8220;自动播放策略&#8221;选项并打开，双击右侧关闭自动播放，在打开的对话框上部选择&#8220;已启用&#8221;，在对话框下部选择&#8220;所有驱动器&#8221;，点击&#8220;确定&#8221;完成设置。 <br />
<br />
备份系统 <br />
至此重启服务器，对刚刚做好的操作系统做一个GHOST。
<img src ="http://www.blogjava.net/Todd/aggbug/322903.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Todd/" target="_blank">Todd</a> 2010-06-06 20:28 <a href="http://www.blogjava.net/Todd/archive/2010/06/06/322903.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>诸多linux,但选一个做服务器</title><link>http://www.blogjava.net/Todd/archive/2010/05/28/322096.html</link><dc:creator>Todd</dc:creator><author>Todd</author><pubDate>Thu, 27 May 2010 16:01:00 GMT</pubDate><guid>http://www.blogjava.net/Todd/archive/2010/05/28/322096.html</guid><wfw:comment>http://www.blogjava.net/Todd/comments/322096.html</wfw:comment><comments>http://www.blogjava.net/Todd/archive/2010/05/28/322096.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Todd/comments/commentRss/322096.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Todd/services/trackbacks/322096.html</trackback:ping><description><![CDATA[<font size="4">RHEL对于我们来说最大的好处是，RedHat有较为完整严格的QA测试过程，可以保证发行版质量；与硬件厂商有紧密的
合作关系，可以保证硬件兼容性；有一批内核Hacker，可以保证新问题不断得到解决。自从用了RHEL，腰不酸了，腿不疼了，一口气能上机房五楼——相
比2003年那时候用的Red Hat Linux6.2/7.3，现在OS层面的问题已经很少让我们头痛了，不是么？<br />
<br />
至于选择服务
器Linux发行版的替代品，我认为，首先得明确我们的标准。当下Linux发行版种类繁多，就像满地奔走的plmm们，你选哪一个做gf比较合适，总得
有个标准才好筛选。若是随便抓一个来，难保将来不会后患无穷。 言归正传，作为理想的服务器操作系统，我们究竟需要它具备哪些素质呢？<br />
<br />
1. 稳定性。服务器上跑应用，OS首先要稳定。考核运维的指标动辄4个9、5个9，应用稳不稳定有QA管着，OS不稳定，SA都得去跳楼。<br />
<br />
2.可靠性。开源软件的下载页面为什么要列出那么多MD5SUM、SHASUM校验码，而微软的下载页面上从来看不到这些东西，就是因为开放了源代码，
万一不小心被人从CVS里钻进去放个后门、rootkit之类的，不加验证地装上之后，服务器集群就成别人的僵尸军团了。<br />
<br />
3. 兼容性。硬件更新换代速度越来越快，双核才刚出来没多久，四核、八核之争又开始锣鼓喧天地热闹上演，如果OS不能保持与新硬件兼容，那么我们也会很痛苦。<br />
<br />
4. 高效率。机架空间越来越少，运维费用越来越高，我们只有榨干服务器的每一点性能，来节约成本。服务器操作系统是否能充分发挥硬件的性能优势，是需要考量的重要指标。<br />
<br />
5.
可持续。如果依赖于某个发行版，而这个发行版的支持公司政策/社区支持不太稳定，要么像RedHat、Novell那样张开血盆大口，随时准备吃人；要么
像某些小发行版，只靠那么几个人，没有严密的组织，高兴起来搞一搞，不高兴就突然散伙，对我们也是很大的威胁。<br />
<br />
依据以上五项标准，我
们就可以对当下流行的十大发行版进行筛选：Ubuntu、Mandriva、Xandros
Desktop均专注于桌面应用；Knoppix和MEPIS Linux是Live
CD；Fedora和Gentoo属于Linux玩家操作系统，稳定性欠佳。因此值得推荐的是：<br />
<br />
1. CentOS：完全基于RHEL相应版本的源码包build而成，Red Hat毕竟受制于GPL，万一哪天开始拿不到二进制ISO了，Red Hat还是要乖乖拿出完整的SRPM，经CentOS组织重新build、测试、打包后，我们便可安心使用。<br />
<br />
2. openSUSE：既有德国人的严谨、又有Novell的赞助，该组织的生态环境较适宜高质量Linux发行版出产，据说腾讯近来也在用这个发行版。<br />
<br />
3. Slackware：最古老的Linux发行版，多年的制作经验，以高稳定性、低bug率著称，腾讯一直在用。<br />
<br />
4. Debian：完全由自由软件组织运作的Linux发布版，只比Slackware年轻一岁，Linus Torvalds推荐。比较稳定，只是更新速度较慢。时下流行的网络虚拟世界Second Life就运行在Debian上。<br />
<br />
5. FreeBSD：虽然不是Linux，但是该发行版组织十分严密，又有Yahoo、新浪等成功使用经验，最近几年来在效率方面有很大的提升，是一款又稳又快的优秀操作系统。</font>
<img src ="http://www.blogjava.net/Todd/aggbug/322096.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Todd/" target="_blank">Todd</a> 2010-05-28 00:01 <a href="http://www.blogjava.net/Todd/archive/2010/05/28/322096.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>raid 名词解释</title><link>http://www.blogjava.net/Todd/archive/2010/05/26/321930.html</link><dc:creator>Todd</dc:creator><author>Todd</author><pubDate>Wed, 26 May 2010 09:06:00 GMT</pubDate><guid>http://www.blogjava.net/Todd/archive/2010/05/26/321930.html</guid><wfw:comment>http://www.blogjava.net/Todd/comments/321930.html</wfw:comment><comments>http://www.blogjava.net/Todd/archive/2010/05/26/321930.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Todd/comments/commentRss/321930.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Todd/services/trackbacks/321930.html</trackback:ping><description><![CDATA[RAID级别为不同冗余类型在逻辑驱动器上的应用。<br />
它可以提高逻辑驱动器的故障容许度和性能，但也会减少逻辑驱动器的可用容量，每个逻辑驱动器都必须指定一个RAID级别。
<p>　　RAID 1，3和5的逻辑驱动器使用了单一的阵列。</p>
<p>　　简单地说，RAID
0是没有冗余，它可由一个或多个物理驱动器组成。</p>
<p>　　RAID 1是镜像冗余，它在一个阵列中需要两个物理驱动器。</p>
<p>　　RAID
3为专用奇偶校验冗余，即所有的冗余数据都存储在一个专用的磁盘上，一个阵列至少由三个物理驱动器组成。</p>
<p>　　RAID
5为分散奇偶校验冗余，即阵列中的冗余数据分散存储在阵列中所有磁盘上，它的一个阵列中至少需要三个物理驱动器。</p>
<p>　　RAID 10，30和50是逻辑驱动器跨越阵列而组成的。<br />
1.什么是磁盘阵列?</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>
磁盘阵列首先是磁盘，一种用来存储数字信息的设备，从用途方面来说，它与装在机箱内的硬盘、随身携带的U盘没什么两样；其次才是阵列，从字面上理解就是多
个组合成一个单元的意思。结合起来我们可以这样理解，磁盘阵列就是由一个硬盘控制器来控制多个硬盘的相互连接，使多个硬盘的读写同步，减少错误，增加效率
和可靠度的技术。当然，这种连接并不是简单的叠加，它涉及到存储系统协议转换、数字信息的分割和重组、存储地址的映射等技术，一般用户不需要了解这些专业
知识，只要把它看成一块特别大的硬盘。</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>
虽然它是由很多硬盘组成的，但表现在操作系统上，它还是一块大容量的硬盘，用户可以把它当一块硬盘使用：分区，格式化，数据拷贝；但其功能却是普通硬盘所
无法比拟的，具体地说有如下几点：</p>
<p>
a，存储的信息量大，比普通硬盘大了许多倍，这种倍数关系由硬盘个数、模式设置所决定。</p>
<p>
b，信息存取的速度快，是一块硬盘读取速度的十倍以上，磁盘阵列本身一般都带有大容量缓存，并且采用预读机制，不仅能有效地提高数据的传输速率，还能减少
硬盘的寻址次数，从而降低硬盘的机械磨损，延长硬盘的使用寿命。</p>
<p>
c，具备数据容错能力和灾难恢复能力，这是磁盘阵列最重要的特点！磁盘阵列采用一种冗余算法来存储数据，当数据受损或其中某块硬盘出现故障时，整个系统还
能正常使用，不受影响，并且当换上新盘时，系统能将数据修复。</p>
<p>
d，可根据数据的重要设置不同的工作模式，分别对应不同的安全级别。</p>
<p>2.什么是RAID?</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>
RAID是Redundant Array of Inexpensive
Disk的缩写，意为廉价冗余磁盘阵列，是磁盘阵列在技术上实现的理论标准，其目的在于减少错误、提高存储系统的性能与可靠度。常用的等级有0、1、3、
5级等。</p>
<p>3.什么是RAID Level 0?</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> RAID
Level 0是Data
Striping(数据分割)技术的实现，它将所有硬盘构成一个磁盘阵列，可以同时对多个硬盘做读写动作，但是不具备备份及容错能力，它价格便宜，硬盘使
用效率最佳，但是可靠度是最差的。</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>
以一个由两个硬盘组成的RAID Level
0磁盘阵列为例，它把数据的第1和2位写入第一个硬盘，第三和第四位写入第二个硬盘&#8230;&#8230;以此类推，所以叫&#8220;数据分割"，因为各盘数据的写入动作是同时做
的，所以它的存储速度可以比单个硬盘快几倍。</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>
但是，这样一来，万一磁盘阵列上有一个硬盘坏了，由于它把数据拆开分别存到了不同的硬盘上，坏了一颗等于中断了数据的完整性，如果没有整个磁盘阵列的备份
磁带的话，所有的数据是无法挽回的。因此，尽管它的效率很高，但是很少有人冒着数据丢失的危险采用这项技术。</p>
<p>4.什么是RAID Level 1?</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> RAID
Level 1使用的是Disk
Mirror(磁盘映射)技术，就是把一个硬盘的内容同步备份复制到另一个硬盘里，所以具备了备份和容错能力，这样做的使用效率不高，但是可靠性高。</p>
<p>5.什么是RAID Level 3?</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> RAID
Level
3采用Byte－interleaving(数据交错存储)技术，硬盘在RAID控制卡下同时动作，并将用于奇偶校验的数据储存到特定硬盘机中，它具备了
容错能力，硬盘的使用效率是安装几个就减掉一个，它的可靠度较佳。</p>
<p>6.什么是RAID Level 5?</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> RAID
Level 5使用的是Disk Striping(硬盘分割)技术，与Level
3的不同之处在于它把奇偶校验数据存放到各个硬盘里，各个硬盘在RAID控制卡的控制下平行动作，有容错能力，跟Level
3一样，它的使用效率也是安装几个再减掉一个。</p>
<p>7.什么是热插拔硬盘?</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>
热插拔硬盘英文名为Hot－Swappable
Disk，在磁盘阵列中，如果使用支持热插拔技术的硬盘，在有一个硬盘坏掉的情况下，服务器可以不用关机，直接抽出坏掉的硬盘，换上新的硬盘。一般的商用
磁盘阵列在硬盘坏掉的时候，会自动鸣叫提示管理员更换硬盘。</p>
<p>补:3、RAID0+1</p>
<p>从RAID
0+1名称上我们便可以看出是RAID0与RAID1的结合体。在我们单独使用RAID
1也会出现类似单独使用RAID
0那样的问题，即在同一时间内只能向一块磁盘写入数据，不能充分利用所有的资源。为了解决这一问题，我们可以在磁盘镜像中建立带区集。因为这种配置方式综
合了带区集和镜像的优势，所以被称为RAID
0+1。把RAID0和RAID1技术结合起来，数据除分布在多个盘上外，每个盘都有其物理镜像盘，提供全冗余能力，允许一个以下磁盘故障，而不影响数据
可用性，并具有快速读/写能力。RAID0+1要在磁盘镜像中建立带区集至少4个硬盘。</p>
由于我们此次只是介绍家用台式机如何组建RAID磁盘阵列功能，目前主流的主板也只是提供这三种组建模式，因此其它诸如服务等的高级RAID模式，这里我
们将不再过多的介绍。
<img src ="http://www.blogjava.net/Todd/aggbug/321930.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Todd/" target="_blank">Todd</a> 2010-05-26 17:06 <a href="http://www.blogjava.net/Todd/archive/2010/05/26/321930.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>resin2.1.17 官方下载地址</title><link>http://www.blogjava.net/Todd/archive/2010/04/23/319165.html</link><dc:creator>Todd</dc:creator><author>Todd</author><pubDate>Thu, 22 Apr 2010 18:34:00 GMT</pubDate><guid>http://www.blogjava.net/Todd/archive/2010/04/23/319165.html</guid><wfw:comment>http://www.blogjava.net/Todd/comments/319165.html</wfw:comment><comments>http://www.blogjava.net/Todd/archive/2010/04/23/319165.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Todd/comments/commentRss/319165.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Todd/services/trackbacks/319165.html</trackback:ping><description><![CDATA[官网上已经没有相关下载链接，但是文件还在，趁早下吧，用3以上版本就得付费买证书了<br />
<br />
Linux：<a href="http://caucho.com/download/resin-2.1.17.tar.gz" target="_top" rel="nofollow">http://caucho.com/download/resin-2.1.17.tar.gz</a><br />
win：<a href="http://caucho.com/download/resin-2.1.17.zip">http://caucho.com/download/resin-2.1.17.zip</a>
<img src ="http://www.blogjava.net/Todd/aggbug/319165.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Todd/" target="_blank">Todd</a> 2010-04-23 02:34 <a href="http://www.blogjava.net/Todd/archive/2010/04/23/319165.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]三大WEB服务器（Apache ,Lighttpd,Nginx）对比分析</title><link>http://www.blogjava.net/Todd/archive/2010/04/23/319164.html</link><dc:creator>Todd</dc:creator><author>Todd</author><pubDate>Thu, 22 Apr 2010 17:07:00 GMT</pubDate><guid>http://www.blogjava.net/Todd/archive/2010/04/23/319164.html</guid><wfw:comment>http://www.blogjava.net/Todd/comments/319164.html</wfw:comment><comments>http://www.blogjava.net/Todd/archive/2010/04/23/319164.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Todd/comments/commentRss/319164.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Todd/services/trackbacks/319164.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一．软件介绍(apache&nbsp; lighttpd&nbsp; nginx)1. lighttpdLighttpd是一个具有非常低的内存开销，cpu占用率低，效能好，以及丰富的模块等特点。lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Ali...&nbsp;&nbsp;<a href='http://www.blogjava.net/Todd/archive/2010/04/23/319164.html'>阅读全文</a><img src ="http://www.blogjava.net/Todd/aggbug/319164.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Todd/" target="_blank">Todd</a> 2010-04-23 01:07 <a href="http://www.blogjava.net/Todd/archive/2010/04/23/319164.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>apache ab 使用</title><link>http://www.blogjava.net/Todd/archive/2010/04/22/319160.html</link><dc:creator>Todd</dc:creator><author>Todd</author><pubDate>Thu, 22 Apr 2010 15:29:00 GMT</pubDate><guid>http://www.blogjava.net/Todd/archive/2010/04/22/319160.html</guid><wfw:comment>http://www.blogjava.net/Todd/comments/319160.html</wfw:comment><comments>http://www.blogjava.net/Todd/archive/2010/04/22/319160.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Todd/comments/commentRss/319160.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Todd/services/trackbacks/319160.html</trackback:ping><description><![CDATA[格式： ./ab [options] [http://]hostname[:port]/path<br />
参数：<br />
&nbsp;&nbsp;&nbsp; -n requests&nbsp;&nbsp;&nbsp;&nbsp; Number of requests to perform<br />
&nbsp;&nbsp;&nbsp; <font color="#ff0000">//在测试会话中所执行的请求个数。默认时，仅执行一个请求</font><br />
&nbsp;&nbsp;&nbsp; -c concurrency Number of multiple requests to make<br />
&nbsp;&nbsp;&nbsp; <font color="#ff0000">//一次产生的请求个数。默认是一次一个。 </font><br />
&nbsp;&nbsp;&nbsp; -t timelimit&nbsp;&nbsp;&nbsp; Seconds to max. wait for responses<br />
&nbsp;&nbsp;&nbsp; <font color="#ff0000">//测试所进行的最大秒数。其内部隐含值是-n 50000。它可以使对服务器的测试限制在一个固定的总时间以内。默认时，没有时间限制。<br />
</font>&nbsp;&nbsp;&nbsp; -p postfile&nbsp;&nbsp;&nbsp;&nbsp; File containing data to POST<br />
&nbsp;&nbsp;&nbsp; <font color="#ff0000">//包含了需要POST的数据的文件. </font><br />
&nbsp;&nbsp;&nbsp; -T content-type Content-type header for POSTing<br />
&nbsp;&nbsp;&nbsp; <font color="#ff0000">//POST数据所使用的Content-type头信息。</font><br />
&nbsp;&nbsp;&nbsp; -v verbosity&nbsp;&nbsp;&nbsp; How much troubleshooting info to print<br />
&nbsp;&nbsp;&nbsp; <font color="#ff0000">//设置显示信息的详细程度 - 4或更大值会显示头信息， 3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。 -V 显示版本号并退出。<br />
</font>&nbsp;&nbsp;&nbsp; -w&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Print out results in HTML tables<br />
&nbsp;&nbsp;&nbsp;<font color="#ff0000"> //以HTML表的格式输出结果。默认时，它是白色背景的两列宽度的一张表。<br />
</font>&nbsp;&nbsp;&nbsp; -i&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Use HEAD instead of GET<br />
&nbsp;&nbsp;<font color="#ff0000"> // 执行HEAD请求，而不是GET。</font><br />
&nbsp;&nbsp;&nbsp; -x attributes&nbsp;&nbsp; String to insert as table attributes<br />
&nbsp;&nbsp;&nbsp; //<br />
&nbsp;&nbsp;&nbsp; -y attributes&nbsp;&nbsp; String to insert as tr attributes<br />
&nbsp;&nbsp;&nbsp; //<br />
&nbsp;&nbsp;&nbsp; -z attributes&nbsp;&nbsp; String to insert as td or th attributes<br />
&nbsp;&nbsp;&nbsp; //<br />
&nbsp;&nbsp;&nbsp; -C attribute&nbsp;&nbsp;&nbsp; Add cookie, eg. 'Apache=1234. (repeatable)<br />
&nbsp;&nbsp;&nbsp; //<font color="#ff0000">-C cookie-name=value 对请求附加一个Cookie:行。 其典型形式是name=value的一个参数对。此参数可以重复。</font><br />
&nbsp;&nbsp;&nbsp; -H attribute&nbsp;&nbsp;&nbsp; Add Arbitrary header line, eg. 'Accept-Encoding: gzip'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Inserted after all normal header lines. (repeatable)<br />
&nbsp;&nbsp;&nbsp; -A attribute&nbsp;&nbsp;&nbsp; Add Basic WWW Authentication, the attributes<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; are a colon separated username and password.<br />
&nbsp;&nbsp;&nbsp; -P attribute&nbsp;&nbsp;&nbsp; Add Basic Proxy Authentication, the attributes<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; are a colon separated username and password.<br />
&nbsp;&nbsp;&nbsp; //<font color="#ff0000">-P proxy-auth-username:password 对一个中转代理提供BASIC认证信任。用户名和密码由一个:隔开，并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401认证需求代码)，此字符串都会被发送。</font><br />
&nbsp;&nbsp;&nbsp; -X proxy:port&nbsp;&nbsp; Proxyserver and port number to use<br />
&nbsp;&nbsp;&nbsp; -V&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Print version number and exit<br />
&nbsp;&nbsp;&nbsp; -k&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Use HTTP KeepAlive feature<br />
&nbsp;&nbsp;&nbsp; -d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Do not show percentiles served table.<br />
&nbsp;&nbsp;&nbsp; -S&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Do not show confidence estimators and warnings.<br />
&nbsp;&nbsp;&nbsp; -g filename&nbsp;&nbsp;&nbsp;&nbsp; Output collected data to gnuplot format file.<br />
&nbsp;&nbsp;&nbsp; -e filename&nbsp;&nbsp;&nbsp;&nbsp; Output CSV file with percentages served<br />
&nbsp;&nbsp;&nbsp; -h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Display usage information (this message)<br />
&nbsp;&nbsp;&nbsp; //-attributes 设置 属性的字符串. 缺陷程序中有各种静态声明的固定长度的缓冲区。另外，对命令行参数、服务器的响应头和其他外部输入的解析也很简单，这可能会有不良后果。它没有完整地实现HTTP/1.x; 仅接受某些'预想'的响应格式。 strstr(3)的频繁使用可能会带来性能问题，即, 你可能是在测试ab而不是服务器的性能。
<p>参数很多,一般我们用 -c 和 -n 参数就可以了. 例如:</p>
<p>./ab -c 1000 -n 1000 <a href="http://127.0.0.1/index.php"><font color="#0000ff">http://127.0.0.1/index.php</font></a></p>
<p>这个表示同时处理1000个请求并运行1000次index.php文件.<br />
#/usr/local/xiaobai/apache2054/bin/ab -c 1000 -n 1000 <a href="http://127.0.0.1/index.html.zh-cn.gb2312"><font color="#0000ff">http://127.0.0.1/index.html.zh-cn.gb2312</font></a> <br />
This is ApacheBench, Version 2.0.41-dev &lt;$Revision: 1.121.2.12 $&gt; apache-2.0<br />
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, <a href="http://www.zeustech.net/"><font color="#0000ff">http://www.zeustech.net/</font></a><br />
Copyright (c) 1998-2002 The Apache Software Foundation, <a href="http://www.apache.org/"><font color="#0000ff">http://www.apache.org/</font></a></p>
<p>Benchmarking 127.0.0.1 (be patient)<br />
Completed 100 requests<br />
Completed 200 requests<br />
Completed 300 requests<br />
Completed 400 requests<br />
Completed 500 requests<br />
Completed 600 requests<br />
Completed 700 requests<br />
Completed 800 requests<br />
Completed 900 requests<br />
Finished 1000 requests</p>
<p><br />
Server Software:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Apache/2.0.54<br />
<font color="#ff0000">//平台apache 版本2.0.54<br />
</font>Server Hostname:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1<br />
<font color="#ff0000">//服务器主机名<br />
</font>Server Port:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 80<br />
<font color="#ff0000">//服务器端口</font></p>
<p>Document Path:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /index.html.zh-cn.gb2312<br />
<font color="#ff0000">//测试的页面文档</font><br />
Document Length:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1018 bytes<br />
<font color="#ff0000">//文档大小</font></p>
<p>Concurrency Level:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1000<br />
<font color="#ff0000">//并发数<br />
</font>Time taken for tests:&nbsp;&nbsp; 8.188731 seconds<br />
<font color="#ff0000">//整个测试持续的时间</font><br />
Complete requests:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1000<br />
<font color="#ff0000">//完成的请求数量</font><br />
Failed requests:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
<font color="#ff0000">//失败的请求数量</font><br />
Write errors:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
<br />
Total transferred:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1361581 bytes<br />
<font color="#ff0000">//整个场景中的网络传输量</font><br />
HTML transferred:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1055666 bytes<br />
<font color="#ff0000">//整个场景中的HTML内容传输量<br />
</font>Requests per second:&nbsp;&nbsp;&nbsp; 122.12 [#/sec] (mean)<br />
<font color="#ff0000">//<span style="color: red">大家最关心的指标之一，相当于</span><span style="color: red"> LR </span><span style="color: red">中的</span><span style="color: red"> </span><strong><span style="color: red">每秒事务数</span></strong><span style="color: red"> </span><span style="color: red">，后面括号中的</span><span style="color: red"> mean </span><span style="color: red">表示这是一个平均值</span></font><br />
Time per request:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8188.731 [ms] (mean)<br />
<font color="#ff0000">//<span style="color: red">大家最关心的指标之二，相当于</span><span style="color: red"> LR </span><span style="color: red">中的</span><span style="color: red"> </span><strong><span style="color: red">平均事务响应时间</span></strong><span style="color: red"> </span><span style="color: red">，后面括号中的</span><span style="color: red"> mean </span><span style="color: red">表示这是一个平均值</span></font><br />
Time per request:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8.189 [ms] (mean, across all concurrent requests)<br />
<font color="#ff0000">//每个请求实际运行时间的平均值</font><br />
Transfer rate:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 162.30 [Kbytes/sec] received<br />
<font color="#ff0000">//<span style="color: red">平均每秒网络上的流量，可以帮助排除是否存在网络流量过大导致响应时间延长的问题</span></font></p>
<p>Connection Times (ms)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; min mean[+/-sd] median&nbsp;&nbsp; max<br />
Connect:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4 646 1078.7&nbsp;&nbsp;&nbsp;&nbsp; 89&nbsp;&nbsp;&nbsp; 3291<br />
Processing:&nbsp;&nbsp; 165 992 493.1&nbsp;&nbsp;&nbsp; 938&nbsp;&nbsp;&nbsp; 4712<br />
Waiting:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 118 934 480.6&nbsp;&nbsp;&nbsp; 882&nbsp;&nbsp;&nbsp; 4554<br />
Total:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 813 1638 1338.9&nbsp;&nbsp; 1093&nbsp;&nbsp;&nbsp; 7785<br />
<font color="#ff0000">//<span style="color: red">网络上消耗的时间的分解，各项数据的具体算法还不是很清楚</span></font></p>
<p>Percentage of the requests served within a certain time (ms)<br />
50%&nbsp;&nbsp; 1093<br />
66%&nbsp;&nbsp; 1247<br />
75%&nbsp;&nbsp; 1373<br />
80%&nbsp;&nbsp; 1493<br />
90%&nbsp;&nbsp; 4061<br />
95%&nbsp;&nbsp; 4398<br />
98%&nbsp;&nbsp; 5608<br />
99%&nbsp;&nbsp; 7368<br />
100%&nbsp;&nbsp; 7785 (longest request)<br />
<font color="#ff0000">//整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间，其中50％的用户响应时间小于1093 毫秒，60％ 的用户响应时间小于1247 毫秒，最大的响应时间小于7785 毫秒</font></p>
<p><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 由于对于并发请求，cpu实际上并不是同时处理的，而是按照每个请求获得的时间片逐个轮转处理的，所以基本上第一个Time per request时间约等于第二个Time per request时间乘以并发请求数</font></p>
 <img src ="http://www.blogjava.net/Todd/aggbug/319160.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Todd/" target="_blank">Todd</a> 2010-04-22 23:29 <a href="http://www.blogjava.net/Todd/archive/2010/04/22/319160.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>xp远程连接win2008</title><link>http://www.blogjava.net/Todd/archive/2009/12/07/305056.html</link><dc:creator>Todd</dc:creator><author>Todd</author><pubDate>Mon, 07 Dec 2009 14:16:00 GMT</pubDate><guid>http://www.blogjava.net/Todd/archive/2009/12/07/305056.html</guid><wfw:comment>http://www.blogjava.net/Todd/comments/305056.html</wfw:comment><comments>http://www.blogjava.net/Todd/archive/2009/12/07/305056.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Todd/comments/commentRss/305056.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Todd/services/trackbacks/305056.html</trackback:ping><description><![CDATA[xp远程桌面连接不支持nla,网络及身份验证，在注册表里修改如下键值，即可连接：<br />
1）HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa，双击右侧Security Packages，打开编辑多字符串对话框，在列表中添加 tspkg<br />
2）HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control\SecurityProviders，双击右侧的SecurityProviders，如无则新 建此字符串，打开编辑字符串对话框，在数值数据框中添加 , credssp.dll ，注意逗号后有一个英文的空格。 <br />
========================<br />
另外在装完的时候，administrator的密码必须大写小写字母+数字才能通过；<br />
进入系统后连不上网，原因系统不能自动识别网卡，装驱动盘，无法直接运行，在设备管理器里<br />
对问题硬件更新驱动。
<img src ="http://www.blogjava.net/Todd/aggbug/305056.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Todd/" target="_blank">Todd</a> 2009-12-07 22:16 <a href="http://www.blogjava.net/Todd/archive/2009/12/07/305056.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>