实战:不需公网IP架设OpenVPN网络(下)

日期: 2008-07-27 作者:Du XiaoGang 来源:TechTarget中国 英文

    如何建立UDP通道?

    1.客户端发起,通过Mail告诉服务器客户端经NAT映射后的IP/PORT。

    2.服务端查询自己经NAT映射后的IP/PORT并将其通过邮件返回给客户端,同时向客户端的UDP端口做打洞操作。  

    3.客户端收到服务端的Mail后向服务端UDP端口发送数据,这时服务端UDP端口应该能收到数据,返回一条UDP信息给客户端,标志通道建立成功。

    4.服务端启动OpenVPN,客户端打开OpenVPN客户端,通过刚才建立的通道即可建立VPN连接.这个过程我用Python做了一个模型实现,不能说是软件,只是一些脚本,但能稳定工作,这里介绍一下使用过程:

    1.配置OpenVPN,这个过程和有真实IP完全相同,我这里列举一个非常简单的例子,这里默认服务器运行在Linux平台,客户端则在Windows上,OpenVPN采用2.0.9版本,客户端我用的是OpenVPN GUI for Windows V1.0.3,默认安装路径。

    可以在局域网找两台机器(或者虚拟机)做测试,你需要将客户端配置中的remote改为OpenVPN服务所在主机IP/PORT。

OpenVPN服务端简明配置

图1 OpenVPN服务端简明配置

OpenVPN客户端简明配置

图2 OpenVPN客户端简明配置

    配置好之后,用客户端连接服务,应该可以连通,然后从客户端机器ping 10.4.0.1如果响应,则配置完成,可进行下一步,否则,请查找原因,参考OpenVPN的相关文档以及网络上关于OpenVPN配置的文章。

    2.申请两个GMail帐号做通信使用,比如openvpn.nat.server@gmail.com,openvpn.nat.client@gmail.com,注意申请完后进入GMail邮箱设置,开启IMAP支持,否则后面无法继续。

    3.获取UDP穿透NAT的代码,从http://code.google.com/p/natvpn/downloads/list获取最新包即可,也可以从svn获取最新的代码. 获取后解压包,我的例子是服务器运行在Linux操作系统,客户端运行在Windows上,其实和系统关系不大,图方便而已,OpenVPN和Python都是跨平台的,需要的只是修改路径. Python版本是2.5。

    解压,先配置服务器,把源码目录下的几个*.py和OpenVPN配置文件都拷贝到你习惯的位置,比如/usr/local/etc下,然后修改server.py文件中的路径,与你的系统保持一致:

server.py中需要更改的变量

    图3 server.py中需要更改的变量

    然后是客户端,将*.py和OpenVPN客户端配置文件拷贝到OpenVPN安装路径下的config目录. 注意client.ovpn文件要可写,因为脚本会在后面重写该文件中的remote地址等部分。

client.py中需要更改的变量

图4 client.py中需要更改的变量

    4.启动服务端,注意要用root启动:

    # ./server.py
  
    5.回家,然后启动客户端. Windows首先要安装Python,我用ActiveState Python 2.5,很方便安装,软件可以从http://www.activestate.com/Products/activepython/下载. 然后双击执行client.py,运行一直到它提示可以连接,这个过程在当前的配置状态下需要三到五分钟左右,这主要是因为GMail设置的查新邮件时间有3分钟,最后应该出现如下图提示:

客户端执行UDP打洞成功后的提示界面

图5 客户端执行UDP打洞成功后的提示界面

       看到这个画面,说明UDP通道已经打通,这是你需要尽快(1分种以内)启动OpenVPN客户端,这样即可完成连接。

启动OpenVPN客户端连接

图6 启动OpenVPN客户端连接

    我从家里连接单位,单位是对称NAT,家里是锥形NAT,本来这种网络连通的希望不大,但我对单位的NAT方式稍有了解,他的NAT映射具有时间局部性,所以在server.py/client.py中做了一些优化: 针对一个PORT范围打洞,而不是针对某个具体PORT,这样,连接可以成功建立,从无失手。

    不得不说,OpenVPN的通信质量还是很不错的,我使用的这段时间从没有出现过连接中断,值得一试。

    作者Email: dugang@188.com

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

Du XiaoGang
Du XiaoGang

暂无

相关推荐

  • openVPN应用指南

    目前openVPN在企业中的应用主要有:可实现网通、电信机房快速、安全通信,可作为公司的远程办公环境,可与PPTPD服务器作为互备,可穿透一些顽固型的防火墙……

  • 实战:不需公网IP架设OpenVPN网络(上)

    OpenVPN是一款开源的基于SSL的VPN,它获得了广泛的支持,并且已经从IANA获得了知名端口,那我们应该如何架设OpenVPN网络呢?