gTunnel是一款基于Golang和gRPC开发的TCP隧道套件,gTunnel能够管理多个基于单个TCP/HTTPS链接的正向和反向通信隧道。目前,gTunnel的客户端可执行文件已在Windows和Linux上进行了测试,可稳定运行。

工具依赖
gTunnel目前已在Docker v19.03.6版本中进行了测试,但理论上支持任何版本的Docker。

工具下载
广大研究人员可以使用下列命令将该项目源码克隆至本地,并按照下列方法来使用该工具:
git clone https://github.com/hotnops/gtunnel.git
工具使用
项目目录下的start_sever.sh脚本将会构建一个Docker镜像,运行之后不会暴露任何端口。如果你想要使用正向隧道,请确保映射响应端口或修改Docker网络。

./start_server.sh
运行之后,你将会看到如下所视的终端界面:

首先,我们需要生成一个在远程系统中运行的客户端程序。针对Windows系统,生成一个名为“win-client”的Windows客户端:

configclient win 172.17.0.1 443 win-client
针对Linux系统,生成一个名为“lclient”的Linux客户端:

configclient linux 172.17.0.1 443 lclient
该命令将会在“configured”目录中输出一个预配置的可执行文件,并跟./start_server.sh关联。在远程系统中运行这个可执行文件之后,终端窗口将接收到客户端连接成功的消息:

如需使用新连接的客户端,直接输入“use + 客户端名称”即可,这里支持Tab键补全:

use test
(test) >>>
此时,命令行窗口图表将变成新切换的终端节点,我们可以在这里添加或删除通信隧道:

addtunnel (local | remote) listenPort destinationIP destinationPort
比如说,在端口4444打开一个本地隧道,跟远程网络10.10.1.5(端口445)进行连接,然后将其命名为“smbtun”:

addtunnel local 4444 10.10.1.5 445 smbtun
类似地,我们也可以在远程系统打开端口666,然后将所有流量转发至本地网络的192.168.1.10(端口443):

addtunnel remote 666 192.168.1.10 443
需要注意的是,隧道名命为可选项,如果不提供该选项,工具将会给隧道生成一个随机名称。如需列出所有活动隧道,可以使用“listtunnels”命令:

(test) >>> listtunnels
Tunnel ID: smbtun
Tunnel ID: dVck5Zba
如需删除一个隧道,可以直接使用“deltunnel”命令:
(test) >>> deltunnel smbtun
Deleting tunnel : smbtun
如需在目标设备上开启一个socks代理,可以使用“socks”命令。下面的命令将在运行了gClient的主机上,开启一个socks服务器(端口号为1080).一般来说,我们还需要在gTunnel的命令行接口中使用命令来创建一个信道,并通过该信道来使用socks服务器:
socks 1080
addtunnel local 1080 127.0.0.1 1080
如需跟其他远程系统进行交互,可以使用“back”命令:
(test) >>> back

如需跟客户端或服务器断开连接,可以直接使用“disconnect”命令:
(test) >>> disconnect
2020/03/20 22:14:52 Disconnecting test
(test) >>> 2020/03/20 22:14:52 Endpoint disconnected: test

如需退出服务器端,可直接运行“exit”命令:

exit

gTunnel:一个基于Golang的TCP隧道相关推荐

  1. 6 个重要模块,带你编写一个基于Golang的区块链公链demo!| 博文精选

    作者 | 肉山大魔王iii 责编 | Carol 出品 | 区块链大本营(blockchain_camp) 好久没和大家一起做实践的环节了,不知道各位是否也手痒痒了呢? 今天给大家带来的是基于 Gol ...

  2. 组件分享之后端组件——基于Golang实现的高级消息队列协议 (AMQP) 的消息代理garagemq...

    组件分享之后端组件--基于Golang实现的高级消息队列协议 (AMQP) 的消息代理garagemq 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成 ...

  3. 组件分享之后端组件——基于Golang实现的database/sql附加功能组件dbr

    组件分享之后端组件--基于Golang实现的database/sql附加功能组件dbr 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题, ...

  4. 组件分享之后端组件——基于Golang实现的基于LDAP V3协议的操作包ldap

    组件分享之后端组件--基于Golang实现的基于LDAP V3协议的操作包ldap 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续 ...

  5. 知乎上的一个问题,TCP in TCP隧道为什么不好

    周六晚上本来是想把遗留的BBC六集纪录片<古罗马-一个帝国的盛衰>最后一集看完的,可是想起一件事还没有总结,就先搁置一下,待我先说事. 我一般不刷知乎的,上周有一天下班的路上,坐在公交车的 ...

  6. 基于阿里云用C/C++做了一个http协议与TCP协议的web聊天室的服务器——《干饭聊天室》

    基于阿里云用C/C++做了一个http协议与TCP协议的web聊天室的服务器--<干饭聊天室> 在这里首先感谢前端小伙伴飞鸟 前端技术请看一款基于React.C++,使用TCP/HTTP协 ...

  7. java socket发送定长报文_一个基于TCP协议的Socket通信实例

    原标题:一个基于TCP协议的Socket通信实例 1. 前言 一般接口对接多以http/https或webservice的方式,socket方式的对接比较少并且会有一些难度.正好前段时间完成了一个so ...

  8. 基于Golang TCP 开发网络游戏 CLI四川麻将 - 1.选型与结构定义

    项目介绍 基于golang tcp 开发的命令行界面网络游戏 四川麻将血战到底:下图是初步效果界面 项目地址 https://github.com/mangenotwork/CLI-Sichuan-M ...

  9. 基于Golang的简单web服务程序开发——CloudGo

    基于Golang的简单web服务程序开发--CloudGo[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 (1)基本要求 (2)扩展要求 三.具体 ...

  10. 基于Golang的个人博客-goblog

    文章目录 goblog介绍 goblog界面截图 goblog技术组件 goblog安装部署 安装 获取goblog源码 安装go运行环境 安装mysql 部署 编译并部署goblog 运行goblo ...

最新文章

  1. 取两个日期相差几年_干货~44个最常用的日期和时间类函数组合
  2. disconf-自动注入属性变化
  3. 点云谱聚类实现代码_Spark跑DBSCAN算法,工业级代码长啥样?
  4. c语言遗传算法百度云,遗传算法c语言程序.doc
  5. 小鹿线前端课程怎么样
  6. IPv6网络流量监控解决方案
  7. VB程序启动后如何在通知区域显示
  8. Visual studio 2015(VS2015)的下载和安装,以及安装VS2015中的C++
  9. Jira+Confluence+Fisheye+Crucible安装步骤清单
  10. Office2021专业增强版激活报错0xc004f074以及尝试办法
  11. win10 锁屏界面自动更换壁纸的办法,亲测有效
  12. Java入门基础及面试100题--初入门
  13. PB调用C#开发的控制台应用——实现WORD文档按页转存JPG图片
  14. 计算机毕业设计java+ssm水果商城管理系统(源码+系统+mysql数据库+Lw文档)
  15. <华为VRP系统>ENSP模拟器安装:
  16. git reset命令详解
  17. 关于深度态势感知问题的思考
  18. APUE读书笔记-第十五章-进程间通信
  19. 2020年中国毫米波雷达行业现状分析,24GHz国产化率较高「图」
  20. 2049. 奶牛摄影

热门文章

  1. VMware Converter Standalone结合TrueImage 迁移HyperV虚机
  2. Pyqt Model/view框架 3.可编辑项
  3. mysql bit 设置默认值_为什么数据库字段需要设置默认值
  4. axios拦截器_Axios源码解析 —— 一个小而美的HttpClient
  5. 软件测试精要,软件测试精要.ppt
  6. 用python写的游戏有哪些_想用Python写个小游戏?这个项目里有21个例子
  7. 计算机应用基础 周凌,《新编计算机应用基础教程》-计算机基础知识.ppt
  8. mysql 关闭严格_mysql关闭严格模式
  9. java什么是工作空间_[Java教程]Java开发工具(Eclipse工作空间的基本配置)
  10. arduino nano引脚_使用直流电机和RF模块nRF24L01制作Arduino遥控小车