Goreplay开源工具的介绍,安装及使用 (Linux)
Goreplay
介绍
GoReplay是一个开源的网络监控工具,它可以记录你的实时流量,并用于跟踪、负载测试、监控和详细分析。
GoReplay提供了一种unique approach for shadowing方式:GoReplay不是以代理形式,而是监听网络接口上的流量,不需要对生产基础设施进行任何更改,而是在与服务相同的机器上运行GoReplay守护进程。
GoReplay的工作原理框图:
Linux系统环境下的安装
Golang安装
一 、首先安装Golang及相关依赖环境
在官网上下载安装包或者go的一些中文网站上下载安装包
我下载的是: go1.14.4.linux-amd64.tar.gz
二、解压到/usr/local目录下
tar -C /usr/local -zxvf go1.14.4.linux-amd64.tar.gz
三、配置环境变量
# 打开 vim /etc/profile # 添加 export GOROOT=/usr/local/go export PATH=$PATH:$GOROOT/bin # 编译生效 source /etc/profile
四、验证
go env
GoReplay安装
官网上下载源码包: goreplay-1.1.0.tar.gz
https://github.com/buger/goreplay/releases
解压:
tar xvf goreplay-1.1.0.tar.gz
cd goreplay-1.1.0/
编译
go build
编译出现问题:
vendor/github.com/google/gopacket/pcap/pcap_unix.go:34:18: fatal error: pcap.h: No such file or directory
解决办法:
安装 libpcap
下载地址:http://www.tcpdump.org/
下载版本:libpcap-1.2.1.tar.gz
解压,执行:
./configure
make
make install
回到goreplay-1.1.0目录,再次执行编译命令:
go build
编译成功后生成可执行文件:goreplay
安装成功。
GoReplay的常用使用方式:
1. 转发(改成你需要的ip和端口)
./goreplay --input-raw :8080 --output-http "http://192.168.1.100:6660"
2. 保存到文件
./goreplay --input-raw :8080 --output-file “requests.gor“
3. 保存到文件,添加内容到相同文件
./goreplay --input-raw :8080 --output-file requests.txt --output-file-append
4. 从文件转发
./goreplay --input-file requests.txt --output-http "http://192.168.1.100:6660"
5. 只允许转url regexp
./goreplay --input-raw :8080 --output-http staging.com --http-allow-url /api
6. 转发到本机tcp(适用于nginx upstream的情况)
需要打开2个goreplay
./goreplay --input-raw :1029 --output-tcp "localhost:28020"
./goreplay --input-tcp :28020 --output-file "request.gor"
7. 循环+流量放大
./goreplay --input-file "oo01_0.log|1000%" --output-http "http://xxx.cn" --input-file-loop
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)