开源免费的内 穿透工具

【导语】: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 安装:

    
    

    小秋在windows上使用,直接下载inlets.exe文件并在命令行中执行,下载地址为:

    https://github.com/inlets/inlets/releases

    启动隧道服务端

    这一步需要在有公 IP的机器上操作,以达到将内 服务映射出 的目的。(小秋没有这样的服务器,直接在本机安装,无法映射出公 ,但是也能完成代理映射的过程,而过程都是一样的。)

    下载了 inlets.exe,放到 F 盘下,执行命令启动:

    
    

    如下图:

    运行HTTP服务

    使用Python内置的HTTP服务做测试:

    
    

    如下图:

    访问localhost:3000

    启动inlets客户端

    在和HTTP服务同一台机器上启动inlets客户端,执行以下命令:

    
    
  • –remote参数必须设置为出口节点的IP
  • –upstream参数即为需要暴露的内 服务的ip和端口
  • 如下图:

    访问出口节点:

    其他

    以上可以说是 inlets 最基本也最常用的功能,inlets还有更多高级功能,感兴趣的童鞋可以试试:

  • 支持Docker安装部署
  • 单出口节点多服务
  • 为控制平面设定笃定端口
  • 声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2021年1月1日
    下一篇 2021年1月1日

    相关推荐