通过注册表修改Windows RRAS VPN PPTP服务默认端口号
VPN(虚拟专用网络)第一层隧道协议PPtp所使用的默认端口号是TCP 1723,这是一个标准,也就是说不管是微软的Windows Server自带的VPN服务还是其他系统或者硬件VPN都是使用的这个端口号,但如果采用的是Windows Server自带的路由和远程访问(RRAS)构建的VPN服务器,那么可以通过注册表修改此端口号,从而起到隐藏此服务的目的。但要注意这里所采用的 VPN客户端仍然是Windows自带的VPN连接。
首先我们来看看用Windows Server自带的路由和远程访问(RRAS)构建的VPN服务器的连接情况:服务创建成功后服务器在服务端侦听TCP 1723端口等待连接,客户端通过服务端授予的合法帐号进行拨号,连接成功后我们在客户端CMD下输入netstat -an可以看到客户端这时也开放了TCP 1723端口,并且也是侦听状态。通过后面的讲解我们可以发现这里开放的TCP 1723端口不受客户端防火墙的影响,也就是说就算客户端防火墙没有打开这个端口,系统同样可以打开这个端口进行侦听。
以上是通过默认的端口进行连接,下面我们通过修改注册表达到自定义端口的目的:首先在服务端注册表里面找到这个项 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972- E325-11CE-BFC1-08002bE10318}],这个项里面设置的是和网络适配器有关的键值,这个项下面可以看到诸如0000、0001、 0002等命名的分支,这些分支设置的是各个接口的信息,然后我们找到里面含有字符串DriverDesc并且数值是WAN 微型端口 (PPTP)的那个分支,这个分支可能是上述0000、0001、0002等命名分支中的一个,我们继续找到该分支下面的TcpPortNumber键, 可以看到它默认的十进制值为1723,这个1723就是VPN服务所开的默认端口号,我们把它修改为其他任意端口号即可。
通过上面的设置,我们重启服务器后在服务端CMD下输入netstat -an会发现这时VPN服务器已经开始侦听我们修改以后的端口号了,说明服务端已经成功更换了默认的端口号1723。
接下来是客户端的设置。VPN服务修改端口号和终端服务修改3389端口号不同,后者只需服务端修改后客户端直接在目标IP后面加冒号加端口号就能连接。 通过实验发现,VPN的客户端电脑同样需要做上述在服务端上面的注册表键值修改操作才能连接服务端,并且修改后客户端系统自带的防火墙还必须关闭才能成功 连接(仅开放该端口还不行),否则就要提示错误691:不能建立到远程计算机的连接,因此用于此连接的端口已关闭。而使用默认的1723就不需要防火墙的 端口开放。
总结:采用Windows Server自带的路由和远程访问(RRAS)构建的VPN服务器要修改默认端口号,必须服务器和客户端同时修改注册表中TcpPortNumber的键值;客户端除了修改注册表,还必须关闭系统自带的防火墙。
来源:http://blog.jixin.ntxz.net/?p=1610
感谢网友Ben推荐。修改pptp vpn端口虽然能实现突破端口封锁,不过需要服务器和客户端都做相应设置,不如直接使用sstp vpn或openvpn实际。