本文假定讀者已知道內(nèi)網(wǎng)穿透相關(guān)認知。
或許你用過花生殼、frp枪蘑、ngrok、teamview等穿透工具岖免,今天要給大家介紹的是smarGate(https://github.com/lazy-luo/smarGate)
1岳颇、samrGate是什么?
? ? 官方命名為“移動網(wǎng)關(guān)”颅湘,通過手機客戶端將位于內(nèi)網(wǎng)的服務端網(wǎng)絡(luò)進行按需暴露话侧。
?? ? 具備如下特點:
?? ? 安全性?
? ? ? ? 傳統(tǒng)的穿透類產(chǎn)品通常直接將訪問入口定義到公網(wǎng)服務器上,就像將自家防盜門放到公共場所闯参,即使需要鑰匙瞻鹏,也難防技藝高超的開鎖匠烤黍。
? ? ? ? ? smarGate的做法是將防盜門隨身攜帶拯爽,自主可控隧膏,想共享的話也簡單接入wifi或讓別人接入你的手機熱點就OK了矢炼。
? ? ? ? 數(shù)據(jù)傳輸使用SSL加密隅肥,防止信息泄露
?? ? 擴展性
? ? ? ? ?基于內(nèi)網(wǎng)網(wǎng)段代理祖秒,可以配合眾多工具實現(xiàn)各種網(wǎng)絡(luò)服務能力(telnet颅筋、ssh慈参、http服務、內(nèi)網(wǎng)攝像頭涩蜘、遠程桌面等)
? ? ? ? 面向極客嚼贡,可訪問自定義的內(nèi)網(wǎng)服務(rpc)
?? ? 便利性
? ? ? ?手機客戶端一點配置
? ? ? ?服務能力動態(tài)增減
2、samrGate有什么技術(shù)特點同诫?
? ? ? 支持代理穿透
? ? ? ? ?官方提供免費的代理服務器
? ? ? ? ?如果自己有云服務器(具備公網(wǎng)ip)粤策,用戶可自定義自己的代理服務器,且在代理服務器上安裝proxy_server误窖。所有數(shù)據(jù)傳輸走用戶配置的代理服務器(為了防止中間人攻擊叮盘,代理服務器需要用戶生成自簽名證書)
? ? ? 支持p2p通道
? ? ? ? 使用TCP協(xié)議進行p2p穿透,提升安全性
? ? ? ?注:不是所有的網(wǎng)絡(luò)都支持p2p霹俺,取決于兩端NAT類型
3柔吼、smartGate使用
? ? ? a、到官網(wǎng)下載app端及適合的服務端(服務端運行在你的私有網(wǎng)絡(luò)主機上丙唧,說明文件中有網(wǎng)盤鏈接)
? ? ????由于家里的服務器是樹莓派愈魏,因此下載arm版服務端
? ? ? b、使用app客戶端注冊用戶想际,記住用戶對應的“服務ID”(請?zhí)顚懰许椗嗦_保注冊能成功)。
? ? ? c胡本、將服務ID配置到你的服務端配置文件中
? ? ? ? 首先解壓服務端包(我放到了 /server 目錄下,server.crt及server.key為自己生成的證書及私鑰)
? ? ? 配置文件如下(自己正好有個阿里云ECS機器牌柄,1c 2G 1M 配置,有外網(wǎng)ip侧甫,所以放了各私有代理珊佣,配置進去):
? ? ??d、啟動服務端
? ? ? e披粟、登錄手機app彩扔,設(shè)置需要的內(nèi)網(wǎng)服務
????家里有臺windows筆記本,內(nèi)網(wǎng)ip為192.168.3.11 僻爽,已打開遠程桌面服務虫碉,因此先配置一個遠程桌面穿透服務,手機本地端口為3389---》映射到內(nèi)網(wǎng)windows筆記本(192.168.3.11)3389端口胸梆,另外順便開放樹莓派的ssh服務敦捧,手機本地端口為10022.
? ? ? f、使用手機或電腦訪問配置的服務
? ? 手機端使用服務(配置遠程桌面碰镜,指向localhost):
配置:再試試ssh服務:
連接成功:
重要說明:
Android 客戶端需要權(quán)限:
????1兢卵、后臺執(zhí)行權(quán)限(如果不允許,則app進入后臺會斷開連接)
????2绪颖、網(wǎng)絡(luò)訪問權(quán)限(基本權(quán)限)
手機設(shè)置 (Android):
????1秽荤、設(shè)置 -> 無線及網(wǎng)絡(luò) -> WLAN -> 系統(tǒng)休眠保持連接 "允許" (否則,系統(tǒng)休眠會被斷連)
????2、設(shè)置 -> 無線及網(wǎng)絡(luò) -> 移動網(wǎng)絡(luò) -> 高級 ->始終保持數(shù)據(jù)連接 "允許"
詳細配置窃款,見官網(wǎng)說明