搭建n2n实现点对点内网穿透,组件虚拟局域网

说明:n2n 跟 Zerotier 相类似,然而 Zerotier 的设置方面更容易些,但稳定性取决于官方的服务器,由于国内的互联网环境,Zerotier 经常掉线。n2n 虽然设置起来麻烦一些,但稳定性取决于所选的服务器。只要有台有公网 ip 的服务器,就能远程访问内网的电脑、路由器或者其他设备。

日常工作中一般经常会碰到企业跨网络、跨区域异地组网的需要,尤其是安防监控项目,在正常情况看来,近点的自己敷设光缆,远点的直接找运营商拉专线就行了,但是有时候跨地域组建起来就非常麻烦了,这时候虚拟组网的优势就体现出来了,在企业总部和分支机构之间创建VPN局域网,利用现有的互联网出口,虚拟出一条“专线”,将组织的分支机构和总部连接起来,组成一个大的局域网。

安装教程

官方提供的源码用的是很老的库,现在编译会报错,我这里用的是 meyerd 修正过的,但两者不能互通,所以如果服务器是用官方的,客户端必须使用官方的源码来编译。另外 n2n 还有 V1 和 V2 版本,这两者也是不能互通的,我这里选择的是 V2 版本, V1 版本编译和设置方面基本相同。

n2n 源码 (推荐修正版)

# 官方旧版
https://github.com/ntop/n2n

# 修正版
https://github.com/meyerd/n2n

Linux 编译 n2n

安装必要运行库

apt-get install gcc g++ cmake make libssl-dev

编译

mkdir ~/n2n/n2n_v2/build
cd ~/n2n/n2n_v2/build
cmake ..
make

Linux 交叉编译 Windows 版的 n2n

安装 Mingw

apt-get install mingw-w64

安装 cmake

apt-get install cmake

获取 n2n 源码

git clone https://github.com/meyerd/n2n.git

修改在 n2n_v2 中的 cmake 文件夹中的 CMakeToolchainFileMingw32.cmake 里面的

SET(CMAKE_C_COMPILER i686-mingw32-gcc)
SET(CMAKE_CXX_COMPILER i686-mingw32-g++)

修改为

SET(CMAKE_C_COMPILER i686-w64-mingw32-gcc)
SET(CMAKE_CXX_COMPILER i686-w64-mingw32-g++)

开始编译

mkdir ~/n2n/n2n_v2/build
cd ~/n2n/n2n_v2/build
cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/CMakeToolchainFileMingw32.cmake --build ./ ../
make

关于使用

服务端

./supernode -l 端口

Linux 客户端(需要权限)

./edge -d n2n0 -c 虚拟局域网名 -k 密码 -m 指定物理mac地址(可选) -a 内网IP -l 服务端IP:端口号

Windows 客户端

市面上的 Windows 客户端有两个:一个是 n2nedgegui,另一个是 n2nguien,前者用的是 V2 版本,后者 V1 和 V2 版本,但这两个用的是官方旧版的内核,如果服务端用的是修正的版本,需要把上面编译好的 edge 替换客户端安装文件夹内的 edge 。

我这里使用的是 n2nguien ,客户端安装文件夹内 V2 版是用 edge2.exe 来命名的,所以替换 V2 版的时候把名字改为 edge2.exe ,V1 版直接替换就行了。


 上一篇
自编译Lean的Openwrt固件全攻略 自编译Lean的Openwrt固件全攻略
软路由之前自己配了一台软路由,3205的cpu+8G内存,一直使用Koolshare的LEDE,但是koolss插件已经长期停止更新,而且各种问题,经常死机,说实话算不上一个很好的固件。 后来在网上找其他固件,发现LEAN的LEDE固件非常
2019-11-30
下一篇 
WebStack-Laravel:搭建一个网址导航站点(带后台) WebStack-Laravel:搭建一个网址导航站点(带后台)
说明:怎么快速的搭建一个导航网站?WebStack-Laravel 是一个开源的网址导航网站项目,具备完整的前后台。换句话说,我们可以自定义添加网站和图标,有时候浏览器收藏的网站很多不好管理,这时我们可以使用WebStack-Larave
2019-10-24
  目录