Reverst:基于QUIC协议和HTTP3的反向隧道工具

关于Reverst

Reverst是一款功能强大的反向隧道工具,Reverst由一个具备负载均衡功能的反向隧道服务器和一个服务器-客户端库组成,该工具使用Go语言开发,基于QUIC和HTTP/3实现其功能。

关于QUIC和HTTP/3

QUIC,即快速UDP互联网连接协议。QUIC(Quick UDP Internet Connections)是由 Google 从2013年开始研究的基于UDP的可靠传输协议,它最早的原型是SPDY + QUIC-Crypto + Reliable UDP,后来经历了SPDY转型为2015年5月IETF 正式发布的HTTP/2.0。考虑到HTTP/2.0和TLS/1.3的发布,它的核心协议族逐步进化为现在的HTTP/3.0 + TLS/1.3 + QUIC-Transport的组合。

而HTTP3则是在保持QUIC稳定性的同时使用UDP来实现高速度(选择QUIC就是选择UDP), 同时又不会牺牲TLS的安全性。HTTP/3的传输层不是TCP,而是UDP+QUIC。

工具特性

当前版本的Reverst具备以下特性:

1、Go语言驱动:基于纯Go语言开发,使用了quic-go库;

2、兼容性;client包(Go)基于net/http标准库抽象实现;

3、负载均衡:可以在同一个隧道运行多个服务实例;

4、高性能:基于QUIC和HTTP/3实现其功能;

使用场景

Reverst主要用于将受限网络中的服务(例如受NAT网关保护的服务)公开并暴露到外网上。隧道文件需要部署在外网上,然后客户端服务器与隧道建立通信,并在目标隧道组中进行注册。隧道组是一组负载平衡的客户端服务器,通过反向隧道HTTP接口暴露在外网中。

下图所示为隧道生命周期:

工具安装

客户端

客户端安装命令:

go get go.flipt.io/reverst/client

代码构建:

go install ./client/...

服务器端

代码构建:

go install ./cmd/...

测试

Reverst使用Dagger来配置并运行一个集成测试套件:

dagger call test --source=.

测试套件会配置一个隧道,并在隧道中注册一个服务器-客户端,并通过隧道HTTP接口请求服务。

工具运行

下列参数是隧道服务器运行时的参数实例:

1、QUCI隧道监听127.0.0.1:7171;

2、HTTP服务监听127.0.0.1:8181;

3、日志记录设置为debug级别;

配置命令如下:

go run ./cmd/reverst/... -l debug \-n flipt.dev.local \-g examples/simple/group.yml \-k examples/simple/server.key \-c examples/simple/server.crt

下列命令可以运行样例服务器:

go run ./examples/simple/main.go --username user --password pass

下列命令可以向服务发送请求:

curl -H 'Host: flipt.dev.local' 127.0.0.1:8181/fo

工具使用和配置

命令行参数选项与环境变量

reverst -hCOMMANDreverstUSAGEreverst [FLAGS]FLAGS-l, --log LEVEL                      debug、info、warn或error (默认: INFO)-a, --tunnel-address STRING       接收隧道QUIC连接的地址 (默认: 127.0.0.1:7171)-s, --http-address STRING           处理HTTP请求的地址 (默认: 0.0.0.0:8181)-n, --server-name STRING           通过TLS识别隧道的服务器名称 (必须)-k, --private-key-path STRING      path to TLS private key PEM file (必须)-c, --certificate-path STRING      TLS证书PEM文件路径 (必须)-g, --tunnel-groups STRING       k8s配置映射标识符或文件路径 (默认: groups.yml)-w, --watch-groups                  监控隧道组源以获取更新--management-address STRING    管理API的HTTP地址--max-idle-timeout DURATION    连接可以空闲的最长时间 (默认: 1ms)--keep-alive-period DURATION   keep-alive事件间隔时间(默认: 30s)

隧道组配置

reverst -g path/to/configuration.yml// alternatively:reverst -g file:///path/to/configuration.yml

或:

reverst -g k8s://configmap/default/tunnelconfig/groups.yml

配置多个身份验证策略

groups:"group-name":hosts:- "some.host.address.dev" # Host for routing inbound HTTP requests to tunnel groupauthentication:basic:username: "user"password: "pass"bearer:token: "some-token"external:scheme: "JWT"endpoint: "http://some-external-endpoint/auth/ext"

许可证协议

本项目的开发与发布遵循Apache-2.0开源许可协议。

项目地址

Reverst:【GitHub传送门】

参考资料

Flipt

https://github.com/quic-go/quic-go

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/12777.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

队列的实现与OJ题目解析

"不是你变优秀了, 那个人就会喜欢你." 文章索引 前言1. 什么是队列2. 队列的实现3. OJ题目解析4. 总结 前言 感情可以培养是个伪命题. 如果有足够多的时间和爱, 就可以让另一个人爱上你的话, 那谁和谁都可以相爱了. 爱情之所以会让人死去活来, 是因为, 答案都写在了…

photoshop(PS)有什么快速提升工作效率的功能?或者实用功能?这里告诉你7条!

1:文件太多,不方便马上找到需要插入元素(元素放入PS会发现,位置不知道在哪里),点击需要选中或者搭配的元素,ctrlV就可以快速插入目标/图层元素的位置了! 点击当前元素,选中&#xf…

Linux备份---异地

参考文档:Linux环境实现mysql所在服务器定时同步数据文件到备份服务器(异地容灾备份场景)_mysql异地备份-CSDN博客 通过SSH进行连接: 应用服务器: 通过ssh-keygen -t rsay建立ssh通信的密钥 密钥建立后,…

边缘计算安全有多重要

德迅云安全研究发现边缘安全是对存储或处理在网络边缘的数据的保护。边缘可以用不同的方式定义,但一般来说,它包括企业直接控制之外的任何设备或位置。这可能包括传感器、连接物联网的设备和移动设备。 边缘计算正在彻底改变商业运作方式。这引发了对边缘…

SpringBoot 使用logback(多环境配置)

Logback是由log4j创始人设计的又一个开源日志组件。可用于项目日志功能。官网地址 第1步&#xff1a;添加坐标依赖 <!--logback--> <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version…

Python 提取PDF表格数据并保存到TXT文本或Excel文件

目录 安装Python库 Python提取PDF表格数据并保存到文本文档 Python提取PDF表格数据并保存到Excel文档 PDF文件常用于存储和共享各种类型的文档&#xff0c;这些文档可能包括大量的数据表格。通过提取这些PDF表格数据&#xff0c;我们可以将其导入到Excel、数据库或统计软件等…

技术架构

一、单机架构 简介&#xff1a;应用服务和数据库服务共用一台服务器 出现原因:出现在互联网早期&#xff0c;访问量比较小&#xff0c;单机足以满足 架构工作原理&#xff1a;以电商为例&#xff0c;可以看到通过应用&#xff08;划分了多个模块&#xff09;和数据库在单个服…

视频智能检测AI智能分析网关V4告警消息推送:公众号消息推送的配置步骤介绍

TSINGSEE青犀智能分析网关V4属于高性能、低功耗的软硬一体AI边缘计算硬件设备&#xff0c;目前拥有3种型号&#xff08;8路/16路/32路&#xff09;&#xff0c;支持Caffe/DarkNet/TensorFlow/PyTorch/MXNet/ONNX/PaddlePaddle等主流深度学习框架。硬件内部署了近40种AI算法模型…

继承,多态,封装以及对象的打印

前言&#xff1a; 我们都知道Java是一种面向对象的编程语言&#xff0c;面向对象语言的三大特性就是继承&#xff0c;多态&#xff0c;封装&#xff0c;而这些特性正好的Java基础的一个主体内容。在学到这之前&#xff0c;我们肯定已经学习过了类和对象&#xff0c;所以这部分…

光学镜片镀膜上下料设备

在现代化工业生产的浪潮中&#xff0c;智能化、自动化已成为提升生产效率、降低成本的关键所在。特别是在精密制造领域&#xff0c;对于设备的高精度、高效率要求更是严苛。今天向大家推荐一款引领行业潮流的智能设备——富唯智能镀膜上下料设备。 产品介绍 实现功能 单面镀膜…

NGINX SPRING HTTPS证书

服务器&#xff1a;xxx.xxx.xxx.56 客户端器&#xff1a;xxx.xxx.xxx.94##生成服务器证书和密钥容器 keytool -genkey -alias tas-server -keypass 250250 -keyalg RSA -keysize 2048 -validity 3650 -keystore D:\https证书\tas-server.jks -storepass 250250 -dname "C…

低成本创业分享,一个不用自己囤货、进货、直播的项目|抖音小店

大家好&#xff0c;我是喷火龙 在抖音上面开店&#xff0c;不仅可以卖自己的商品&#xff0c;还可以卖别人的商品赚差价&#xff0c; 并且不需要你囤货、进货、直播、剪视频&#xff0c;也不需要有粉丝。 这个项目就是抖音小店无货源。 很多朋友对抖音小店无货源模式的玩法…

tensorrtx-yolov5-v6.0部署在windows系统

前言&#xff1a;最近几天一直在搞这个东西&#xff0c;现在跑通了&#xff0c;为了以后自己看和帮助他人&#xff0c;就记录一下。虽然是跑通了但是觉得怪怪的&#xff0c;感觉不是自己想要的效果&#xff0c;另外这个只能检测图片&#xff0c;不能摄像头实时监测(我暂时没找到…

springsecurity项目快速搭建

自定义security的搭建 package com.sangeng.config;import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;Co…

智能文档处理:解析文档场景下多模态大模型的应用与研究前沿

解析文档场景下多模态大模型的应用与研究前沿 一、TextIn 文档解析技术1. 现有大模型文档解析问题2. 文档解析技术背景3. TextIn 文档解析技术架构4. 版面分析关键技术 Layout-engine 二、TextIn 文本向量化技术三、TextIn.com Text Intelligence 一、TextIn 文档解析技术 hell…

【driver6】debugfs,性能优化,

文章目录 1.内核调试手段&#xff1a;debugfs.h中api建立目录/sys/kernel/debug2.性能优化&#xff1a;裸磁盘无法使用&#xff0c;一般都刷文件系统。驱动加上要考虑磁盘io&#xff0c;内存占用&#xff0c;cpu使用情况3.Valgrind内存泄漏排查案例&#xff1a;4.cpu瓶颈&#…

英语学习笔记10——Look at ...

Look at … 看…… 词汇 Vocabulary fat adj. 胖的&#xff0c;丰富的 n. 脂肪 例句&#xff1a;他是个胖男孩。    He is a fat boy. 搭配&#xff1a;fat cat 有钱人&#xff0c;土豪 woman n. 女人 girl n. 女孩 madam n. 女士 man n. 男人 boy n. 男孩 sir n. 先生 …

云飞云共享云桌面如何降低电脑投入成本?

云飞云共享云桌面作为一种创新的云计算解决方案&#xff0c;以其独特的优势在业界赢得了众多认可。其中&#xff0c;它极大地降低了电脑投入成本&#xff0c;为企业和个人用户带来了实实在在的经济效益。那么&#xff0c;云飞云共享云桌面是如何实现这一点的呢&#xff1f; 设…

Python 机器学习 基础 之 监督学习/分类问题/回归任务/泛化、过拟合和欠拟合 基础概念说明

Python 机器学习 基础 之 监督学习/分类问题/回归任务/泛化、过拟合和欠拟合 基础概念说明 目录 Python 机器学习 基础 之 监督学习/分类问题/回归任务/泛化、过拟合和欠拟合 基础概念说明 一、简单介绍 二、监督学习 三、分类问题 四、回归任务 五、泛化、过拟合和欠拟合…

全面提升数据采集效率:IP代理产品的应用与评估详解

全面提升数据采集效率&#xff1a;IP代理产品的应用与评估详解 文章目录 全面提升数据采集效率&#xff1a;IP代理产品的应用与评估详解背景应用场景&#xff1a;平台首页信息抓取准备评测素材详细的产品使用和评测流程产品介绍亮数据的IP代理服务亮数据的爬虫工具及采集技术 注…