goreplay 使用教程

2,586 阅读1分钟

goreplay 是一个可以抓包和重放包的工具,好用的很.

首先下载 点我下载

抓包

  1. 抓取指定端口的包
./goreplay --input-raw :8000 --output-stdout
抓取8000的包, 并将请求打印到控制台
  1. 抓取响应包

默认没有将响应包也一起抓取,可以使用--input-raw-track-response 抓取响应包

./goreplay --input-raw :8000 --input-raw-track-response--input-raw-track-response --output-stdout
  1. 添加ip地址 经过goreplay重发之后, 服务器端就拿不到原来的ip地址,可以使用 --input-raw-realip-header 来添加ip地址
./goreplay --input-raw :8000 --input-raw-realip-header "X-Real-IP" ...
  1. 请求过滤 抓取指定端口的包,可能内容比较多,这时候可以使用请求过滤功能
正则表达式过滤,只允许
goreplay --input-raw :8080 --output-http staging.com --http-allow-url /api
正则表达式过滤,禁止
goreplay --input-raw :8080 --output-http staging.com  --http-disallow-url /api

基于header的正则表达式过滤

# only forward requests with an api version of 1.0x
goreplay --input-raw :8080 --output-http staging.com --http-allow-header api-version:^1\.0\d

# only forward requests NOT containing User-Agent header value "Replayed by Gor"
goreplay --input-raw :8080 --output-http staging.com --http-disallow-header "User-Agent: Replayed by Gor"

基于http 方法的过滤

goreplay --input-raw :80 --output-http "http://staging.server" \
    --http-allow-method GET \
    --http-allow-method OPTIONS