前言

在家里的时候比较经常需要对公司的设备进行配置,使用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网络穿透内网的更多相关文章

  1. C#用UPnP穿透内网

    参考了网上的一篇文章,由于时间长了,具体地址不知道了. 引入了一个DLL: Interop.NATUPNPLib.dll,实现穿透局域网,进行Socket通信. using System; using ...

  2. 穿透内网,连接动态ip,内网ip打洞-----p2p实现原理(转)

    源: 穿透内网,连接动态ip,内网ip打洞-----p2p实现原理

  3. 1.使用frp穿透内网

    1.前因后果 1.1弃用ngrok 为节约服务器成本,花了500多块买了一个华为云得1G 1核心 5M得云服务器.然后用ngrok来穿透内网.一直用得还  但是今天在弄nginx得时候发现 ngrok ...

  4. centos7下使用n grok编译服务端和客户端穿透内网

    (发现博客园会屏蔽一些标题中的关键词,比如ngrok.内网穿透,原因不知,所以改了标题才能正常访问,) 有时候想在自己电脑.路由器或者树莓派上搭建一些web.vpn等服务让自己用,但是自己的电脑一般没 ...

  5. frp端口映射穿透内网

    前言 frp 是一个高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务,支持 TCP.UDP.HTTP.HTTPS 等协议类型,并且 web 服务支持根据域名进行路由转发. Github: ...

  6. FtpServer穿透内网访问配置踩笔记

    FtpServer穿透内网访问配置踩笔记 引言 FtpServer是服务器文件远程管理常用方式. 以前在局域网配置Ftp服务器以及使用公网上的Ftp服务均未碰到问题,固未对Ftp传输进行深入了解. 然 ...

  7. frp穿透内网使用vsftpd服务

    本篇文章将会介绍如何使用frp穿透内网以及如何在centos8环境下安装和使用vsftpd,最后在公网通过frp穿透内网使用ftp. 一.内网穿透神器frp frp 是一个专注于内网穿透的高性能的反向 ...

  8. 网络打洞(P2P软件穿透内网进行通信) 原理

    http://www.cnblogs.com/gansc23/archive/2010/10/20/1857066.html 首先先介绍一些基本概念:NAT(Network Address Trans ...

  9. 【网络】内网穿透方案&FRP内网穿透实战(基础版)

    目录 前言 方案 方案1:公网 方案2:第三方内网穿透软件 花生壳 cpolar 方案3:云服务器做反向代理 FRP简介 FRP资源 FRP原理 FRP配置教程之SSH 前期准备 服务器配置 下载FR ...

随机推荐

  1. JavaScript语言里判断一个整数是偶数还是奇数,并输出判断结果

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. Unity中有限状态机的用法教程

    Unity开发VR之Vuforia 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...

  3. 关于grub修复引导系统

    这周末遇到停电,机房的一台数据服务器启动不了,开机硬件自检以后,就停留在一个黑屏状态左上角有光标闪烁,却一直进入不了系统. 还好手里有centos6.5的系统盘,进入修复选项,具体进入修复请参照这里 ...

  4. Python全栈之路----常用模块----logging模块

    很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,loggin ...

  5. Codeforces 1105C: Ayoub and Lost Array(递推)

    time limit per test: 1 second memory limit per test: 256 megabytes input: standard input output: sta ...

  6. 20164322韩玉婷 -----Exp2 后门原理和实践

    一.后门的概念       后门是指那些绕过安全性控制而获取对系统访问权的程序 二.基础问题回答 (1)例举你能想到的一个后门进入到你系统中的可能方式? 非官方网站下载应用程序时,该应用程序可能绑定了 ...

  7. 小妖精的完美游戏教室——人工智能,A*算法,导航网络篇

    //================================================================//// Copyright (C) 2017 Team Saluk ...

  8. MySQL Sending data导致查询很慢的问题详细分析【转载】

    转自http://blog.csdn.net/yunhua_lee/article/details/8573621 [问题现象] 使用sphinx支持倒排索引,但sphinx从mysql查询源数据的时 ...

  9. session,cookie,sessionStorage,localStorage的区别及应用场景

    session,cookie,sessionStorage,localStorage的区别及应用场景 浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟 ...

  10. 什么是真正的Java技术,本篇文章让你了解

    “你学习一门技术的最佳时机是三年前,其次是现在.”这句话对于哪一种行业都很适用,如果你已经学习过Java,那么恭喜你你很有先见之明,如果你并不了解Java,这篇文章带你快速掌握Java的几个核心知识点 ...