前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一款让跨网络访问变简单的工具——turbo-tunnel

一款让跨网络访问变简单的工具——turbo-tunnel

作者头像
drunkdream
发布2021-03-03 15:56:24
1.9K0
发布2021-03-03 15:56:24
举报
文章被收录于专栏:醉梦轩醉梦轩

0x00 前言

你是否遇到过以下这些情况:

  • 目标服务需要通过跳板机才能访问,每次都要将端口映射到本地,然后配置hosts访问
  • 不同的服务需要配置不同的代理才能访问,管理起来很不方便
  • 有些服务需要通过嵌套代理才能访问,本地不太好配置
  • 本地开发、调试后端服务时,对于第三方依赖服务难以直连或通过同一个代理访问,而服务进程又只能配置固定的代理

总的来说,就是因为不同的开发、运维环境差异导致的跨网络访问,会影响到我们日常的开发、调试工作,而turbo-tunnel就是为了解决这一问题而诞生的。

0x01 常见的跨网络方式

HTTPS代理

HTTPS代理是最常见的代理类型,多数在内网中使用,浏览器等应用可以直接用它来访问https的网站,但一般也可以访问其它任意类型的TCP服务,如:FTP、SSH、VNC等。

SSH隧道

SSH隧道是一种常见的跨网络访问方式,一般以跳板机的形式提供。用户通过端口映射的方式访问目标网络区域里的服务。

Websocket代理

Websocket代理不是一种标准的代理协议,因此,不同实现的协议会有一些差别,难以做到兼容。但这种方式最大的优势是:可以充分利用Web较好的访问连通性,从而实现在更多场景下的跨网络访问。同时,该协议是一种类似于TCP的流式协议,可以做到全双工通信,避免了HTTP本身短连接带来的通信实时性不高问题。

另一方面,由于并非标准的代理协议,安全检查机制一般很难判断这是一个正常的Websocket服务,还是一个代理服务。通过与Nginx以及HTTPS的结合,可以进一步提升安全性,降低被检测出来的风险。

其它代理

其它常见的代理协议还有Socks4Socks5等,但使用上不及HTTPS广泛。

0x02 嵌套访问

嵌套访问是一种很常见的使用场景,例如:在公司内需要先通过HTTPS访问外网,然后再通过公网的一台SSH跳板机来访问真正的目标服务,甚至有可能还要多次穿越SSH隧道。在不借助特定工具的情况下,这种场景一般比较难以支持,就算能够支持也比较复杂。

支持嵌套访问的原理是:建立每一层的代理连接后,都会告诉它下一跳代理的地址,这样会建立一个请求链,最终将请求发送到真正的目标服务。

turbo-tunnel目前支持将HTTPSSSHWebsocketSOCKS4等代理或隧道,进行任意层级或顺序的组合,从而达到支持嵌套访问的目的。

0x03 支持配置文件

将配置存储到文件,可以避免因进程退出或系统重启导致的配置丢失问题,而且在配置内容较多时,可以有效地管理这些配置,避免混乱。如果需要将配置迁移到另一台机器,也只需要将配置文件拷贝到另一台机器即可。

turbo-tunnel使用yaml格式来管理配置,具体使用方式可以参考文档

0x04 路由管理

在多个代理并存的情况下,必然会出现不同目标服务使用不同代理的需求。这种情况就需要进行路由的管理,这和Proxifier中的规则配置是一致的。

turbo-tunnel通过在配置文件中配置路由规则,允许用户根据目标服务的域名、IP、端口等信息进行路由管理,并且可以设置规则的优先级。

0x05 使用本地的统一代理

turbo-tunnel可以在本地建立一个统一的代理服务(推荐使用http/https代理),自动将接收到请求进行路由分发。用户可以使用以下一些方式来使用这个代理服务:

  • 配置http_proxyhttps_proxy环境变量,很多命令行工具,如:curl,会读取这个环境变量并通过代理访问。
  • 浏览器可以通过配置代理服务器的地址,来将所有流量导入到本地的代理服务。
  • Windows和MacOS推荐使用Proxifier,规则可以设大一些,这样能够实现全局透明代理,应用程序不用再单独设置了。
  • Linux可以使用proxychains等工具进行流量转发,使用时在命令行前面加上proxychains,这样不会影响其它命令,较为灵活。

0x06 总结

turbo-tunnel是一款为简化复杂场景下跨网络访问的工具,提供了多种代理/隧道协议的支持,相信它能为你的工作带来帮助。

详细文档地址:https://ttun.top/

Github项目地址:https://github.com/drunkdream/turbo-tunnel

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x00 前言
  • 0x01 常见的跨网络方式
    • HTTPS代理
      • SSH隧道
        • Websocket代理
          • 其它代理
          • 0x02 嵌套访问
          • 0x03 支持配置文件
          • 0x04 路由管理
          • 0x05 使用本地的统一代理
          • 0x06 总结
          相关产品与服务
          命令行工具
          腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档