N2N

概述

n2n是一个比较好用的基于p2p的VPN程序,对于我来说主要利用其虚拟局域网的功能,用来和小伙伴们联机……(最早用过Hamachi速度比较慢,配置也比较痛苦……

n2n原作者似乎已不再维护,还在维护的branch为这个,其中更新的n2n_v2.1 版本比较新,看作者的描述,应该是为v3版本做铺垫。
这个branch的v21版本与之前的v1,v2版本都不兼容,需要重新编译,实测Google Play中的n2n也不能使用……不过还是有人做出了适配的Android客户端。

编译与使用

Linux(x86)平台

Linux平台下编译很方便,具体步骤如下:

编译

  1. 安装依赖:
    Centos下执行:

    yum install cmake openssl openssl-devel
    yum install gcc-c++

    Debian下执行:

    apt install cmake libssl-dev
    apt install build-essential
  2. 编译

    git clone https://github.com/meyerd/n2n.git
    cd n2n/n2n_v2
    cmake ./
    make && make install

使用

编译好的文件在 n2n/n2n_v2 下,其中supernode为服务端,edge为客户端,
大致使用命令如下:
supernode -l 端口号 如: ./supernode -l 1024

edge -a VLAN地址 -c 组名 -k 密码 -l 服务器地址:端口号 -s 掩码 -r -b -L 本地ip
其中若服务器地址为域名,使用-r命令则会周期性解析域名,一般用于公网ip经常变化的DDNS服务器,-b命令开启转发

Windows平台

编译

待续

使用

Windows下客户端需要先安装openvpn Tap-windows用于创建虚拟网卡,之后才能运行edge客户端。
下面文件打包了edge和tap网卡,使用命令和linux一致,官方没有GUI客户端。
Windows客户端下载

Android

Android下有Hin2n开源程序,通过Android调用VPN API实现n2n,但这样也意味着无法与大多数科学上网工具同时使用(
hin2n下载地址

路由器

直接给出编译好的程序:
padavan.zip
n2n_openwrt.zip

Zerotier

zerotier与n2n类似,打洞穿透率似乎高于n2n,下面主要记录moon节点的搭建安装<中转加速用>

moon节点

  1. 安装Zerotier
curl -s https://install.zerotier.com/ | sudo bash

2.加入网络

network-id 为在官网上建立网络的一串字符串

zerotier-cli join <network-id>

3.生成与建立moon模板

cd /var/lib/zerotier-one
zerotier-idtool initmoon identity.public > moon.json

检查json文件中id与服务器的id是否一致
修改moon.json中stableEndpoints为服务器ip,如

"stableEndpoints": [ "1.1.1.1/9993","2.2.2.2/9993" ]

之后执行

zerotier-idtool genmoon moon.json

会生成000000.moon的文件,其中为服务器id
之后执行

mkdir moons.d
mv 000000***.moon文件 ./moons.d
service zerotier-one restart

即可

加入moon节点

方法一

zerotier-cli orbit <id> <id>

id为moon节点的id,此方法要求服务器连接到zerotier网络

方法二

拷贝上面生成的000000*.moon文件到zerotier的moons.d文件夹中,并重启服务
不同系统文件夹地址如下<不存在moons.d文件夹则新建>

Windows: C:\ProgramData\ZeroTier\One
Linux: /var/lib/zerotier-one
MacOs: /Library/Application\ Support/ZeroTier/One)
FreeBSD/OpenBSD: /var/db/zerotier-one

参考网址:
恩山-有朋友能编辑出这个新版的 n2n 插件吗?
CentOS下交叉编译Windows N2N服务端及客户端