LEDE OpenWrt
下载工具链
地址lede-sdk-17.01.7-x86-64_gcc-5.4.0_musl-1.1.16.Linux-x86_64.tar.xz
更名后路径:/opt/toolchain/lede-gcc-5.4.0-x86_64
编译N2N
0、环境变量
修改~/.bashrc,执行source .bashrc立即生效,并使重启自动生效
export STAGING_DIR=.....
1、git clone https://github.com/ntop/n2n.git or get zip source code
2、CMake构建,vim CMakeLists.txt,在开头加入:
SET(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_CROSSCOMPILING TRUE)
SET(CMAKE_CROSSCOMPILER "x86_64-openwrt-linux-")
SET(CMAKE_C_COMPILER "${CMAKE_CROSSCOMPILER}gcc")
SET(CMAKE_CXX_COMPILER "${CMAKE_CROSSCOMPILER}g++")
3、编译
mkdir build
cd build
cmake ..
make
4、将edge拷贝至目标主机/bin目录
chmod +x edge
cp edge /bin
5、启动脚本/etc/init.d/autoboot,执行目标脚本
#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=99
start() {
sh /usr/share/jerry/autoboot
}
编辑autoboot内容,并添加权限chmod +x autoboot
#!/bin/sh
USERDIR=/usr/share/jerry
edge -c group-k key -a ip -l supernode:port
if [ ! -f "${USERDIR}/boottimes.log"]; then
touch ${USERDIR}/boottimes.log
fi
date >> ${USERDIR}/boottimes.log
使能自启动,log记录每次重启的时间
/etc/init.d/autoboot enable
Windows
0、sudo apt-get install mingw-w64
另外需要TAP驱动,从bugxia EasyN2N处安装即可
1、CMake构建,vim CMakeLists.txt,在开头加入:
SET(CMAKE_SYSTEM_NAME Windows)
Set(CMAKE_CROSSCOMPILING TRUE)
SET(CMAKE_CROSSCOMPILER "x86_64-w64-mingw32-")
SET(CMAKE_C_COMPILER "${CMAKE_CROSSCOMPILER}gcc")
SET(CMAKE_CXX_COMPILER "${CMAKE_CROSSCOMPILER}g++")
SET(CMAKE_RC_COMPILER "${CMAKE_CROSSCOMPILER}windres")
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
2、
mkdir cmake
touch CMakeToolchainFileMingw32.cmake
# the name of the target operating system
SET(CMAKE_SYSTEM_NAME Windows)
# which compilers to use for C and C++
SET(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc)
SET(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++)
# here is the target environment located
SET(CMAKE_FIND_ROOT_PATH ${HOME}/win_n2n/mingw32/)
# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search
# programs in the host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/CMakeToolchainFileMingw32.cmake --build ./ ../
make
N2N help
edge edge.conf
edge
-a 指定静态IP,动态为“ -r -a dhcp:0.0.0.0 ”
-c 指定群组名,类似于工作组,只有在同一工作组才能通信
-k 密码
-l 超级节点公网地址及端口号
-m 指定MAC地址,缺省为随机
-M 指定MTU,缺省为1290
-r 使能数据包通过n2n转发
-S 不使用p2p,数据包始终通过supernode