内网穿透系列——总结&预告

这个系列还是花了我一番脑筋的,而且难得写得挺快没拖太久。主要是在挑选写啥上面纠结了一下,本来还打算写个Tinc的,不过实际上研究了下这玩意配置起来还是有点麻烦的,增加删除节点都需要在多个节点上修改配置文件,而且这个个人感觉比较偏向于常规VPN而不是用于内网穿透的,所以折腾了半天还是放弃了。

另外本来还有三个目标的,不过实在是懒得写了,所以有兴趣的可以去研究一下,使用都不复杂

①Pangolin (穿山甲) : https://github.com/qgy18/pangolin

这个是imququ的博主使用Node.js开发的,在客户端与服务端之间采用HTTP/2封装传输数据,有中文文档。

②lunnel : https://github.com/longXboy/lunnel

这个也是用Go写的,作者因为ngrok 1.x的bug所以自己开发了一个,支持 HTTP, HTTPS, UDP, TCP、Unix socket 协议,同时可以选择使用TCP或者KCP来传输。

③localtunnel : https://github.com/localtunnel/localtunnel

这个貌似只能用于HTTP/HTTPS协议来着,我也没细看,连接后会提供一个域名以便直接访问你本地的Web网站,这个是客户端,还有个服务端,在它的README里有

 

后面打算补完一下Aria2相关的插件或者软件啥的,然后再扩展一下各种下载工具系列

内网穿透系列——Dog Tunnel ( 狗洞,支持KCP,高效快速的P2P隧道 )

一.介绍

Dog Tunnel官方中文名就是狗洞,是由中国开发者 vzex 开发的,在KCP出现后进行了重构,将其底层UDP支持替换为了KCP,使其效率大大提高,在某些恶劣的网络环境下依旧能有不错的效果。当然,它也是支持TCP模式的,另外它也是支持加密的,在P2P打洞失败的情况下也能够自动切换为C/S模式来使用服务器中转。需要了解的是,Dog Tunnel也提供了Lite版本,仅支持P2P模式,数据完全不通过任何第三方服务器中转,保证了安全性,当然,这就要求了打洞的双方至少有一方拥有公网IP。

和N2N类似的是,它也支持多个服务器,能够在多连接的情况下自动切换负载均衡以便提高速度。还有一个特殊之处,是其原生支持socks5代理,可以在公司网络等特殊网络环境下实现特定需求。

二.安装

作者提供了热门平台的二进制程序,可以到官网下载——>传送门

带Lite的就是Lite版,反之就是常规版本

当然,如果你有特殊需求,比如想用最新的,但是还没有出Release,那么可以自己编译一下

因为Dog Tunnel也是由Go写的,所以还是照例安装一下Go 阅读全文→

内网穿透系列——ZeroTier(能在容器中不依赖TUN/TAP使用的P2P VPN)

一.介绍

一直以来,我只知道日本某大学开发的某款软件可以在没有TUN/TAP驱动的容器中运行,而且效率还相当一般,直到我后来发现了ZeroTier,这玩意有常规的TUN/TAP模式,也有一个特殊的Network Containers 模式(目前已经改名为ZeroTier SDK——>然后又变成libzt了 ),通过实现一个轻量级的应用层 TCP/IP API 来 hook 现有应用程序的 Socket API,这样可以使现有的程序也能使用 ZeroTier 技术连接其它主机,也是挺牛逼的,不过不清楚是否有兼容性问题,个人感觉效率应该会比某软件的SecureNAT要高不少。

和其它P2P VPN不同的是这个是有个后台来管理维护你的私人网络的,而它的加入网络是通过一串唯一的ID来实现的,它还有Peer和Controller等一些概念,个人根据其在GitHub上开源的内容来看,它的Controller是个API控制端,Peers负责构建它的整个网络底层架构,这里面还有Planet和Leaf两种类型的节点,当Join命令发出时,你的客户端会接入这个网络,并在网络中注册唯一ID,然后根据你Join所选择的ID从Controller拉取网络配置。

二.安装配置

这个主要得看你安装的环境,在正常的支持TUN/TAP的环境下,一切都很简单,官方提供了一键,具体请查看官方网站——>传送门

自动识别是Debian系还是RedHat系,全自动,美滋滋。对于Mac和Windows来说,提供了安装包,手机客户端也都有,甚至还有各种NAS平台的插件包,也是非常方便

之后先在官方管理后台——>传送门   注册账号,然后创建一个Network并为其配置基本的属性,比如分配的IP地址段之类的 阅读全文→

内网穿透系列——N2N(简单的P2P组网方案)

一.介绍

前面介绍的其实内网穿透方案更大意义上是端口转发或者反向代理,而这次要提的,则是P2P组网方案,要知道P2P在打洞穿透方面优势是挺大的,而且成功打洞之后不通过第三方服务器直接连接,能够不受第三方服务器的带宽限制,而如果没有成功打洞,则可以通过第三方服务器中转,进退皆有路,一定意义上来说是最好的解决方案。

在这一类P2P VPN中比较出名的几种有N2N、Tinc、PeerVPN以及ZeroTier,本次介绍的是N2N。

N2N是开源的,其作者是Ntop作者Luca Deri,也是个牛人,可惜的是他现在已经不再维护N2N,也不知道是啥原因,不过还好开源社区有其他人加入了维护,并且已经成熟了,Bug也没啥太严重的,所以没啥问题,还是挺好用的,N2N分为SuperNode和EdgeNode,前者被称为超级节点,能够在EdgeNode之间建立握手并为无法直连的EdgeNode中转数据,是网络的核心部分。当然由于SuperNode的重要性,N2N支持为EdgeNode指定多个SuperNode,以便组成更复杂的网络,并且防止单个SuperNode出问题导致的整个网络瘫痪。

二.安装配置

N2N的安装其实挺简单的,因为没太多依赖

然后就装好了,会生成supernode和edge两个可执行程序,看看名字就知道一个是SuperNode一个是EdgeNode 阅读全文→

内网穿透系列——SSH反向隧道 (最简单的内网穿透方案)

一.介绍

前面介绍了ngrok和frp,虽然好用,但是对于某些很简单的需求来说可能也麻烦了,最好有啥能一键搞定的,这种情况下,你可能需要SSH反向连接了。

当然,由于SSH的特殊性,建议使用的服务器为国内服务器,以减小特殊干扰和网络波动导致的可能的瞎几把断线。

二.配置

这个对于Linux服务器来说,肯定有ssh对吧,没有你怎么连接的???所以我们也不考虑服务器需要安装点啥了,当然为了防止断线的情况,我们还是要装个程序滴,这个后面说。

①如果你本地也是Linux,或者装了比如Git啊Cygwin啥的,那么你本地就能直接执行ssh命令了,在这种情况下,一键(建议先不加-f参数来确认能否连上)

那个客户端能访问的IP我说明下,可以是本地比如localhost,也可以是局域网IP,甚至可以是你本地所能访问到的其它的IP,这种可能出现在多层局域网内,比如公司啥的,而远程IP可以省略其实,如果需要开放给公网请使用远程服务器的公网IP,另外-p指定ssh端口的参数默认是22,如果你是22的话可以省略,如果你用的不是密码的话请使用 -i 参数来指定key文件 阅读全文→