Skip to content

OnlyTL/gnt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GNT (Go Net Tool) - TCP 调试工具

GNT (Go Net Tool) 是一个基于 Go 语言开发的命令行 TCP 调试工具,专为网络调试和测试而设计。该工具提供了一个交互式的命令行界面,可以轻松地创建 TCP 客户端或服务端,适用于开发人员进行网络协议调试、测试和数据传输验证。

功能特性

  • 交互式命令行界面 - 直观易用的控制台界面,支持彩色输出
  • TCP 客户端模式 - 连接到远程 TCP 服务端进行调试
  • TCP 服务端模式 - 启动本地 TCP 服务端接收客户端连接

安装要求

  • Go 1.24.0 或更高版本
  • 支持标准 Go 工具链的操作系统 (Windows, Linux, macOS)

安装方法

方法一:一键安装

sudo curl -L "https://github.com/OnlyTL/gnt/releases/download/0.1.1/gnt" -o /usr/local/bin/gnt && sudo chmod +x /usr/local/bin/gnt

方法一:从源码编译 (推荐)

# 克隆项目
git clone <项目地址>
cd gnt

# 构建项目
go build -o gnt .

# 或者安装到 GOPATH
go install .

方法二:下载预编译文件

访问项目发布页面下载对应操作系统预编译的可执行文件。

使用方法

GNT 提供了两个主要命令:serverclient,分别用于启动 TCP 服务端和客户端。

TCP 服务端

启动一个监听指定端口的 TCP 服务端:

gnt server --port 8080

或使用简写:

gnt server -p 8080

服务端启动后,支持以下交互命令:

  • ls - 查看当前连接的客户端列表
  • text <消息内容> - 向所有连接的客户端广播文本消息
  • hex <十六进制数据> - 向所有连接的客户端广播十六进制数据
  • @<客户端地址> text <消息> - 向指定客户端发送文本消息
  • @<客户端地址> hex <十六进制数据> - 向指定客户端发送十六进制数据
  • help - 显示帮助信息
  • exit - 退出服务端

TCP 客户端

连接到远程 TCP 服务端:

gnt client --target 127.0.0.1:8080

或使用简写:

gnt client -t 127.0.0.1:8080

客户端启动后,支持以下交互命令:

  • text <消息内容> - 发送文本消息到服务端
  • hex <十六进制数据> - 发送十六进制数据到服务端

使用示例

示例 1:基础 TCP 调试

  1. 启动服务端监听 8080 端口:

    gnt server -p 8080
  2. 在另一个终端启动客户端连接服务端:

    gnt client -t 127.0.0.1:8080
  3. 在客户端终端发送消息:

    > text Hello, Server!
    > hex 48656C6C6F (表示 "Hello" 的十六进制)
    

示例 2:多客户端测试

  1. 启动服务端:

    gnt server -p 8080
  2. 启动多个客户端连接:

    gnt client -t 127.0.0.1:8080  # 客户端 1
    gnt client -t 127.0.0.1:8080  # 客户端 2
  3. 在服务端终端查看连接并发送消息:

    > ls
    --- 在线客户端 ---
    [1] 127.0.0.1:54321
    [2] 127.0.0.1:54322
    ------------------
    
    > text 广播消息!
    > @127.0.0.1:54321 text 仅发给客户端1
    

参数说明

服务端参数

  • --port, -p: 指定服务端监听端口 (默认: 8080)

客户端参数

  • --target, -t: 指定要连接的目标地址 (格式: host:port, 默认: 127.0.0.1:8080)

依赖库

  • Cobra - 强大的 CLI 命令行框架
  • Zerolog - 高性能日志库

应用场景

  • TCP 协议测试
  • 网络数据包验证
  • 客户端-服务端通信测试

许可证

本项目采用 MIT 许可证,详见 LICENSE 文件。

About

GNT (Go Net Tool) 是一个基于 Go 语言开发的命令行 TCP 调试工具

Resources

License

Stars

Watchers

Forks

Packages

No packages published