【導語】:inlets 是一個基于 WebSocket 隧道實現的內網穿透工具,可以將本地服務暴露到公網。
簡介
inlets 利用反向代理和 Websocket 隧道,將內部或開發中的服務通過出口節點暴露到公網。出口節點可以是一個 VPS,也可以是任何帶有公網 IPv4 的電腦。
類似的工具還有 Ngrok、Argo Tunnel 等,但這兩者都是閉源的,有其本身的限制,價格不菲,以及對 arm/arm64 的支持有限。Ngrok 還經常會被公司防火墻策略攔截而導致無法使用。而其它開源的隧道工具,基本只考慮到靜態地配置單個隧道。inlets 旨在動態地發現本地服務,通過 Websocket 隧道將它們暴露到公網 IP 或域名,并自動化配置 TLS 證書。
inlets 已完成以下功能:
-
基于客戶端的定義,自動在出口節點創建服務入口
- 通過 DNS / 域名實現單端口、單 Websocket 承載多站點
- 利用 SSL over Websockets 實現鏈路加密(wss://)
- 自動重連
-
通過 Service Account 或 HTTP Basic Auth 實現權限認證
- 通過 HTTP01 challenge 使用 LetsEncrypt Staging 或 Production 簽發證書
- 原生跨平臺支持,包括 ARMHF 和 ARM64 架構
- 提供 Dockerfile 以及 Kubernetes YAML 文件
- 自動發現并實例化 Kubernetes 集群內 LoadBalancer 類型的 Service - inlets-operator
- 除 HTTP(s) 以外,還支持在隧道內傳輸 Websocket 流量
項目地址:
https://github.com/inlets/inlets
簡單使用
詳細的安裝部署步驟參考官網,小秋這里簡單介紹一下上手安裝的步驟(也是參考官網的操作),省去了token的生成。
安裝inlets服務
官網推薦使用 brew 或 curl 安裝:
#安裝到當前目錄
curl-sLShttps://get.inlets.dev|sh
#安裝到/usr/local/bin/
curl-sLShttps://get.inlets.dev|sudosh
#使用brew安裝
brewinstallinlets
小秋在windows上使用,直接下載inlets.exe文件并在命令行中執行,下載地址為:
https://github.com/inlets/inlets/releases
啟動隧道服務端
這一步需要在有公網IP的機器上操作,以達到將內網服務映射出網的目的。(小秋沒有這樣的服務器,直接在本機安裝,無法映射出公網,但是也能完成代理映射的過程,而過程都是一樣的。)
下載了 inlets.exe,放到 F 盤下,執行命令啟動:
/f/inlets/inlets.exeserver--port=8090
如下圖:
運行HTTP服務
使用Python內置的HTTP服務做測試:
mkdirinlets-test
cd/inlets-test
touchhello-world
python-mhttp.server3000
如下圖:
訪問localhost:3000
啟動inlets客戶端
在和HTTP服務同一臺機器上啟動inlets客戶端,執行以下命令:
/f/inlets/inlets.execlient--remote=192.168.244.1:8090--upstream=http://127.0.0.1:3000
如下圖:
訪問出口節點:
其他
以上可以說是 inlets 最基本也最常用的功能,inlets還有更多高級功能,感興趣的童鞋可以試試:
- 支持Docker安裝部署
- 單出口節點多服務
- 為控制平面設定篤定端口
責任編輯:xj
原文標題:7200 Star!開源免費的內網穿透工具
文章出處:【微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
-
內網
+關注
關注
0文章
38瀏覽量
9002 -
WebSocket
+關注
關注
0文章
29瀏覽量
3757 -
外網
+關注
關注
0文章
5瀏覽量
3379
原文標題:7200 Star!開源免費的內網穿透工具
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論