n2n 笔记
2017-08-01 本文已影响875人
钢铁油腻男
n2n 是一个开源(GPLv3)软件,它允许你在用户间构建一个加密的二层或三层点对点 VPN,数据流量是用 UDP 封装的。一个 n2n VPN 由两类节点组成:边缘(edge)节点和超级(super)节点,加密是在edge节点执行的,使用开源协议和自定义密钥,有兼容NAT和穿越防火墙的功能。edge节点都会建立tun/tap虚拟网卡,用作n2n网络的入口;super节点用于注册节点网络路径,为位于防火墙后的edge节点中转数据。edge节点间通过虚拟网卡通信,一台主机可有多个虚拟网卡,隶属于多个n2n网络。可用于实现无公网ip设备的远程访问,比如在公司访问家里的电脑、路由器等。
n2n的git地址: https://github.com/ntop/n2n
N2N示意图中心节点Super node负责打洞为每个节点edge打洞, 并记录相关IP, 节点利用中心节点给的信息直接与其他节点建立链接, 数据不通过中间节点。
n2n分为多个版本, V1和V2, 两个版本不兼容。
V1版本有windows版本, 如果要V2版本的windows, 需要自己编译。
如果在android上使用n2n, 必须root。
据说国外有人说V1更稳定, 这个没看到原文, 笔者也没有安装两个版本比较, 不予评价。
直接安装
- 最简单的安装就是直接apt, 安装V1版本:
sudo apt install n2n
但是由于版本比较老, 无法使用ssh进行连接,需要重新编译。
编译安装V2
目前n2n原作者很久没有更新了,所以已经不兼容当前的gcc了, 使用另外一个大神meyerd的n2n的版本
git clone https://github.com/meyerd/n2n.git
sudo apt install cmake libssl-dev
cd n2n/n2n_v2
mkdir build
cd build
cmake -build . ..
make
sudo make install
现在安装完毕, 可以启动一个superServer
supernode -l 8080 -v
启动客户端:
edge -d n2n0 -c <网络名称> -k <密码> -a <本地IP> -l <服务器IP或地址>:8080 >/dev/null
或者在rc.local里面设置
(/usr/local/sbin/edge -d n2n0 -c <网络名称> -k <密码> -a <本地IP> -l <服务器IP或地址>:8080 &> /tmp/edge.log ) &
在windows版本安装
笔者没安装过, 转下面这篇。
http://gohom.win/2016/09/03/n2n-p2pnet/