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 ...
随机推荐
- python学习6---字典合并
1.针对python3版本 d1={'gao':1,'luo':2} d2={'liu':3,'jia':4} dictMerged1=dict(d1,**d2) print(dictMerged1) ...
- js数组遍历方法总结
数组遍历方法 1.for循环 使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果才会比较明显. 1 2 3 for(j = 0,len=arr.length; j < le ...
- BBS
__init__.py # 这个告诉程序用的是什么数据库import pymysql pymysql.install_as_MySQLdb() settings.py import os # Buil ...
- javaSE-多线程
[线程池概念] 由于系统启动一个新线程的成本是比较高的,因为他涉及与操作系统的交互(这也就是为什么可以有百万个Goroutines,却只有几千个java线程).在这种情形下,使用线程池可以很好地提高性 ...
- python中讲的好的内容记载
什么是Name_mangling以及python的下划线约定 (转载来源:https://blog.csdn.net/handsomekang/article/details/40303207)
- 枪弹辩驳(弹丸论破)即将登陆PC
Spike Chunsoft在PSP上的经典推理游戏: 枪弹辩驳1(Danganronpa: Trigger Happy Havoc)即将登陆PC, PC党有福了. 不过我在PSVita上已经玩完了两 ...
- java数据结构之链表(java核心卷Ⅰ读书笔记)
1.链表 数组和ArrayList的一个重大缺陷就是:从中间位置删除一个元素要付出很大的代价,因为在这个元素删除之后,所有的元素都要向前端移动,在中间的某个位置插入一个元素也是这个原因. (小感悟:s ...
- mac电脑上如何启动mysql
export PATH=$PATH:/usr/local/mysql/bin/ mysql -uroot -p
- ffmpeg-4.1.1-win64-dev在vs2017的搭建
没得话讲,先在官网下载对应的源码,下载dev/文件夹下的源码和静态链接库 ,下载/shared文件夹下的动态链接库 官网地址:https://ffmpeg.zeranoe.com/builds/wi ...
- 正则替换HTML里的style属性
一个网友问: <p class="a" style="font-size: 12pt; font-family: ""; color: red ...