[Linux] - n2n内网穿透
口水
内网穿透一般都需要在路由器中用NAT指向,或使用如TreamViewer之类的工具穿透内网实现远程控制。
n2n与之不同的是,它是p2p。也即是如同TreamViewer之类工具使用的是数据从服务器转发,而n2n则是点对点的数据直联。n2n需要一个supernode,只用于最初的打洞用,之后的交互均为直联模式。(好像也可以设置为转发模式,还没去尝试)
有兴趣的可以自行上网搜索原理,如文:http://blog.csdn.net/yetyongjin/article/details/7419894
下载
我已经打包好,直接下载即可:
https://files.cnblogs.com/files/HD/n2n.7z
此包包括了linux、windows、android的n2n所有,就不用大家一个个去下载找了。
准备
需要准备一台服务器(有固定IP的vps之类的),可以是windows也可以是linux,比如我这里的是:111.111.111.111
服务器安装
1、linux
解压n2n.7z,里头有一个n2n_linux.tar.gz文件,上传到服务器中,解压
1 | tar -zvxf n2n_linux. tar .gz |
进入n2n_linux目录,再进去n2n_v2目录(这里我使用的是v2新版本)
1 | make && make install |
将会看到如下安装完的信息:
1 2 3 4 5 6 7 8 | echo "MANDIR=/usr/share/man" MANDIR= /usr/share/man mkdir -p /usr/sbin /usr/share/man/man1 /usr/share/man/man7 /usr/share/man/man8 install -m755 supernode /usr/sbin/ install -m755 edge /usr/sbin/ install -m644 edge.8.gz /usr/share/man/man8/ install -m644 supernode.1.gz /usr/share/man/man1/ install -m644 n2n_v2.7.gz /usr/share/man/man7/ |
可以看到supernode安装在/usr/sbin/目录下。现在可以直接启动supernode了:
1 | /usr/sbin/supernode -l 6666 |
-l 6666,意思是使用6666端口开启supernode
2、windows
windows最简单,解压n2n.7z,里头目录n2n_win下有一个supernode.exe文件,打开cmd,输入:
1 | /usr/sbin/supernode -l 6666 |
-l 6666,意思是使用6666端口开启supernode
客户端安装
1、windows
在n2n_win文件夹下有一个tapinstall.exe文件,这个文件需要以管理员权限运行(怎么设置就不说了),设置完后,双击运行install.bat,安装tap adapter驱动。其实bat就是一句命令安装:
1 | tapinstall.exe install OemWin2k.inf tap0901 |
安装完驱动后,使用管理员权限打开cmd,cd到n2n_win目录,运行命令:
1 | edge2 -a 10.0.1.2 -c mynetwork -k password -l 111.111.111.111:6666 |
将看到如我类似的信息表似已经开启了这台客户端机子:
(也可以使用win程序运行,n2ngui.exe,同样,需要管理员权限运行,这里就不说了)
2、linux
与服务器安装一模一样,安装完后,只是启动命令不是supernode,而是edge:
1 | /usr/sbin/edge -a 10.0.1.1 -c mynetwork -k password -l 111.111.111.111:6666 |
3、Android
安装n2n.apk文件然后设置就可以了,怎么设置太简单了,这里就不说了。不过android要运行n2n,手机设置必需要root权限。
测试
已经安装好了,我们测试下连通性如何。
在linux上ping下windows客户端:
明显看到第一次ping返回时间需要比较久,后而就很快。原因就是上页说的,第一次需要先连上supernode服务器打洞,然后服务器再把两台机子对联起来成p2p。
在windows上ping linux客户端
最后说明
1、n2n使用的是UDP协议,如果两台机子在几分钟内没有数据交互,udp会自动断开连接,所以下一次连接时又会花费打洞时间。
2、本程序在win10中每次重启都需要先运行install.bat安装驱动,好像win10不会加到自动加载启动中。win7正常。目前程序只支持64位windows系统。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架