来自:开源中国社区(oschina2013)
最近没哪些事情,看了一些关于内网穿透的文章,因我本身已是做陌陌开发相关的工作,对这部份关注的比较多,现分享给你们。
首先说下内网穿透的原理。
NAPT原理
在NAT网段上会有一张映射表,表上记录了外网向网段那个IP和端口发起了恳求,然后假如外网有主机向网段设备发起了恳求,内网主机的恳求数据包传输到了NAT网段上,那么NAT网段会更改该数据包的源IP地址和源端口为NAT网段自身的IP地址和任意一个不冲突的自身未使用的端口,并且把这个更改记录到那张映射表上。最后把更改以后的数据包发送到恳求的目标主机,等目标主机发回了响应包以后,再依照响应包上面的目的IP地址和目的端口去映射表上面找到该转发给那个外网主机。这样就实现了外网主机在没有公网IP的情况下,通过NAPT技术利用路由器惟一的一个公网IP来访问网段设备。 具体原理参照右图:
更加具体的原理性介绍可以看下这篇文档:【技巧】内网穿透工具的原理与开发实战
我了解的外网穿透工具
Ngrok
Natapp
小米球
Sunny-Ngrok
echosite
Ssh、autossh
Lanproxy
Spike
花生壳
前5个都是基于美国的ngrok来进行二次开发的。
1、Ngrok
ngrok是一个反向代理,通过在公共端点和本地运行的 Web 服务器之间构建一个安全的通道,实现外网主机的服务可以曝露给内网。ngrok 可捕获和剖析所有通道上的流量,便于后期剖析和重放,所以ngrok可以很方便地协助服务端程序测试。
参考博客:10分钟教你搭建自己的ngrok服务器
2、Natapp
natapp是 基于ngrok的国外收费外网穿透工具,类似花生壳,有免费版本,比花生壳好。免费版本:提供http,https,tcp全隧洞穿透,随机域名/TCP端口传奇私服内网穿透软件_内网穿透 免费_内网穿透技术,不定时强制更换域名/端口,自定义本地端口
参考文章:NATAPP1分钟快速菜鸟图文教程
3、小米球
小米球是基于ngrok二次开发的外网穿透工具,支持多合同、多隧洞、多端口同时映射(http、https、tcp等等...),同时支持多种系统win、linux、linux_arm、mac等。具体的使用直接参考官网。
4、Sunny-Ngrok
Sunny-Ngrok同样是ngrok二次开发的外网穿透工具,支持http,https合同,同时支持更丰富的系统和语言:linux、win、mac、openwrt、 python、php等。
教程:Sunny-Ngrok使用教程
5、echosite
echosite同样ngrok二次开发的外网穿透工具,支持多种合同,以前是全部免费的,现在推出了收费版和免费版,可依照自己的须要去选择。
参考教程:EchoSite---让外网穿透显得简单
6、Ssh、autossh
ssh 配合autossh工具使用,因为autossh会容错,自动重新启动SSH会话和隧洞。autossh是一个程序,用于启动ssh的副本并进行监控,在死亡或停止传输流量时按照须要重新启动它。 这个看法来自rstunnel(Reliable SSH Tunnel),但是在C中实现。作者的观点是,它不象匆匆忙忙的工作这么容易。使用端口转发支路或远程回显服务进行联接监视。在碰到联接拒绝等快速故障时,关闭联接尝试的速率。在OpenBSD传奇私服内网穿透软件,Linux,Solaris,Mac OS X,Cygwin和AIX上编译和测试; 应该在其他BSD上工作。免费软件。
使用教程:SSH内网穿透
7、Lanproxy
lanproxy是一个将局域网个人笔记本、服务器代理到网段的外网穿透工具,目前仅支持tcp流量转发,可支持任何tcp下层合同(访问外网网站、本地支付插口调试、ssh访问、远程桌面...)。目前市面上提供类似服务的有花生壳、TeamView、GoToMyCloud等等,但要使用第三方的网段服务器就必须为第三方付费,并且这种服务都有各种各样的限制,此外,由于数据包会流经第三方,因此对数据安全也是一大隐患。
(责任编辑:admin)
|
||||||||
★★★★★★★ | ★★★★★★★ | ★★★★ | ★★★★ | ★★★★★★★★★★★★★★★★- ★★ | ★★★★★★ | ★★★★★★★★ |