前言
在家里的时候比较经常需要对公司的设备进行配置,使用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这个软件降级为不推荐级别。请大家慎用。