SG 的诞生简史
-
致谢花生壳
关于内网穿透,从技术的角度上讲,是个比较老的话题。我最早使用花生壳免费版实现反向域名解析,后来随着运营商网络调整,家用宽带进入 NAT3 时代,无法外网直连了,迫于代理网速过于感人,不得已的告别让我欠着花生壳一个会员,也让我重新思考:究竟需要什么样的内网穿透工具?
-
蜿蜒的路
很奇怪,技术人员的脑回路就是有些曲折,往往不是直达目标。那时的我,还是一个北漂的架构师,于是非常合理的决定先做网络引擎,当时 nginx 还不那么火,libev 尚不成熟,几经周折(业余时间少),做了个比 nginx 当时版本快了 40%左右的引擎( 24 线程 2.4MH 单服务器 双千兆网络,http empty QPS 为 130w+),同时也顺便做了个 c++ framework 框架(原由是觉得 ACE/boost 等框架太臃肿低效),这一晃又是几年过去了,后来为了写 framework 的 demo 时终于想起来:我是不是曾经想做个内网穿透工具呢?
到这个时候,智能手机已经是主流了,记得应该是 Android5.0 时代吧。或许各位看官脑袋里会有个问号了:这么久了怎么都没看到你说的穿透工具呢?不要怀疑,归根结底是源自内心深处的懒癌~,有人说“好的程序猿是懒的程序猿”,我是不是好的程序猿不知道,但一定是懒的和你比的那个。 -
由来
事情的起因是源于某一次的交流,客户现场的 PPT 材料版本中有个附件不是最新的,新版本在异地电脑上,且在家里,各种的因素(不凑巧)造成了交流前最终没能拿到最新版本(所幸未对结果造成影响)…于是,理由充分便有了 SG ,初衷是:我需要一个拿着手机就能一切搞定的安全穿透工具
SG 简介
- SG 全称:smarGate (不要追问为何不是 smartGate---谁会承认是当初漏写了一个字母懒得改?)
- SG 的定位是:安全、便捷、多功能的远程端口映射工具。
- 安全性体现在:P2P 点对点,使用 TCP 协议,支持 TLS 加密,手机作为建议的访问入口(私有网络,安全性高)
- 便捷性体现在:手机的移动性,有网络的地方都能通过手机进行穿透访问;手机 app 端一点配置
-
多功能体现在:既能支持基于手机 app 的安全代理访问,也能支持类似其它穿透工具的服务器到服务器间的穿透访问( v0.31 后版本)
- 安全穿透:“内网”到“内网”的穿透---自己使用(场景:摄像头、NAS 、RDP 、家中路由器、物联网等)
- 共享穿透:“外网”到“内网”的穿透---大家都能用(场景:自建 web 服务等)
- 多协议:支持 TCP (包括 HTTP/HTTPs/SOCKS5 及 UDP 协议)
-
其它非功能性特点:
- 体积小( mini 版 1M 左右),无需安装,解压即可用
- 跨平台(支持 windows 、linux 、MacOS 、openwrt 、android 等)
- 稳定性高,满足 7x24 不间断访问需求,避免异地设备重启不便问题
- cpu 及内存资源占用少(部分路由器设备资源有限)
- 网络变化时自动感知适应(自动识别并支持 IPv6 及 IPv4 ),无需人工干预
- 服务端最小化配置(可理解为只需配置设备 ID )