gTunnel:一个基于Golang的TCP隧道
字数 932 2025-08-15 21:31:40

gTunnel 使用教程:基于Golang的TCP隧道套件

1. 工具概述

gTunnel是一款基于Golang和gRPC开发的TCP隧道套件,能够管理多个基于单个TCP/HTTPS链接的正向和反向通信隧道。

主要特性

  • 支持Windows和Linux客户端
  • 可管理多个通信隧道
  • 支持正向和反向隧道
  • 提供SOCKS代理功能
  • 基于Docker部署服务端

2. 环境准备

依赖项

  • Docker(测试版本v19.03.6,理论上支持任何版本)
  • Golang环境(用于编译)

下载安装

git clone https://github.com/hotnops/gtunnel.git

3. 服务端部署

  1. 进入项目目录
  2. 运行启动脚本:
./start_server.sh

此脚本会构建一个Docker镜像,默认不暴露任何端口。

注意:如需使用正向隧道,需手动映射响应端口或修改Docker网络配置。

4. 客户端生成

在服务端命令行界面中,可以生成预配置的客户端程序。

Windows客户端生成

>>> configclient win 172.17.0.1 443 win-client

Linux客户端生成

>>> configclient linux 172.17.0.1 443 lclient

生成的客户端可执行文件会保存在"configured"目录中,与./start_server.sh关联。

5. 客户端管理

查看已连接客户端

客户端连接成功后,终端会显示连接成功的消息。

切换客户端

>>> use test
(test) >>> 

支持Tab键补全客户端名称。

返回主界面

(test) >>> back
>>> 

断开客户端连接

(test) >>> disconnect

6. 隧道管理

添加隧道

本地隧道(正向)

addtunnel local 本地监听端口 目标IP 目标端口 [隧道名称]

示例:

addtunnel local 4444 10.10.1.5 445 smbtun

远程隧道(反向)

addtunnel remote 远程监听端口 目标IP 目标端口 [隧道名称]

示例:

addtunnel remote 666 192.168.1.10 443

注意:隧道名称为可选参数,不提供时会自动生成随机名称。

列出所有隧道

(test) >>> listtunnels
Tunnel ID: smbtun
Tunnel ID: dVck5Zba

删除隧道

(test) >>> deltunnel smbtun

7. SOCKS代理功能

  1. 在客户端主机上启动SOCKS服务器:
socks 1080
  1. 创建隧道通道:
addtunnel local 1080 127.0.0.1 1080

8. 退出服务端

>>> exit

9. 项目地址

GitHub仓库:https://github.com/hotnops/gtunnel

10. 注意事项

  1. 使用正向隧道时,确保正确映射Docker端口或配置网络
  2. 隧道名称不唯一时可自动生成随机名称
  3. 客户端程序需在目标系统上运行才能建立连接
  4. 所有操作都在服务端命令行界面中完成

11. 典型使用场景

  1. 内网穿透:通过反向隧道访问内网服务
  2. 端口转发:将本地服务暴露到远程
  3. 代理服务:通过SOCKS功能提供代理访问
  4. 多客户端管理:集中管理多个远程节点的隧道连接

通过以上步骤和命令,您可以充分利用gTunnel的功能建立和管理TCP隧道,实现灵活的网络通信配置。

gTunnel 使用教程:基于Golang的TCP隧道套件 1. 工具概述 gTunnel是一款基于Golang和gRPC开发的TCP隧道套件,能够管理多个基于单个TCP/HTTPS链接的正向和反向通信隧道。 主要特性 支持Windows和Linux客户端 可管理多个通信隧道 支持正向和反向隧道 提供SOCKS代理功能 基于Docker部署服务端 2. 环境准备 依赖项 Docker(测试版本v19.03.6,理论上支持任何版本) Golang环境(用于编译) 下载安装 3. 服务端部署 进入项目目录 运行启动脚本: 此脚本会构建一个Docker镜像,默认不暴露任何端口。 注意 :如需使用正向隧道,需手动映射响应端口或修改Docker网络配置。 4. 客户端生成 在服务端命令行界面中,可以生成预配置的客户端程序。 Windows客户端生成 Linux客户端生成 生成的客户端可执行文件会保存在"configured"目录中,与 ./start_server.sh 关联。 5. 客户端管理 查看已连接客户端 客户端连接成功后,终端会显示连接成功的消息。 切换客户端 支持Tab键补全客户端名称。 返回主界面 断开客户端连接 6. 隧道管理 添加隧道 本地隧道(正向) 示例: 远程隧道(反向) 示例: 注意 :隧道名称为可选参数,不提供时会自动生成随机名称。 列出所有隧道 删除隧道 7. SOCKS代理功能 在客户端主机上启动SOCKS服务器: 创建隧道通道: 8. 退出服务端 9. 项目地址 GitHub仓库:https://github.com/hotnops/gtunnel 10. 注意事项 使用正向隧道时,确保正确映射Docker端口或配置网络 隧道名称不唯一时可自动生成随机名称 客户端程序需在目标系统上运行才能建立连接 所有操作都在服务端命令行界面中完成 11. 典型使用场景 内网穿透:通过反向隧道访问内网服务 端口转发:将本地服务暴露到远程 代理服务:通过SOCKS功能提供代理访问 多客户端管理:集中管理多个远程节点的隧道连接 通过以上步骤和命令,您可以充分利用gTunnel的功能建立和管理TCP隧道,实现灵活的网络通信配置。