一.作用簡介
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端口)連接......
與客戶機的連接已經成功!
從客戶機發過來的數據:
---> 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?。╦ade是服務器名字)
初始化套接...
查找主機信息...
已經成功收到服務器主機信息
鍵入發送到服務器一端的(用于測試是否連通的)資料信息.用于發送的字符應在255個以下,例如:
-->abcdefghijklmnopqrstuvwxyz
成功地在1723端口上利用TCP協議連通PPTP
現在正將數據發到服務器jade.dns.microsoft.com上...
等待發送結束...
收到發送結束的應答,應答信息應當是下面的文字:
---> 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 Aclearcase/" target="_blank" >ccess Server is not responding(遠端服務器對訪問沒有響應)
消息中的678和650是表示消息類別的號碼.
遇到這種情況,請先禁用PPTP中的"過濾器",然后再次嘗試Ping pptp服務器.給系統下達禁用過濾器的命令如下:
net stop raspptpf
執行禁用過濾器命令之后,應當可以在Internet上(運行)Ping?。校校裕蟹掌鞯牟僮?,若仍然收到錯誤信息,則有可能不是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 <<<--Shows that this is a GRE packet.
+ 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,該程序位于windows\system32\之下.需要小心的是,windows2000有兩個注冊表編輯器,并且作用相同,但在使用上方法和控制功能的深度上有一定區別.另一個是regedit.exe在這里不使用它.打開Regedt32.exe之后,按以下步驟進行:
a.查找注冊表中下列的鍵值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Paramters
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協議需要的配置最?。?BR>而使用TCP/IP 協議,每個客戶端需要一個唯一的IP地址,IP地址可以從"地址池"或DHCP服務器(靜態地)分配給每個客戶.
如果網絡存在與TCP/IP協議有關的連通方面的問題,排除故障時,可用的工具就是眼下我們正在介紹的這個PPTP Ping了.
B.嘗試快速連接網絡資源:
為避免連接速度太慢,可以嘗試快速連接網絡資源.其步驟是:
1. 點擊"開始->運行".
2. 鍵入下列內容,然后點擊確定:
\\〈SERVER〉\〈SHARE〉