n2n网络穿透内网
前言
在家里的时候比较经常需要对公司的设备进行配置,使用teamviewer最近总是弹出窗口,很不爽,所以在网上搜索了能够穿透内网的软件n2n lanproxy natapp FCN ngrok等,恰好我有一台洛杉矶的VPS,所以拿n2n进行下测试。使用n2n的原因主要是因为免费、占用资源少、P2P。这个P2P真的让人吐槽
配置
网络拓扑:

公网服务器的配置
我的公网服务器其实就是一台VPS,IP地址107.174.21.2,操作系统是Debian9
命令如下:
vi /etc/apt/sources.list
deb http://ftp.us.debian.org/debian stretch main
deb http://ftp.de.debian.org/debian jessie main
ufw disable
apt-get remove iptables
apt-get install aptitude
aptitude install n2n
supernode -h
[版本是v.1.3.2]
nohup supernode -l 9000 &
公司电脑的配置
公司的电脑是ubuntu18.04.1,公司内部的IP地址是192.168.6.32在n2n网络中我准备给他配置的IP地址是10.1.1.1
命令如下:
vi /etc/apt/sources.list
deb http://ftp.us.debian.org/debian stretch main
deb http://ftp.de.debian.org/debian jessie main
ufw disable
apt-get remove iptables
apt-get install n2n
edge -h
[版本是v.1.3.2]
edge -d n2nvpn -c vpn -k password -a 10.1.1.1 -u 1000 -l 107.174.21.2:9000 >/dev/null &
家里笔记本的配置
家里的笔记本是win7,IP地址是192.168.1.5 在n2n网络中我准备给他配置的IP地址是10.1.1.3 拓扑图上写成10.1.1.2了,懒得改了
软件下载地址
配置截图如下:

然后点击Advanced

这时候就配置完成了。
注意事项
1.一定记得关防火墙,为此我多花了20分钟时间排故。。。。悲催
2.版本一定要一致.因为VPS的操作系统部署了其他软件,不方便随意更改操作系统,所以只能迁就VPS,debian下默认是1.3.2版本,所以我都改成了1.3.2版本,其实n2n有1.X 2.X
使用n2n网络
在家里的电脑上打开xshell然后ping测试

好悲催啊!VPS太慢了。
我执行ssh root@10.1.1.1,虽然能登录上去,但是明显感觉有非常大的延迟。不是说好的P2P么!!!
我家里的电脑和公司的电脑可是位于同一座城市啊!怎么可能这么慢!!!
n2n的各edge之间传输数据
在本次实验的拓扑里面,VPS主机就叫supernode,办公室和家里的电脑就是edge
edge之间的流量是否走 supernode完全取决于,两个 edge 节点所在的网络环境
1.如果是公网IP,则点对点传输数据,无需s-node介入
2.如果两端的路由器都是圆锥形NAT,注意「都是」圆锥形的NAT的话,两者之间可以直接传输数据,无需s-node介入
3.有一方面的设备在一个对称型的路由器后面,则无法完成点对点的直接传输,流量都需要superNode的中转。
虽然我不知道我是哪种情况,从实际效果来看,数据肯定是到洛杉矶绕了一圈回来的!!!
悲催啊!
难道还得整国内的VPS????
悲催!
补充:NAT类型

NAT分为两大类,基本的NAT和NAPT(Network Address/Port Translator)。 基本的NAT,它仅将内网主机的私有IP地址转换成公网IP地址,但并不将TCP/UDP端口信息进行转换,有动态与静态之区分。由于现在大部分都属于另一种类型,即NAPT,故这里不详细讨论基础NAT。 另外一种NAT叫做NAPT(Network Address/Port Translator),从名称上我们也可以看得出,NAPT不但会改变经过这个NAT设备的IP数据报的IP地址,还会改变IP数据报的TCP/UDP端口。
NAPT又分为锥型(Cone)和对称型(Symmetric),它们的区别在于,在NAT已分配端口号给Client A的情况下,如果Client A继续用1235端口与另一外网服务器通讯,锥型NAT还会继续用原来62000端口,即所分配的端口号不变。而对于对等型NAT,NAT将会分配另一端口号(如62001)给Client A的1235端口。也就是说,同一内网主机同一端口号,对于锥型NAT,无论与哪一外网主机通讯,都不改变所分配的端口号;而对于对等型NAT,同一内网主机同一端口号,每一次与不同的外网主机通讯,就重新分配另一个端口号。
目前比较常用的NAT类型是完全锥型NAT。
1.首先目前绝大多数的路由器都是非对称型NAT(Cone NAT),所以P2P技术才能正常使用。 对称/非对称的区别主要在于:网关设备在实现NAT时,对于内网某主机的若干个UDP连接请求,网关设备对应地在外网上所建立的UDP端口数量。
2.对称NAT是一个请求对应一个端口,非对称NAT是多个请求对应一个端口(象锥形,所以叫Cone NAT)。对称型NAT(Symmetric NAT)是无法实现P2P技术,流量必须经过supernode。
大部运营商提供的光猫上网服务都是锥形nat的。
而光纤入户,3g 4g网络,公共wifi登因为安全因素都是对称nat。
果然光纤入户不行啊!
后记
今天买了阿里云北京区的VPS一台用来测试,结果发现n2n还是不稳定,n2n这个软件降级为不推荐级别。请大家慎用。
n2n网络穿透内网的更多相关文章
- C#用UPnP穿透内网
参考了网上的一篇文章,由于时间长了,具体地址不知道了. 引入了一个DLL: Interop.NATUPNPLib.dll,实现穿透局域网,进行Socket通信. using System; using ...
- 穿透内网,连接动态ip,内网ip打洞-----p2p实现原理(转)
源: 穿透内网,连接动态ip,内网ip打洞-----p2p实现原理
- 1.使用frp穿透内网
1.前因后果 1.1弃用ngrok 为节约服务器成本,花了500多块买了一个华为云得1G 1核心 5M得云服务器.然后用ngrok来穿透内网.一直用得还 但是今天在弄nginx得时候发现 ngrok ...
- centos7下使用n grok编译服务端和客户端穿透内网
(发现博客园会屏蔽一些标题中的关键词,比如ngrok.内网穿透,原因不知,所以改了标题才能正常访问,) 有时候想在自己电脑.路由器或者树莓派上搭建一些web.vpn等服务让自己用,但是自己的电脑一般没 ...
- frp端口映射穿透内网
前言 frp 是一个高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务,支持 TCP.UDP.HTTP.HTTPS 等协议类型,并且 web 服务支持根据域名进行路由转发. Github: ...
- FtpServer穿透内网访问配置踩笔记
FtpServer穿透内网访问配置踩笔记 引言 FtpServer是服务器文件远程管理常用方式. 以前在局域网配置Ftp服务器以及使用公网上的Ftp服务均未碰到问题,固未对Ftp传输进行深入了解. 然 ...
- frp穿透内网使用vsftpd服务
本篇文章将会介绍如何使用frp穿透内网以及如何在centos8环境下安装和使用vsftpd,最后在公网通过frp穿透内网使用ftp. 一.内网穿透神器frp frp 是一个专注于内网穿透的高性能的反向 ...
- 网络打洞(P2P软件穿透内网进行通信) 原理
http://www.cnblogs.com/gansc23/archive/2010/10/20/1857066.html 首先先介绍一些基本概念:NAT(Network Address Trans ...
- 【网络】内网穿透方案&FRP内网穿透实战(基础版)
目录 前言 方案 方案1:公网 方案2:第三方内网穿透软件 花生壳 cpolar 方案3:云服务器做反向代理 FRP简介 FRP资源 FRP原理 FRP配置教程之SSH 前期准备 服务器配置 下载FR ...
随机推荐
- 开发Canvas 绘画应用(一):搭好框架
毕业汪今年要毕业啦,毕设做的是三维模型草图检索,年前将算法移植到移动端做了一个小应用(利用nodejs搭的服务),正好也趁此机会可以将前端的 Canvas 好好学一下~~毕设差不多做完了,现将思路和代 ...
- Python3.7和数据库MySQL交互(二)SQLyog安装教程
首先安装MySQL数据库,初学者建议选择图形化客户端. Toad for MySQL.MySQL-Front.Navicat for MySQL.SQLyog. 官方下载链接: Toad for My ...
- 使用min-device-pixel-ratio媒体功能实现真正的1像素border
关于设备像素比的知识,想必做过移动端开发的都有接触,这里就不介绍啦,万一有不懂的可以看张鑫旭大神的设备像素比devicePixelRatio简单介绍 由于设备像素比存在的原因,我们在处理设计图的一些边 ...
- angular6实现对象转换数组对象
1 使用表单获取到数据以后,是对象类型的数据如下图 而后台需要返回的数据是这种key:value的形式传入 2 废话不多说直接上代码(代码只截取部分,仅供参考跑不起来,最后又一个小demo可以运行 ...
- Linux压缩和解压缩
1.tar.gz tar.gz这种格式是Linux下使用得最多的压缩格式.它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率. tar -zcvf archive_name.tar.gz ...
- Charles 注册码/破解/激活
Charles 注册码 软件去官网下载安装即可. 适用于Charles任意版本的注册码 Charles 4.2.7 目前是最新版,可用. Registered Name: https://zhil ...
- hadoop的一点小常识(1.0环境)
- SOFARPC —— Generic Service (泛化调用) 解析
今晚心情无比激动,多云转晴!原因在于弄懂些 Generic Service 实现原理,很有成就感. 各位看官莫笑,今晚,小小的收获,也是非常满足的.下面进入正题! 一.前言 普遍RPC在客户端需要提供 ...
- streamreader 和 streamwriter 以及 string 与 memorystream 使用示例
经常用到,但老记不住,备忘一下 using (var ms = new MemoryStream()) { var sw = new StreamWriter(ms); sw.WriteLine(&q ...
- C# partial 关健字说明
参考:http://blog.csdn.net/niemeiquan/article/details/7801803 1. 什么是局部类型? C# 2.0 引入了局部类型的概念.局部类型允许我们将一个 ...