【导语】: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文章
37浏览量
8975 -
WebSocket
+关注
关注
0文章
29浏览量
3735 -
外网
+关注
关注
0文章
5浏览量
3357
原文标题:7200 Star!开源免费的内网穿透工具
文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论