![查找已传输的 TCP 字节数](https://linux22.com/image/626773/%E6%9F%A5%E6%89%BE%E5%B7%B2%E4%BC%A0%E8%BE%93%E7%9A%84%20TCP%20%E5%AD%97%E8%8A%82%E6%95%B0.png)
我有 rhel4 和 rhel6 主机。
我可以使用 netstat -s 查看发送/接收的段数信息。我可以使用 ifconfig 查看给定接口发送/接收的字节数(就我的目的而言,只有一个接口很重要,其余接口的总传输量要少 3 个数量级)。
如何找到通过 TCP 传输的总字节数?
编辑:我没有相关主机的 root 访问权限。
答案1
使用 iptables 定义一个数据包过滤规则来统计所有的 tcp 数据包。
统计所有使用 tcp 协议的传入数据包:
# iptables -I INPUT -p tcp
统计所有使用 tcp 协议的传出数据包:
# iptables -I OUTPUT -p tcp
显示 iptables 规则,包括传入数据包的数据包计数:
# iptables -nvL INPUT
显示 iptables 规则,包括传出数据包的数据包计数:
# iptables -nvL OUTPUT
iptables -nvL
在前两列中显示数据包数和字节数。两个定义的规则将位于列表顶部。如果您有很多 iptables 规则,则额外的链可能会有所帮助:
# iptables -N count_in # create custom chain named 'count_in'
# iptables -A count_in -j RETURN # append RETURN action to chain 'count_in'
# iptables -I INPUT -j count_in # insert chain at the top of chain INPUT
# iptables -I count_in 1 -p tcp # insert rule that matches all tcp packets
# and has no action (does nothing)
# iptables -nvL count_in # list chain 'count_in' rules
使用自定义链对传出的数据包执行相同的操作count_out
。