N2N是一个开源项目,旨在提供一个简单的方法来构建私有以太网。其主要组件是N2N网络的节点,它们可以连接在一起形成一个虚拟网络。这种网络也被称为Overlay Network,因为它建立在其他网络之上。 N2N可以在各种网络环境中工作,例如:家庭网络,公司网络或者互联网。这种网络的一个重要特点是它可以穿过网络地址转换(NAT)设备,这意味着你不需要进行任何复杂的配置就可以连接到你的设备。所以,你可以很容易地将你的设备连接到其他位置的设备,而不需要知道具体的网络细节。 N2N的另一个主要组件是超级节点。超级节点的主要任务是帮助节点发现网络中的其他节点。超级节点不参与数据传输,只负责维护网络拓扑。

经常利用虚拟局域网联机游戏的伙伴肯定知道小黄鸭(EasyN2N)。正如其名小黄鸭提供了一个简单构建N2N网络的方法,不过没有公网的小黄鸭只是一个客户端,即只是一个边缘节点。我们需要有个在公网的超级节点。玩游戏的都知道这个软件可以进行搭建虚拟局域网,玩文明6、玩MC。不过能建虚拟局域网自然就能有远程桌面访问的可能。接下来,不多讲理论,只讲桌面远程连接的具体方法,同时附带虚拟局域网构建方法。

原理:(长话短说)
N2N可以局域网联机,自然可以用来局域网远程桌面。你需要一台公网云服务器用来部署N2N服务端,然后用EasyN2N等客户端来构建虚拟局域网。然后就可以用Windows自带的远程桌面进行连接了。

N2N适用场景:

  • 远程办公

  • 局域网游戏互联

  • 不同设备间资源共享

  • 家用NAS设备资源分享

  • 远程监控

  • 智慧家电互联互通

  • 更多场景等待您的发掘

材料:

1.一台公网服务器(云服务器)作为服务端;

2.一台非公网设备(windows、Android都行)作为客户端;

3.提供边缘节点客户端软件(电脑推荐小黄鸭EasyN2Nhappyn、手机推荐hin2n);

方法流程:

1.1公网IP获取:

公网服务器:拥有公网IP的服务器

image-20240315122838054 直接推荐,云服务器,其他几个我实际上也没试过。

1.2 云服务器选择

云服务就去各大厂商随便购买云服务器就好,就自己用的话,就买那种新人优惠最便宜的。一般60-100包年那种最好(一定要带公网IP哈)。

品牌:最近(2024年3月)各大厂优惠力度也不错,反正尽量选大厂优惠大的。

机房地址:机房地址选择靠近自己工作地方,你在上海就选上海机房,你在浙江就选杭州机房。用大陆境外机房的云服务也能用,不过延迟就稍高了。

系统:尽量选择centos 7或者Ubuntu。尽量不要Windows,部署云服务来说并不方便

带宽:带宽实际体验1Mb也都能用了(远程调试代码),你要是用来远程桌面打游戏那就算了

硬盘及内存:内存尽量1G吧,硬盘一般都有几十G吧,一般不用考虑不够,至少对于这个任务来说是不会不够的

2.1 服务端搭建

下个Xshell,按照相应教程连接到你购买的云服务器。

Centos

yum install libzstd -y
wget https://github.com/ntop/n2n/releases/download/3.0/n2n-3.0.0-1038.x86_64.rpm
rpm -i n2n-3.0.0-1038.x86_64.rpm

Ubuntu:

sudo apt-get install autoconf make gcc -y 
wget https://github.com/ntop/n2n/archive/refs/tags/3.0.tar.gz
tar xzvf 3.0.tar.gz
cd n2n-3.0
./autogen.sh
./configure
make && make install

一直同意就行。

2.2 服务端启动

supernode -p 9527 -f ## 9527是你需要使用的端口,实际你可以自己设置想要的端口

之后显示一堆代码,最后一行显示:

supernode started

服务端(超级节点)就算启动了。

接下来有两个需要检查的东西:

①、云服务商那边的安全组一定要打开,一定要打开指定端口(如9527端口)的UDP的访问权限。打开方式各云服务器商设置不同,可以自行搜索。

②、理论上也可以自己打开防火墙指定端口的访问。

#firewalld
firewall-cmd --zone=public --add-port=9527/udp --permanent
firewall-cmd --reload
#iptables
iptables -I INPUT -p udp --dport 9527 -j ACCEPT
service iptables save
service iptables restart
#ufw
ufw allow 9527/udp

防火墙品类比较多,具体自己看看自己是哪个,这里的代码直接用了EasyN2N的教程代码。

关闭Supernode的方法,就是查找指定端口的程序,然后kill它,或者查找指定程序名“supernode”

lsof -i:9527
kill #程序的id

2.3 客户端下载与使用(被远程端,与远程端均需要下载)

推荐下载小黄鸭(EasyN2N)自带Ping比较方便,界面简洁。缺点:编写语言为国产易语言,容易误报毒。

下载连接:https://down.bugxia.com/files/n2n_client_windows_3.12_Pack_2.zip

下载解压就好,报毒通过下,如果怕毒,那可以用happyn,不过Windows似乎也要报毒,不过与小黄鸭的个人维护不同,happyn似乎是有公司的。

然后使用教程: https://bugxia.com/525.html 小黄鸭照着做就行;

https://happyncn.feishu.cn/wiki/wikcnT6QZilTz6XpDc7UVMOheKw happyn照着做,也提供安卓版,反正照做;

https://bugxia.com/2601.html hin2n教程;

Hin2n 安装包(蓝奏云):

https://www.lanzoub.com/iOTPG1rhmv4d 密码:ajbs

2.5 N2N打通连接

两边互相Ping 一下,ping通了就ok。如果有报错就看日志报错信息,常见报错Bug侠blog中有相关指导。

2.6 Windows 远程桌面

① 被控端打开 “远程桌面“:

搜索 远程桌面打开就行,Windows 7及以上都有这个功能(需要非家庭版)。

启用远程桌面

② 控制端设置:

Windows

设置你想要连接以使其允许远程连接的电脑:

  • 确保您拥有 Windows 10 专业版。若要查看,请转到 开始 Windows logo Start button > 设置 Gear-shaped Settings icon > 系统 > 简介并查找 版本。 欲了解如何获取信息,请转到 将 Windows 10 家庭版升级到 Windows 10 专业版 (即windows家庭版是不能作为主控端的,但是能作为被控端)可以去淘宝几块钱买码升级下,也可以自行破解

  • 准备好后,选择开始 >设置>系统>远程桌面,打开启用远程桌面

  • 记下如何连接到此电脑下的此电脑的名称。稍后将需要使用此名称

Android

微软官方Remote Desktop(大陆地区不支持下载,下方提供官方纯净安装包)

https://www.lanzoub.com/iFgXV1rhr7di 密码:9qn3

Mac

happyn部署后,安装Remote Desktop。

2.7 终章

Windows搜索打开应用,”远程桌面“ 输入你需要远程连接的Windows 以及你设置的N2N的内网IP,连接即可。 ps:在连接前,建议修改下显示设置,设置大小为合适大小。体验设置为低速宽带

安卓就添加电脑 设置上面的ip就好,一般不会有画面卡顿。

用户名,密码即你原主机的用户名与密码。

任何图像动画相关的远程显示都容易造成卡顿,所以不要轻易将网页等在远程最大化。

实际体验,上海用户1Mbs带宽,上海机房,双客户端千兆宽带。在1080p下采用低画质模式,几乎无任何卡顿,使用体验优于其他第三方产品。

image-20240315151255448

image-20240315151401599

总结与感想

以上所有方案,仅支持控制远程Windows桌面,其他系统不知道是不是有相关的局域网控制方案。这个体验是完全优于Teamviewer、Todesk、向日葵等的。缺点也比较明显,需要一定的技术力、需要公网、文件传输速度受限于公网的带宽(云服务器带宽)。有时候,办公室的电脑用来跑简单的深度学习,我想要监测它但又不想每天都去办公室盯着它,这个方案是一个不错的方案。还有,白嫖朋友的的高性能主机用来做点啥好玩的也不错。当然,局域网联机游戏自然是N2N能做的最起码工作。

3.17 补充:给ip套个皮(域名解析)

当完成上面操作时,在服务端地址栏,我们的输入为:服务端ip:端口号。ip不好记,而且泄露后有各种风险。这时候我们需要给这个ip套个域名解析。

首先你需要有一个域名,然后在将这个域名解析到你的ip,如果你的ip服务器在国内,那你的服务器需要备案。另一种方法是走cloudflare,具体cloudflare域名解析方法就自行找相关教程。你只需要将域名指向ip地址。然后在你的客户端就可以使用:域名:端口号 来进行连接。


怀揣梦想,翻越山海