Margrop
Articles158
Tags353
Categories21
1password AC AP API AppDaemon Aqara Cron Date Diagrams.net HA HADashboard HomeAssistant IP IPv4 Java LVM‑Thin Linux MacOS MySQL NAS PPPoE PostgreSQL ProcessOn Proxmox VE SSL Shell TTS TimeMachine UML Uptime Kuma Web Windows activate ad adb adblock agent aligenie aliyun alpine annotation aop authy autofs backup baidupan bash bitwarden boot brew browser caddy2 cdn centos cert certbot charles chat chrome classloader client clone closures cloudflare cmd command commit container crontab ctyun ddsm demo dependency deploy developer devtools dll dns docker domain download draw drawio dsm dump dylib edge exception export fail2ban feign firewall-cmd flow frp frpc frps fuckgfw function gcc gfw git github golang gperftools gridea grub gvt-g hacs havcs heap hello hexo hibernate hidpi hoisting homeassistant hosts html htmlparser https idea image img img2kvm import index install intel io ios ip iptables iptv ipv6 iso java javascript jetbrains jni jnilib jpa js json jsonb jupter jupyterlab jvm k8s kernel key kid kms kodi koolproxy koolproxyr kvm lan lastpass launchctl learning lede letsencrypt linux live low-code lvm lxc m3u8 mac macos mariadb markdown maven md5 microcode mirror modem modules monitor mount mstsc mysql n2n n5105 nas network nfs node node-red nodejs nohup notepad++ npm nssm ntp oop openfeign openssl os otp ovz packet capture pat pdf pem perf ping pip plugin png powerbutton print pro proxy pve pvekclean python qcow2 qemu qemu-guest-agent rar reboot reflog remote remote desktop renew repo resize retina root route router rule rules runtime safari sata scipy-notebook scoping scp server slmgr so socks source spk spring springboot springfox ssh ssl stash string supernode svg svn swagger sync synology systemctl tap tap-windows tapwindows telecom template terminal tls token totp tvbox txt ubuntu udisk ui undertow uninstall unlocker upgrade url v2ray vhd vim vlmcsd vm vmdk web websocket wechat windows with worker wow xiaoya xml yum zip 中国电信 云电脑 交换机 光猫 公网IP 内存 内网IP 升级 启动 夏令时 天猫精灵 天翼云 安装 容器 导入 小米 常用软件 广告屏蔽 序列号 应用市场 异常 抓包 描述文件 时区 显卡虚拟化 智能家居 智能音箱 梯子 模块 流程 流程图 浏览器 漫游 激活 火绒 电信 画图 直播源 续期 网关 网络风暴 群晖 腾讯 虚拟机 证书 路由 路由器 软件管家 软路由 运维监控 镜像 镜像源 门窗传感器 防火墙 阿里云 阿里源 集客

Hitokoto

Archive

如何使用Windows运行N2N-编译篇

如何使用Windows运行N2N-编译篇

按照N2N官方网站Building说明,Windows编译需要的软件有
Visual Studio,Cmake,OpenSSL

看到Visual Studio我就头大,这个软件安装起来可不得了。
于是我选择了交叉编译,即使用Linux环境编译Windows的exe和dll文件。

已编译好的文件

编译环境:
Ubuntu 20.04.1 LTS
Linux vm-n2n-cc2 5.4.0-59-generic #65-Ubuntu SMP Thu Dec 10 12:01:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

一键打包下载
edge,supernode,openssl链接库(n2n运行必备),tap-windows安装包(n2n运行必备,Win7&Win10)

1
2
3
4
wget https://download.margrop.net/d/oneindex/network/n2n_2.8_stable/Windows/edge.exe -O edge
wget https://download.margrop.net/d/oneindex/network/n2n_2.8_stable/Windows/supernode.exe -O supernode
wget https://download.margrop.net/d/oneindex/network/n2n_2.8_stable/Windows/libcrypto-1_1-x64.dll -O libcrypto-1_1-x64.dll
wget https://download.margrop.net/d/oneindex/network/n2n_2.8_stable/Windows/libssl-1_1-x64.dll -O libssl-1_1-x64.dll

准备编译环境

1
2
3
4
5
apt-get install mingw-w64
apt-get install cmake
apt-get install openssl
apt-get install libssl-dev
apt-get install build-essential git bison flex libxml2-dev libpcap-dev libtool libtool-bin rrdtool librrd-dev autoconf pkg-config automake autogen redis-server wget libsqlite3-dev libhiredis-dev libmaxminddb-dev libcurl4-openssl-dev libpango1.0-dev libcairo2-dev libnetfilter-queue-dev zlib1g-dev libssl-dev libcap-dev libnetfilter-conntrack-dev libreadline-dev libjson-c-dev libldap2-dev rename libsnmp-dev

OpenSSL交叉编译

1
2
3
4
wget https://www.openssl.org/source/openssl-1.1.1i.tar.gz
tar -xvzf openssl-1.1.1i.tar.gz
cd openssl-1.1.1i
CROSS_COMPILE="x86_64-w64-mingw32-" ./Configure mingw64 no-asm -shared --prefix=/opt/toolchain/openssl/install-x86_64
1
2
make
make install

下载N2N源代码

1
2
3
4
cd ~
git clone https://github.com/ntop/n2n
cd n2n
git checkout 2.8-stable

N2N交叉编译准备

1
2
cd ~/n2n
vim toolChain.cmake

n2n的目录下新建toolChain.cmake文件,并输入下面的配置内容

1
2
3
4
5
6
7
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_FIND_ROOT_PATH /opt/toolchain/openssl/install-x86_64)
SET(CMAKE_VERBOSE_MAKEFILE on)

N2N交叉编译

使用CMaken2n进行交叉编译

1
2
3
4
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../toolChain.cmake ..
make

安装TapWindows 9.24.2

官方下载 For Win7
官方下载 For Win10
本站下载 For Win7
本站下载 For Win10

可选,同一机器如何启动多个edge节点

  • 访问Windows机器的Tap-Windows安装目录,默认为C:\Program Files\TAP-Windows\bin,该目录下面有个addtap.bat文件,反复执行这个addtap.bat文件,即可在Windowsv中添加多个虚拟网卡。在网络和共享中心里面的更改适配器设置里面可以看到多个虚拟网卡。
  • 如果虚拟网卡太多了,也可以删除,进入设备管理器 ,删除不需要的虚拟网卡即可。
Author:Margrop
Link:http://blog.margrop.com/post/how-to-use-n2n-windows-compile/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可