<返回更多

通过N2N组建虚拟局域网

2022-09-06  今日头条  会测试的鲸鱼
加入收藏

前面介绍过通过ZeroTier组建虚拟局域网,但是会存在安全风险,因为流量会流经别人的服务器。

这里就来介绍在服务器上搭建一个N2N服务,然后通过这个N2N服务组建一个虚拟局域网。

什么是N2N

N2N是开源的,是P2P VPN这类内网穿透方案的其中一种实现方式。N2N分为SuperNode和EdgeNode,前者被称为超级节点,能够在EdgeNode之间建立握手并为无法直连的EdgeNode中转数据,是网络的核心部分。

准备工作

准备一个服务器,这里以Ubuntu系统为例。

安装N2N

在Ubuntu中安装N2N其实比较简单,直接执行以下命令就可以:

apt install -y n2n

如果是其他版本的linux系统,可能就需要之心那个以下命令:

sudo git clone https://github.com/meyerd/n2n.git
sudo apt install cmake
cd n2n
sudo mkdir -p build_n2n_v2	# 用于存放编译生成的文件
cd build_n2n_v2
sudo cmake ../n2n_v2
sudo make && sudo make install

安装完成后的可以通过supernode -h查看效果:

supernode -h

supernode的参数比较少,稍微对帮助文档做一下解释:

-l <lport>:用于指定监听的端口
-f:前台运行,不带这个参数会在后台运行
-u <UID>:指定UID,在没有特权时使用
-g <GID>:指定GID,在没有特权时使用
-v:输出比较详细的日志
-h:输出帮助文档

也需要看一下edge是否可以正常使用:

edge -h

edge的可用参数就比较多了,大概解释一下:

-d <tun device>:指定虚拟网卡名
-a <mode:address>:虚拟网段IP,static模式其实可以不用加那个static: 直接写IP就行。dhcp模式需要写完整,比如“-r -a dhcp:0.0.0.0”
-c <community>:用于区分节点的社区(组)名
-k <encrypt key>:用于加密的字符串
-K <key file>:用于加密的Key文件,和-k不能共存
-s <.NETmask>:子网掩码
-l <supernode host:port>:supernode的IP:端口,可以指定多个supernode的
-L <local_ip>:添加本地ip以绕过同一nat问题
-i <interval>:NAT打洞间隔
-b:当使用DHCP时定期刷新IP
-p <local port>:指定本地端口
-u <UID>:指定运行所用的UID
-g <GID>:指定运行所用的GID
-f :前台运行
-m <mac address>:为虚拟网卡指定MAC地址,例如:-m 01:02:03:04:05:06
-M <mtu>:指定edge的MTU接口,默认是1400
-r:启用包转发,当-a指定DHCP时需要启用
-E:接收组播MAC地址
-v:输出比较详细的log
-t:指定用于管理的UDP端口

组建虚拟局域网-服务端

先在服务端开启一个supernode:

supernode -l 9876 -v -f

如果确认服务能正常启动,可以不传-f,直接在后台运行就行。

组建虚拟局域网-Kali客户端

Kali,或者说Linux中开启客户端其实很简单,还是安装n2n,然后直接通过命令添加:

edge -d dege0 -a 192.168.222.162 -c yang_group -k 123456 -l 43.142.98.152:9876

组网成功会收到REGISTER_SUPER_ACK的返回:

组网成功

添加成功后,通过ifconfig命令可以看到出现了一个新的网卡:

新增虚拟网卡

这个时候可以在虚拟局域网中的主机之间互相ping通。

组建虚拟局域网-windows客户端

可以网上找一下Windows的n2n客户端(n2nguien.exe),有免费下载的资源。本地安装后,在连接之前先在Windows的powershell(管理员)中执行以下命令:

netsh advfirewall firewall add rule name= "All ICMP V4" protocol=icmpv4:any,any dir=in action=allow
netsh advfirewall firewall add rule name= "All ICMP V6" protocol=icmpv6:any,any dir=in action=allow

作用是开启v4 和v6 的入站规则。

开启入站规则

在安装目录打开cmd,并在其中进行操作,需要管理员权限:

cmd中组网

使用的命令:

edge -a 192.168.222.165 -c yang_group -k 123456 -l 43.142.98.152:9876

这个时候,可以尝试在Kali中ping这台Windows,使用组网时设定的ip:

虚拟局域网内主机能够ping通

组建虚拟局域网-Android客户端

n2n官方有个github地址可以下载apk客户端:
https://github.com/switch-iot/hin2n/releases

安装完成后,需要自己输入以下配置:

虚拟局域网配置信息

然后使用这个配置信息进行连接:

开启连接

用虚拟局域网中其他主机,ping一下新加入的手机

ping通

在Kali尝试用adb连接Android机:

kali连上Android机

在Windows尝试adb连接Android机器:

Windows连上Android机器

总结

n2n总体来说是个非常好用的工具,但是n2n有很多版本,v1、v2、v2s、v3,使用的时候supernode和edge必须是配套使用,不存在高版本兼容低版本的情况。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>