服务器技术

 首页 > 服务器技术 > Linux > N2N VPN服务器的搭建 - Linux操作系统:Ubuntu_Centos

N2N VPN服务器的搭建 - Linux操作系统:Ubuntu_Centos

分享到:
【字体:
导读:
          2008年,ntop的作者Luca Deri开始研究p2p VPN,他一方面看到公众对p2p VPN有着强烈的需求,另一方面又不满足已有产品的现状,于是n2n诞生了。如上图所示,n2n是一个二层架构的VPN网络,其中...

2008年,ntop的作者Luca Deri开始研究p2p VPN,他一方面看到公众对p2p VPN有着强烈的需求,另一方面又不满足已有产品的现状,于是n2n诞生了。

如上图所示,n2n是一个二层架构的VPN网络,其中super node提供场所,让两个位于NAT/防火墙之后的edge node进行会面,一旦双方完成首次握手,剩下的数据流就之发生在两个edge node之间,如果有一方的NAT属于对称型(symmetrical),super node则还需继续为双方提供数据包的转发;edge node负责数据流的加解密,原理很简单。

对于一个VPN而言,主要涉及封装和加解密两个步骤,edge node使用UDP协议进行封装,目的是为了更好的兼容防火墙的策略,因为很多防火墙禁用了非TCP/UDP协议禁用。加密算法则采用了twofish,好处开源、简便,处理速度快。
为了降低设计难度,n2n利用了tap/tun虚拟网卡,这样做得好处是一方面软件尺寸极小,一方面源码的依赖性极低,可以很容易移植到嵌入式设备中,目前有openwrt的版本,在未来的计划中,还将移植到android和iPhone中。

相对于hamachi,n2n最大的优势在于:
1. 开源,任何人都可以检查代码,看看是否有猫腻,而hamachi是闭源的,LogMeIn是否会截获密钥不得而知,一旦截获密钥,就可以对流经 hamachi服务器的数据包进行解码。n2n的加解密过程由edge node实现,只有两端的用户知道协商好的共享密钥,super node无从知晓。

2. 灵活性,n2n允许用户在Internet上自行创建super node,也可以利用任何一个公开的super node。

hamachi用户则必须登录到LogMeIn服务器才能创建隧道。
n2n支持的OS也非常广,Linux、FreeBSD、MAC OSX、甚至windows

官方网站:http://www.ntop.org/n2n/
软件下载:http://sourceforge.net/projects/ntop/files/

软件安装:下载1.3.2版本源码  解压 make make install即可

安装完后,系统多了两个命令  edge和 supernode,edge是客户端,supernode是服务端。

服务端用法:supernode -l 就这么简单。
supernode -l 8888

客户端用法:
edge -a 3.3.3.4 -c wss -k wss -l 127.0.0.1:8888 &
edge -a 你需要的第2个ip地址 -c 你的虚拟网名 -k 你的密码  -l 服务器的ip地址:端口 &

-d           | tun device name  可选
-a     | n2n IP address
-c            | n2n community name
-k          | Encryption key (ASCII) – also N2N_KEY=
-s              | Edge interface netmask in dotted decimal notation (255.255.255.0)
-l | Supernode IP:port
-b                       | Periodically resolve supernode IP
| (when supernodes are running on dynamic IPs)
-p           | Local port used for connecting to supernode
-u                  | User ID (numeric) to use when privileges are dropped
-g                  | Group ID (numeric) to use when privileges are dropped
-f                       | Fork and run as a daemon. Use syslog.
-m          | Choose a MAC address for the TAP interface
| eg. -m 01:02:03:04:05:06
-M                  | Specify n2n MTU (default 1400)
-t                       | Use http tunneling (experimental)
-r                       | Enable packet forwarding through n2n community

其他事项:
1.数据包使用UDP 53端口,和DNS的一样。

2.算然数据不直接通过supernode,但supernode对速度影响还是很大,建议搭建自己的supernode。

3.n2n 软件Windows 版客户端

http://www.vpnhosting.cz/n2nguien.exe

参考资料:

aspx">http://www.ppcn.net/n5690c39.aspx

http://bbs.chinaunix.net/viewthread.php?tid=1596037

html">http://hi.baidu.com/viccom/blog/item/a308b195c36d5d43d1135e16.html

http://www.ichiayi.com/wiki/tech/n2nvpn

http://www.cublog.cn/u3/103983/showart_2085197.html

==========后记============

后记:写此文时很仓促,很多东西都没写。补充一下:

1.提供一个supernode  88.86.108.50:82 [vpnhosting.cz提供]

2.提供服务端运行语句:

supernode -l 8848 >/dev/null 2>&1 &

先在前台运行,调试好以后,将所有输出 定向到 /dev/null 并且在后台运行

调试时,服务端可能会出现如下错误

15/Oct/2010 03:25:22 [supernode.c: 325] WARNING: Received packet with unknown protocol version (2): discarded

3.使用windows下客户端登录时,默认使用V2版本协议,服务端可能不识别,请将windows下客户端版本调至V1.

4.提供windows下服务端程序,程序来源互联网,点此下载//本站提供下载,经测试该版本只能使用V2版本

5.提供地址一个,里面发布了windows版客户端和服务端,全部在DOS下开启命令

http://www.gamespot.com/pages/forums/show_msgs.php?topic_id=26973101

6.提供windows下DOS版本N2N 客户端和服务端 由上面地址发布

http://uploading.com/files/f29cf25d/n2n%2Bv1.3.3.rar/

7.提供sourceforge开源项目一个,N2N 客户端GUI

http://sourceforge.net/projects/n2nedgegui/

======================

另附:Campagnol VPN  使用的一些感受,没有进行详细测试

Campagnol 是一个分布式基于IP的 VPN程序,可以无配置的直接透过防火墙和 NATs,使用的是传输层的 UDP

原理是和N2N一样的,只不过他是使用的密钥方式管理。

下载地址:

http://sourceforge.net/projects/campagnol/files/

使用方法:
安装
签发CA和密钥
运行服务端和客户端

存在的缺陷:
1.密钥方式管理,比较复杂
2.对服务端依赖太多(CA)
3.IP是由客户端自行制定,如何进行区分?

      上一篇:在远程FreeBSD服务器上命令行安装运行虚拟Window 下一篇:Linux Apache支持asp配置 - Linux操作系统:Ubuntu_Cent
    分享到:
    Linux Apache支持asp配置 - Linux操作系...
    可以参考本文:http://www.2cto.com/os/201006/51644.html 安装系统:RedHat linux as 4 2.6.9 由于Apache服务器没有内建ASP的功能,因此我们需要自行找到适用的ASP模块,通过查找相关资料,获知目前有三个套件可提供此功能: 1、Chili soft ASP: 现已经被sun收购,并入了SunONE ASP中;能较完美支持microsoft ,ASP3.0...
    SSH命令详解 - Linux操作系统:Ubuntu_Ce...
    rm -rf mydir /* 删除mydir目录 */ cd mydir /* 进入mydir目录 */ cd - /* 回上一级目录 */ cd ~ /* 回根目录 */ mv tools tool /* 把tools目录改名为tool */ ln -s tool bac /* 给tool目录创建名为bac的符号链接,最熟悉的应该就是FTP中www链接到public_html目录了 */ cp -a tool /home/leavex/www /* 把tool目录...
    •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
    • 在这里……