2024年5月12日发(作者:)

Windows XP(vista./win 7) 架设简单L2TP-IPSec-VPN+NAT服务器

Windows XP(vista./win 7)内部已经集成了VPN拨号系统,已经包含了

PPTP和L2TP/IPSec两个协议,具备了完整的VPN客户端功能。作为客户端的

操作系统Windows XP,要架设 L2TP-IPSec-VPN+NAT服务器,只能通过简单

的操作来实现,Windows XP无法实现像服务器操作系统那样复杂的网络设置。

本文仅仅探讨实验通过Windows XP本身即有功能来实现VPN服务器功能,而

借助第三方软件实现的VPN服务器功能不在本文探讨范围内。

众所周知,通过Windows XP本身实现PPTP VPN+NAT服务器的文章很多

了,只要去掉本文中的证书制作和导入,做好路由器端口映射,服务端和客户

端都用默认设置就可以连接上了,比较简单,本文不再做探讨,本文仅仅探讨

在Windows XP (vista./win7)架设L2TP-IPSec-VPN+NAT服务器的方法。

Windows XP要架设纯L2TP不带IPSec的VPN服务器,如像Windows 2003那

样的纯L2TP的预共享的密钥VPN,对Windows XP来说无法实现,因为无法

对Windows XP进行相应的网络设置,不能修改Windows XP里默认的L2TP

VPN身份验证的方式,Windows XP里默认的L2TP VPN身份验证的方式就是

IPSec 的证书验证。像Windows 2003那样修改注册表,Windows XP(vista./win7

也同样如此)无法修改默认的L2TP VPN身份验证的方式。只能按照Windows

XP(vista./win7)默认的L2TP VPN身份验证方式来架设了,下面开始详细叙

述。本文以Windows XP为主,vista./win7与XP不同之处已用蓝色字体写明。

1、Windows XP服务器若是在路由器后面,就是所说的内网,首先需要对

注册表做如下修改:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesIPsec

添加名为AssumeUDPEncapsulationContextOnSendRule,类型为DWORD,

其数值为2,

该值名称对大小写敏感,注意大小写

。其值为0时不能连接内网

L2TP VPN服务端,其值为1时允许客户端与内网里的L2TP VPN服务端连

接,其值为2时允许内网的客户端与内网的服务端连接。

Vista/win7则要按如下修改注册表:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent

添加名为AssumeUDPEncapsulationContextOnSendRule,类型为DWORD

(32),其数值为2

2、启动四个关键服务(Workstation、Telephony、Remote Access Connection

Manager、Routing and Remote Access),并将其设置自动启动。

3、建立“传入的连接”,鼠标右键点击“网上邻居”,打开“网络连接”设

置窗口,或从控制面板里打开也一样。

这里指定的IP地址范围注意不要和你的局域网地址冲突,其他无所谓。或者指

定你的局域网尚未用到地址,这样连接到服务端的客户机就能像内网机子一样

访问服务端所在电脑了。

完成后如下所示:

Vista/win7建立“传入的连接”,如下图所示:

点击图标打开网络和共享中心

按键盘上的Alt键,出现菜单栏,文件新建传入的连接

其他就和XP的设置一样了。

4、创建计算机身份验证证书。这里使用免费的Simple Authority软件来创建

计算机身份验证证书,未注册的Simple Authority可以创建1个服务端和3个

客户端证书,这个对于wiondows XP 来说已经足够用了。

安装完Simple Authority,运行如下:

Tools-Options-General和Identify,在选项里把默认的2个保存目录修改

了,这样好找到生成的证书文件。

File-New CA,按如图自行填写信息,生成服务器端根证书。

下面点击FileNew User-创建客户端证书,按如下图自行填写信息,注意

4、5处要和服务器根证书一致,3处要选择Certification Authority,其他可随意

填写,填写完后按New Certificate,开始生成客户端证书。。

输入前面创建服务端根证书的密码后,再输入现在创建客户端密码,就生成了

服务端证书,这两个密码要记住,后面导入证书时后要用到。每份证书有2个

文件,分别以cer和p12为后缀名,如下。如此,根据客户端,创建客户端数

量。

5、服务端windows xp 导入证书。

开始-运行mmc-确定

如上图所示,打开控制台,文件添加/删除管理单元添加证书计算机帐

户下一步本地计算机完成

关闭

确定

如下图,个人证书所有任务导入

在“文件类型”选择打开p12类型证书

注意,这里导入的是服务端windonws xp的根证书,就是前面做的第一个证

书,要把根证书导入到服务器上,服务器对客户端的拨入进行证书认证。

点击“完成”,完成了证书的导入。

因为这是导入的服务端根证书,把该证书用鼠标左键拖到“受信任的根证书颁

发机构”“证书”那里,完成服务端证书导入。

6、windows xp服务端的其他设置

①windows xp(vista./win7)服务端默认只能连接一个用户,若需增加连接用户

数量,则需对注册表修改。在注册表:HKEY_LOCAL_MACHINESYSTEMCu

rrentControlSetControlClass{4D36E972-E325-11CE-BFC1-08002bE10318},找

到“DriverDesc”值为“WAN 微型端口 (L2TP)”的项,这个就是L2TP VPN

的注册表调整位置,把其中名为“WanEndpoints”默认值为2,改为你想增加

连接用户数量。这个我本人没实验过,不知道这样做是否就能增加连接用户数

量。

②添加“传入的连接”的拨入用户,在“传入的连接”上鼠标右键点击“属

性”。

通过“新建”来添加客户端拨号连接的用户。

通过TCP/IP属性来修改分配虚拟VPN IP地址的范围。

③若windows xp服务端和客户端不在同一个局域网,则需对windows xp服务

端所在的路由器做端口映射,客户端才能拨号成功。

TCP 1723端口:PPTP协议连接端口

UDP 1701端口:L2TP协议连接端口

UDP 500端口:Internet 密钥交换 (IKE) – 用户数据报协议

UDP 4500端口:IPsec NAT-T

TCP/UDP 50端口:封装式安全协议 (ESP) - Internet 协议 (IP) 协议。

本文是做L2TP VPN服务器,故需对1701、500、4500、50端口做映射,把端

口指向你做L2TP VPN服务器的局域网地址,如下图:

7、设置windows xp(vista./win 7)服务端具备NAT功能,拨入的VPN客户

端连接能通过windows xp(vista./win 7)服务端上公共因特网。

①修改windows xp服务端注册表,打开windows xp的NAT功能,注册表如

下修改:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters

设置

IPEnableRouter,

由默认值“0”改为“1”,重启电脑。此处若不重启电脑或

进行设置,后面的操作中会显示“NAT未安装”。

②开始运行CMDnetsh,进入netsh命令行控制台,在netsh中输入:

routing ip nat

可一次输入,也可一个个输入,这里次性输入。再输入:

install

再分别输入:

add interface name="内部" mode=private

add interface "本地连接" full

"本地连接"可根据你自己电脑连接情况修改。

输入:show interface并回车,如下则表示成功。

Vista和win 7若做服务端,也需和XP一样设置,

①修改:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters

,设置

IPEnableRouter,

由默认值“0”改为“1”,重启电脑。此处若不重启电脑

或进行设置,后面的操作中会显示“NAT未安装”。

②Vista和win 7默认在netsh命令控制台中没有routing接口,需从服务器

操作系统中复制和这2个文件到system32文件夹

中,Vista与windows server 2008相对应(其他所说与windows server 2003

对应不准确,版本号都不对),win 7与windows server 2008 R2相对应,复

制相应的服务器操作系统文件和即可(服务器只有

在脚色配置中配置启动了路由和路由远程控制脚色才会有这两个文件)(若

windows 7 没有这两个文件的,可以在我博客给我留邮箱

(/firegomayi/blog/item/),我发

给你),以管理员身份运行CMD,在CMD中输入以下:

Netsh

add helper

add helper

若出错,则输入“delete helper ”和“delete helper ”,再重做一

遍,成功后,会在后面routing成功,netsh会有routing这个选项。接着如同XP输入:

routing ip nat

install

add interface name="内部" mode=private

add interface name="本地连接" full

输入:show interface并回车,如下则表示成功。

至此,有关服务端的设置全部完成。下面开始客户端设置。

8.设置XP客户端

若服务端在路由器后面的局域网里,服务端与客户端不能直接互访,路由器做

过映射,“internet地址”这里填写路由器地址,若服务端本身就有公网地址,

或服务端与客户端都在同一个局域网里,这里就填服务端的地址,其他如红框

选择。

点击属性,或者在网络连接里用鼠标右键点击刚才建立的VPN连接,按如下

图红框设置,IPSec那里不需要设置。再点击设置。

网络处选择:L2TP IPSec VPMN

接着客户端倒入证书,导入证书过程与服务端淡入证书一样,开始-运行

mmc-确定文件添加/删除管理单元添加证书计算机帐户下一步

本地计算机完成,个人证书所有任务导入,导入证书时选择后缀名

为p12后缀名的客户端的证书,输入证书的密码后点击将证书导入到个人那

里,在个人证书那里会出现2个证书,上面的证书是客户端证书,下面的是服

务端证书,用鼠标把下面的服务端证书拖到“受信任的根证书颁发机构”“证

书”那里,完证书的导入,如下图:

若是客户端与服务端要通过路由器连接,则需对注册表做如下修改:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesIPsec

添加名为AssumeUDPEncapsulationContextOnSendRule,类型为DWORD,其数

值为2,

该值名称对大小写敏感,注意大小写

。其值为0时不能连接内网L2TP

VPN服务端,其值为1时允许客户端与内网里的服务端连接,其值为2时允许

内网的客户端与内网的服务端连接。

Vista和win 7做客户端设置

在网络连接与共享里点“设置新的连接或网络”

选择“使用我的internet连接(VPN)(I)”

若服务端在路由器后面的局域网里,路由器做过映射,“internet地址”这里填

写路由器地址,若服务端本身就有公网地址,或服务端与客户端都在同一个局

域网里,这里就填服务端的地址,其他如红框选择。

用户名和密码出填入服务器上给的用户和密码,点击“创建”完成。

在刚才建立的VPN连接上点鼠标右键,选“属性”,

按如下图红框处那样设置即可

Vista和win 7客户端证书的导入,与XP一样,可以参照XP执行。

修改Vista/win7注册表:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent

添加名为AssumeUDPEncapsulationContextOnSendRule,类型为DWORD(3

2),其数值为2。

这样就完成了Vista和win 7客户端上的设置。

拨号连接成功如下图: