Win2k"秘密武器"之PPTP Ping診斷(轉)

amyz發表於2007-08-11
Win2k"秘密武器"之PPTP Ping診斷(轉)[@more@]

  一.作用簡介

  PPTP是“點對點隧道傳送協議(Point-to-Point Tunneling Protocol)”的英文縮寫。點對點隧道傳送是網路上常用的傳送協議.所謂"隧道傳送"是指資料在傳送之前先進行加密和"打包",傳送至對方後再解包和解密.這樣,資料在傳送過程中就像是在地下隧道中透過的那樣,其內容不會被外界所看到,故曰"隧道傳送".要更詳細的瞭解,請參考有關資料.如果傳送出現故障,必須使用特定的診斷程式來查詢原因。在測試網路連通情況時,我們用過Ping 命令,這在前面的文章中已經提及,對PPTP的診斷,也需要使用類似的命令.在windows2000 Support Tools資料夾中,可以找到 Pptpclnt.exe 和 Pptpsrv.exe ,兩個程式,這就是我們要的工具了,其中Pptpclnt.exe用於客戶端, Pptpsrv.exe用於伺服器端。是成組的工具,使用時必須相互配合.

  當將上面的兩個程式用在遠端的PPTP 伺服器與PPTP 客戶機之間的互相訪問時,必須使用 1723埠,並且需要基於47類協議的支援.47類協議指的是GRE(Generic Routing Encapsulation:普通路由封裝)協議,所以,執行Pptpclnt.exe 和 Pptpsrv.exe 之前,應確保具備上述條件.另外,特別留意:PPTP Ping可以執行在windows2000、windowsNT和windows98,但不能執行於windows95!

  二.使用方法

  這一組程式都是基於命令列介面的,由於診斷必須涉及PPTP 伺服器與PPTP 客戶機兩個地方,所以,診斷程式執行的時候,要綜合伺服器端和客戶機端的應答資訊和系統提示資訊,然後根據情況判斷問題所在.使用 PPTP Ping可以完成測試PPTP伺服器的很多專案,下面我們按照專案分類進行介紹,並對伺服器和客戶機兩方面的提示資訊都予以介紹.並約定以下的敘述中:PPTP的伺服器在站點A,而PPTP的客戶機在站點B.

  1. 測試PPTP的連通性.

  (1) 在A站點的計算機上執行Pptpsrv.exe.

  (2) 在站點B上執行Pptclnt.exe,命令中應當指出伺服器名稱或IP地址.例如:Pptclnt.exe[[servername或IPaddress]

  這時,在伺服器一端可以看到大致如下的提示:(提示原文是英文,以下是翻譯為中文的情形)

  pptpsrv

  必須保證在客戶機端執行pptpclnt.exe

  等待(利用TCP的1723埠)連線......

  與客戶機的連線已經成功!

  從客戶機發過來的資料:

  ---&gt abcdefghijklmnopqrstuvwxyz

  傳送'Reply from server'訊息至客戶機一端.

  建立基於GRE 協議的套接測試...

  正在接受基於47類協議的GRE 資料包....

  Total GRE packets received = 1

  Total GRE packets received = 2

  Total GRE packets received = 3

  Total GRE packets received = 4

  Total GRE packets received = 5

  (3) 最後提示測試完成.如果需要測試本伺服器與另一個客戶機之間的PPTP連線,請重複上述步驟.

  (4)為了便於對比,這裡也列出進行上述測試的時候,客戶機一方的螢幕提示資訊.(提示原文是英文,以下是翻譯為中文的情形)

  pptpclnt jade (jade是伺服器名字)

  初始化套接...

  查詢主機資訊...

  已經成功收到伺服器主機資訊

  鍵入傳送到伺服器一端的(用於測試是否連通的)資料資訊.用於傳送的字元應在255個以下,例如:

  --&gtabcdefghijklmnopqrstuvwxyz

  成功地在1723埠上利用TCP協議連通PPTP

  現在正將資料發到伺服器jade.dns.microsoft.com上...

  等待傳送結束...

  收到傳送結束的應答,應答資訊應當是下面的文字:

  ---&gt Hello, there! This is a reply from the server.

  使用1723埠,TCP協議連通測試成功

  關閉socket...

  建立用於測試GRE協議的套接...

  (以下提示發往另一端的內容)

  Total GRE packets sent = 1

  Total GRE packets sent = 2

  Total GRE packets sent = 3

  Total GRE packets sent = 4

  Total GRE packets sent = 5

  如果GRE包發至對方,檢查對方伺服器是否成功接受.

  關閉socket

  本項測試全部結束.

  2、排除PPTP Ping故障

  這個測試可以執行在windows2000、windowsNT和windows98,但不能執行於windows95!該故障可分為下面幾種情況:

  (1) 不能連通PPTP 伺服器

  不能連通PPTP 伺服器的原因可能是PPTP協議方面的問題,也可能是其它問題.

  若測試的時候,不能連通PPTP伺服器,將會收到返回的訊息是:

  Error 678: There is no answer  (那邊沒有應答)

  Error 650: The Remote Access Server is not responding(遠端伺服器對訪問沒有響應)

  訊息中的678和650是表示訊息類別的號碼.

  遇到這種情況,請先禁用PPTP中的"過濾器",然後再次嘗試Ping pptp伺服器.給系統下達禁用過濾器的命令如下:

  net stop raspptpf

  執行禁用過濾器命令之後,應當可以在Internet上(執行)Ping PPTP伺服器的操作,若仍然收到錯誤資訊,則有可能不是PPTP導致的問題.而是其它原因造成的,比如連通方面的問題.請先排除這些故障,然後重新進行上述測試,直至收到正確的應答訊息.如果Ping PPTP伺服器後提示連通成功並可以收到應答訊息,那麼問題可能是ISP或內部網路不允許GRE包及PPTP包跨越路由器或防火牆。這時應當有"Destination Host Unreachable"字樣的提示.此外,一個ISP可使用GRE資料包在路由和它自己的站點之間傳送訊息 基於安全方面或其他理由,這一功能可以自己關閉與外部Internet的連線。

  下面這個例子是進行GRE-blocked PPTP呼叫後顯示出來的結果:顯示的每一行就是測試中一幀的提示資訊, 每個專案最前面的數字是幀序號。一共12幀,列表如下:

  1- 5.364 00 E8 TCP ....S., len:

2- 5.614 E8 00 TCP .A..S., len:

3- 5.614 00 E8 TCP .A ., len: 0, seq: 168021101-168021101,

ack: 460753,

4- 5.630 00 E8 TCP .AP..., len: 156, seq: 168021101-168021256,

ack: 460753,

5- 6.130 E8 00 TCP .AP..., len: 156, seq: 460753-460908,

ack: 168021257, win:

6- 6.145 00 E8 TCP .AP..., len: 168, seq: 168021257-168021424,

ack: 460909,

7- 6.520 E8 00 TCP .AP..., len: 32, seq: 460909-460940,

ack: 168021425, win:

8- 6.536 00 E8 TCP .AP..., len: 24, seq: 168021425-168021448,

ack: 460941,

9- 6.536 20 20 LCP Config Req Packet, Ident = 0x00, Length = 17

10- 6.536 00 E8 LCP Config Req Packet, Ident = 0x00, Length = 17

11- 6.833 E8 00 ICMP Destination Unreachable: 198.140.211.122

See frame 10

12- 6.942 E8 00 TCP .A...., len: 0, seq: 460941-460941,

ack: 168021449, win:

+ FRAME: Base frame properties

+ ETHERNET: ETYPE = 0x0800 : Protocol = IP: DOD Internet Protocol

+ IP: ID = 0xECB3; Proto = 0x2F; Len: 53

+ GRE: ..KS............ Length: 21, Call ID: 0 <<

+ PPP: Link Control Protocol Frame (0xC021)

+ LCP: Config Req Packet, Ident = 0x00, Length = 17

  在上面給出的提示中,最重要的是11幀,其提示內容大意是:在10幀中傳送的(資料)包不能到達目的地.再往下列出的是10幀中所提到的資料包的結構.上面ack的含義是"命令正確的應答".

  剩下的故障,我將在下一篇繼續分析.

  3.使用PPTP超時設定

  如果收到718號錯誤資訊,即提示:"the server has not responded"(伺服器沒有響應),你可能需要使用PPTP超時設定功能.要進行超時設定,一般可以透過修改windows2000的登錄檔來達到目的.修改登錄檔之前請先進行登錄檔備份,以防萬一.也可以透過系統管理員工具來進行超時設定,這要比直接修改系統登錄檔更為安全.兩種方法各有利弊:修改登錄檔的方法很直接,有立竿見影的效果,但一個修改不對,可能造成嚴重後果,安全效能上不可取;利用系統管理員工具,安全性上有保障,但要求會使用這些工具,並可以以管理員的身份登入系統.具體採用什麼辦法,你可以酌情選擇.需要有

  如果修改登錄檔來設定PPTP超時,應當開啟Regedt32.exe,該程式位於windowssystem32之下.需要小心的是,windows2000有兩個登錄檔編輯器,並且作用相同,但在使用上方法和控制功能的深度上有一定區別.另一個是regedit.exe在這裡不使用它.開啟Regedt32.exe之後,按以下步驟進行:

  a.查詢登錄檔中下列的鍵值:

  HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParamters

  b.在編輯選單中,雙擊: Add Value

  加入的鍵值名字: PPTPTcpMaxDataRetransmissions

  鍵值的資料型別: REG_DWORD

  鍵值可取的範圍: 0 - 0xFFFFFFFF

  預設值: 9h

  如果增大該值,可以選18h.更大的可以用27h,但這裡不推薦用這樣大的鍵值.

  4. 向伺服器撥號請求IP地址和登入PPTP伺服器問題

  如果出現:在每臺計算機不能以ISP提供給自己的IP地址登入時.需要測試PPTP伺服器的登入.

  啟動網路撥號,先登入PPTP伺服器IP地址的"phone book(電話號碼簿)",如果能夠登入進去,則可利用RASPPTPM撥號,再嘗試進入對應於電話號碼的伺服器的IP地址 .

  如果每臺計算機能以ISP提供給自己的IP地址登入,但不能連線到PPTP 伺服器,請嘗試重新啟用伺服器的遠端服務功能.要這樣做,需照以下步驟進行:

  一、在"控制皮膚"的"管理工具"中,雙擊"服務"圖示.

  二、查詢"Remote Access Server service".先令其停止服務,然後再啟用服務即可.

  注意:

  PPTP要求使用者在撥號訪問時,要先檢驗其賬號, 使用遠端訪問管理工具可以檢驗撥號使用者的賬號.

  三、兩點補充

  A.協議比較:

  PPTP 可以使用的或可以相容的協議有: NetBEUI、 IPX/SPX-compatible和 TCP/IP .其中, NetBEUI協議需要的配置最小.

  而使用TCP/IP 協議,每個客戶端需要一個唯一的IP地址,IP地址可以從"地址池"或DHCP伺服器(靜態地)分配給每個客戶.

  如果網路存在與TCP/IP協議有關的連通方面的問題,排除故障時,可用的工具就是眼下我們正在介紹的這個PPTP Ping了.

  B.嘗試快速連線網路資源:

  為避免連線速度太慢,可以嘗試快速連線網路資源.其步驟是:

  1. 點選"開始->執行".

  2. 鍵入下列內容,然後點選確定:

  〈SERVER〉〈SHARE〉

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-946988/,如需轉載,請註明出處,否則將追究法律責任。

相關文章