macos Catalina 10.15 安装n2n

n2n是一款轻型P2P VPN软件,可轻松创建绕过中间防火墙的虚拟网络。

  1. 下载源码
#master不是最新版本,需要-b 2.8-stable指定版本
git clone -b 2.8-stable  https://github.com/ntop/n2n.git n2n
  1. 安装工具
    工具使用brew安装,如果没有brew 参考:https://brew.sh/index_zh-cn
brew cask install tuntap
brew install openssl
brew install cmake
  1. 编译n2n
#在n2n目录中创建build目录
mkdir build & cd build
cmake -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl ../
#macos Catalina 10.15 make install 会出现错误 file cannot create directory: /usr/share/man8.  Maybe need administrative
#需要手动将cmake_install.cmake 文件中的/usr/share/替换为/usr/local/share/
sudo make install
sudo chmod -R 777 /usr/local/sbin
#添加环境变量
export PATH=$PATH:/usr/local/sbin

4、安装成功

$ edge
Welcome to n2n v. for Darwin-19.6.0
Built on Jan 30 2021 16:55:19
Copyright 2007-2020 - ntop.org and contributors

edge <config file> (see edge.conf)
or
edge -a [static:|dhcp:]<tun IP address> -c <community> [-k <encrypt key>]
    [-s <netmask>] [-u <uid> -g <gid>][-f][-n cidr:gateway] [-m <MAC address>] -l <supernode host:port>
    [-p <local port>] [-M <mtu>] [-r] [-E] [-v] [-i <reg_interval>] [-L <reg_ttl>] [-t <mgmt port>] [-A[<cipher>]] [-H] [-z[<compression algo>]] [-h]

-a <mode:address>        | n2n网卡的ip地址,即本机的n2n的ip。直接填写IP或者使用 DHCP '-r -a dhcp:0.0.0.0'
-c <community>           | n2n组,只有相同组的edge之间才能进行通讯
-k <encrypt key>         | edge的加密密码
-s <netmask>             | 子网掩码 可选 (255.255.255.0).
-l <supernode host:port> | supernode的ip和端口
-i <reg_interval>        | 注册时间间隔,用于NAT打洞(默认为20秒)
-L <reg_ttl>             | 当通过超级节点UDP NAT打洞时,注册数据包的TTL(默认0不设置)
-p <local port>          | 固定本地UDP端口
-u <UID>                 | 如果不想用root来运行edge,则可指定本机账号的uid,windows下可忽略
-g <GID>                 | 如果不想用root来运行edge,则可指定本机账号的groupid,windows下可忽略
-f                       | 带-f时前台运行,不添加-f 参数时作为守护进程运行
-m <MAC address>         | n2n虚拟网卡的MAC地址,默认随机设置
                         | eg. -m 01:02:03:04:05:06
-M <mtu>                 | MTU 值,默认1290
-r                       | 启用数据转发功能,当需要访问该设备的局域网时需要设置
-A1                      | 禁用载荷加密。不能与key 同时使用(默认为Twofish)。
-A2 ... -A5 or -A        | 选择有效载荷加密的密码,需要一个密钥:-A2 = Twofish(默认),
                         | -A3 or -A (deprecated) = AES-CBC, -A5 = Speck-CTR.
-H                       | Enable full header encryption. Requires supernode with fixed community.
-z1 ... -z2 or -z        | Enable compression for outgoing data packets: -z1 or -z = lzo1x (default=disabled).
-E                       | 接受多播MAC地址(默认=drop)
-S                       | 不要连接P2P ,总是使用超级节点转发数据
-n <cidr:gateway>        | 通过gw路由IPv4网络。使用0.0.0.0/0作为默认gw。可多次设置。
-v                       | 详细日志
-t <port>                | 管理UDP端口(用于机器上的多个edges)。

环境变量:
  N2N_KEY                | 加密密钥(ASCII)

4、客户端配置
supernode.ml 提供了公开N2N中心节点http://www.supernode.ml/

A设备启动

sudo edge -a 172.0.0.2 -c community -k encryptKey -l  n2n.udpfile.com:10086 -f

B设备启动

sudo edge -a 172.0.0.3 -c community -k encryptKey -l  n2n.udpfile.com:10086 -f

基本组网完成

参考:https://github.com/meyerd/n2n/wiki
参考:https://blog.csdn.net/nokiaxjw/article/details/88872172

推荐阅读更多精彩内容