网络工具 × 5 款:查 DNS、抓流量、测延迟,全在终端里搞定

bandwhich 按进程看带宽、gping 图形化 ping 延迟、trippy 替代 mtr 做路由追踪、xh 调试 HTTP 请求、doggo 现代化 DNS 查询——5 款网络工具,4 个来自官方 Extra 仓库,pacman 直装。

日常网络排查要在 pingdigmtrtcpdumpcurl 几个工具之间来回跳。本期收录 5 款近几年在社区跑热的替代品——视觉更直观、输出更可读,覆盖流量监控、延迟图形化、DNS 查询、HTTP 调试和网络诊断五个场景。除 doggo 来自 AUR,其余 4 款全在官方 Extra 仓库,pacman 直装。

软件速览

工具仓库安装命令替代谁
bandwhichExtrasudo pacman -S bandwhichnethogs / iftop
gpingExtrasudo pacman -S gpingping
trippyExtrasudo pacman -S trippymtr / traceroute
xhExtrasudo pacman -S xhcurl / httpie
doggoAURyay -S doggo-bindig / dog

bandwhich — 按进程看带宽

bandwhich 把当前所有进程的实时网络占用全部列出来,三列同时显示:进程名、连接对端 IP/域名、每秒收发量1。比 nethogs 多出了「按远端主机聚合」视角,排查「哪个进程在大量请求某个外部服务」非常直接。
bandwhich 实时监控带宽,按进程与远端主机分类展示
bandwhich 实时监控带宽,按进程与远端主机分类展示
bandwhich 演示:上方进程视图、下方远端主机视图,实时滚动更新。来源:GitHub imsnif/bandwhich
安装与使用
sudo pacman -S bandwhich

# 需要 root 或 capabilities,推荐 setcap 方式(单用户机器):
sudo setcap cap_sys_ptrace,cap_dac_read_search,cap_net_raw,cap_net_admin+ep $(command -v bandwhich)
bandwhich

# 或直接 sudo:
sudo bandwhich
常用参数:-i eth0 指定网卡;-n 关闭 IP 反向解析(高流量时更流畅);-p 只看进程表;-a 只看远端地址表。

gping — 带折线图的 ping

gping 把 ping 的延迟历史实时画成折线图,可以同时对比多个目标2。一眼看出丢包是某个时间段的抖动,还是持续性高延迟——这是 ping 数字流做不到的。
gping 同时 ping 多个主机,延迟折线图实时滚动
gping 同时 ping 多个主机,延迟折线图实时滚动
gping 演示:多主机同屏对比,延迟一目了然。来源:GitHub orf/gping
安装与使用
sudo pacman -S gping

gping google.com archlinux.org   # 多目标同屏
gping --cmd curl google.com      # 图形化命令执行耗时(非延迟)
--buffer 60 控制横轴显示秒数(默认 30 秒);-c red,blue 给各目标指定颜色。

trippy — traceroute 的 TUI 升级版

trippy 把 traceroute 和 ping 合并成一个交互式 TUI,能实时看每一跳的丢包率、RTT 均值和 jitter3。传统 mtr 已经做了这件事,trippy 在此基础上加了更多展示列、主题、配置项,社区近两年才真正推开。
trippy TUI 界面,实时显示每一跳的丢包率和延迟数据
trippy TUI 界面,实时显示每一跳的丢包率和延迟数据
trippy 演示:traceroute + ping 一体化 TUI,支持 ICMP / UDP / TCP 多协议。来源:GitHub fujiapple852/trippy
安装与使用
sudo pacman -S trippy

# 需要 root 权限(原始 socket):
sudo trip archlinux.org

# 查看 AS 号(需要对外查询 Team Cymru DNS):
sudo trip --geoip-mmdb-file /path/to/GeoLite2-City.mmdb archlinux.org
-p udp / -p tcp 切换探测协议(穿越 ICMP 拦截的防火墙有用);-z 显示 AS 自治系统归属。

xh — 比 httpie 更快的 HTTP 客户端

xh 用 Rust 重写了 HTTPie 的设计思路,保留了人类友好的语法,启动速度快一个数量级4。支持 HTTP/2,自带 --curl 参数直接把当前请求转成等价 curl 命令——调试 API 时查了半天 curl 参数不如直接 xh --curl 翻译。
xh 发送 HTTP 请求,输出带语法高亮的响应体
xh 发送 HTTP 请求,输出带语法高亮的响应体
xh 演示:彩色高亮输出,请求语法和 HTTPie 一致。来源:GitHub ducaale/xh
安装与使用
sudo pacman -S xh

# GET 请求
xh httpbin.org/json

# POST 带 JSON body
xh POST httpbin.org/post name=alice age:=30

# 带 Header + 查询参数
xh get httpbin.org/json X-Token:abc123 q==arch

# 把当前命令翻译成 curl
xh --curl POST httpbin.org/post name=alice
本地调试时可以用 :3000/api 代替 localhost:3000/apixhsxh --https 默认走 HTTPS。

doggo — dig 的可读输出版

doggo 是现代 DNS 查询工具,支持 DoH(DNS-over-HTTPS)、DoT(DNS-over-TLS)、DoQ(DNS-over-QUIC)等加密协议5。输出按表格排版、带颜色,一眼看到记录类型、TTL、来源服务器,比 dig 的纯文本友好很多。
doggo 查询结果:彩色表格展示 A/MX/NS 等记录
doggo 查询结果:彩色表格展示 A/MX/NS 等记录
doggo 查询结果:字段清晰,响应时间一并展示。来源:GitHub mr-karan/doggo
安装与使用
yay -S doggo-bin

# 基础查询
doggo archlinux.org

# 指定记录类型 + nameserver
doggo MX gmail.com @9.9.9.9

# 用 DoH 查询(绕过本地 DNS 污染验证用)
doggo archlinux.org @https://cloudflare-dns.com/dns-query

# 反向解析
doggo --reverse 8.8.8.8

# JSON 输出 + jq 处理
doggo archlinux.org --json | jq '.responses[0].answers[].address'
--short 只输出结果值,适合脚本。

场景速查

哪个工具用于什么场景,整理如下:
场景推荐工具
「哪个进程在偷流量」bandwhich
「网络是不是在某个时段抖动」gping
「哪一跳丢包 / 延迟高」trippy
「调试 REST API / HTTP header」xh
「验证 DNS 解析是否正确 / 走了哪个 resolver」doggo

围绕这条内容继续补充观点或上下文。

  • 登录后可发表评论。