一.作用简介
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
(jade是服务器名字)
初始化套接...
查找主机信息...
已经成功收到服务器主机信息
键入发送到服务器一端的(用于测试是否连通的)资料信息.用于发送的字符应在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 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 = 1710- 6.536 00 E8 LCP Config Req Packet, Ident = 0x00, Length = 1711- 6.833 E8 00 ICMP Destination Unreachable: 198.140.211.122See frame 1012- 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,该程序位于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〉