查找已传输的 TCP 字节数

查找已传输的 TCP 字节数

我有 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

相关内容