Skip to content
Skillv1.0.0

traffic-analysis

流量分析与抓包

by chaterm(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from chaterm/terminal-skills (network/traffic-analysis/SKILL.md). Install upstream with npx skills add chaterm/terminal-skills --skill traffic-analysis. Copyright stays with the author.

流量分析与抓包

概述

tcpdump、Wireshark、流量分析与网络诊断技能。

tcpdump

基础用法

# 监听所有接口
tcpdump -i any

# 指定接口
tcpdump -i eth0

# 详细输出
tcpdump -v
tcpdump -vv
tcpdump -vvv

# 显示 ASCII
tcpdump -A

# 显示十六进制
tcpdump -X
tcpdump -XX

# 不解析主机名
tcpdump -n

# 不解析端口名
tcpdump -nn

过滤表达式

# 主机过滤
tcpdump host 192.168.1.100
tcpdump src host 192.168.1.100
tcpdump dst host 192.168.1.100

# 网段过滤
tcpdump net 192.168.1.0/24

# 端口过滤
tcpdump port 80
tcpdump src port 80
tcpdump dst port 443
tcpdump portrange 8000-9000

# 协议过滤
tcpdump tcp
tcpdump udp
tcpdump icmp
tcpdump arp

# 组合过滤
tcpdump 'host 192.168.1.100 and port 80'
tcpdump 'src 192.168.1.100 and dst port 443'
tcpdump 'tcp and (port 80 or port 443)'
tcpdump 'not port 22'

保存与读取

# 保存到文件
tcpdump -w capture.pcap
tcpdump -w capture.pcap -c 1000    # 限制包数

# 读取文件
tcpdump -r capture.pcap
tcpdump -r capture.pcap -nn

# 轮转文件
tcpdump -w capture-%H%M%S.pcap -G 3600    # 每小时
tcpdump -w capture.pcap -C 100            # 每 100MB

高级过滤

# TCP 标志
tcpdump 'tcp[tcpflags] & tcp-syn != 0'
tcpdump 'tcp[tcpflags] & tcp-rst != 0'
tcpdump 'tcp[tcpflags] == tcp-syn'

# HTTP 请求
tcpdump -A 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

# DNS 查询
tcpdump -i any 'udp port 53'

# 大包
tcpdump 'greater 1000'
tcpdump 'less 100'

tshark (Wireshark CLI)

基础用法

# 安装
apt install tshark

# 监听
tshark -i eth0

# 指定过滤器
tshark -i eth0 -f "port 80"

# 显示过滤器
tshark -i eth0 -Y "http"

字段提取

# 提取特定字段
tshark -r capture.pcap -T fields -e ip.src -e ip.dst -e tcp.port

# HTTP 请求
tshark -r capture.pcap -Y "http.request" -T fields -e http.host -e http.request.uri

# DNS 查询
tshark -r capture.pcap -Y "dns.qry.name" -T fields -e dns.qry.name

统计分析

# 协议统计
tshark -r capture.pcap -q -z io,phs

# 会话统计
tshark -r capture.pcap -q -z conv,tcp

# HTTP 统计
tshark -r capture.pcap -q -z http,tree

# 端点统计
tshark -r capture.pcap -q -z endpoints,ip

ngrep

基础用法

# 安装
apt install ngrep

# 搜索内容
ngrep -q 'GET' port 80
ngrep -q 'password' port 80

# 指定接口
ngrep -d eth0 'pattern'

# 忽略大小写
ngrep -qi 'error'

iftop / nethogs

iftop

# 安装
apt install iftop

# 基础用法
iftop
iftop -i eth0

# 不解析主机名
iftop -n

# 显示端口
iftop -P

# 过滤
iftop -f "dst port 80"

nethogs

# 安装
apt install nethogs

# 按进程显示
nethogs
nethogs eth0

# 刷新间隔
nethogs -d 2

常见场景

场景 1:HTTP 流量分析

# 抓取 HTTP 请求
tcpdump -i any -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

# 提取 HTTP 头
tcpdump -i any -A 'tcp port 80' | grep -E "^(GET|POST|HTTP|Host:|Content-)"

# tshark 分析
tshark -i any -Y "http.request" -T fields -e http.host -e http.request.method -e http.request.uri

场景 2:DNS 问题排查

# 抓取 DNS
tcpdump -i any -nn port 53

# 详细 DNS 信息
tcpdump -i any -vvv port 53

# tshark DNS 分析
tshark -i any -Y "dns" -T fields -e dns.qry.name -e dns.a

场景 3:连接问题诊断

# TCP 握手
tcpdump -i any 'tcp[tcpflags] & (tcp-syn|tcp-fin|tcp-rst) != 0'

# 重传
tcpdump -i any 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack != 0'

# 连接重置
tcpdump -i any 'tcp[tcpflags] & tcp-rst != 0'

场景 4:带宽分析

# 实时带宽
iftop -i eth0 -P -n

# 按进程
nethogs eth0

# 统计流量
tcpdump -i eth0 -w - | pv > /dev/null

故障排查

问题 排查方法
丢包 检查 tcpdump 统计、网卡队列
延迟高 分析 RTT、重传
连接失败 检查 SYN/RST 包
带宽占用 使用 iftop/nethogs
# 查看丢包
tcpdump -i eth0 -w /dev/null 2>&1 | grep -i drop

# 网卡统计
ethtool -S eth0 | grep -i error
cat /proc/net/dev

# 连接状态
ss -s
netstat -s | grep -i retrans

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/chaterm-terminal-skills-traffic-analysis/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

chaterm-terminal-skills-traffic-analysis.ocm.jsonjson
{
  "ocm": "1",
  "id": "chaterm-terminal-skills-traffic-analysis",
  "kind": "skill",
  "name": "traffic-analysis",
  "description": "流量分析与抓包",
  "publisher": "chaterm",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "general"
    ],
    "tags": [
      "skill-md",
      "networking",
      "tcpdump",
      "wireshark",
      "packet-capture",
      "traffic",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "流量分析与抓包"
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/chaterm/terminal-skills",
      "path": "network/traffic-analysis/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/chaterm/terminal-skills/blob/HEAD/network/traffic-analysis/SKILL.md",
      "key": "chaterm/terminal-skills/network/traffic-analysis/SKILL.md"
    }
  },
  "instructions": "# 流量分析与抓包\n\n## 概述\ntcpdump、Wireshark、流量分析与网络诊断技能。\n\n## tcpdump\n\n### 基础用法\n```bash\n# 监听所有接口\ntcpdump -i any\n\n# 指定接口\ntcpdump -i eth0\n\n# 详细输出\ntcpdump -v\ntcpdump -vv\ntcpdump -vvv\n\n# 显示 ASCII\ntcpdump -A\n\n# 显示十六进制\ntcpdump -X\ntcpdump -XX\n\n# 不解析主机名\ntcpdump -n\n\n# 不解析端口名\ntcpdump -nn\n```\n\n### 过滤表达式\n```bash\n# 主机过滤\ntcpdump host 192.168.1.100\ntcpdump src host 192.168.1.100\ntcpdump dst host 192.168.1.100\n\n# 网段过滤\ntcpdump net 192.168.1.0/24\n\n# 端口过滤\ntcpdump port 80\ntcpdump src port 80\ntcpdump dst port 443\ntcpdump portrange 8000-9000\n\n# 协议过滤\ntcpdump tcp\ntcpdump udp\ntcpdump icmp\ntcpdump arp\n\n# 组合过滤\ntcpdump 'host 192.1",
  "cost": {
    "context_tokens": 904
  }
}

Fetch it by URL: GET /api/v1/registry/chaterm-terminal-skills-traffic-analysis/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.