Linux

查找傳輸的 TCP 字節數

  • February 12, 2014

我有 rhel4 和 rhel6 主機。

我可以使用 netstat -s 查看有關發送/接收的段數的資訊。我可以使用 ifconfig 查看給定介面上發送/接收的字節數(對我而言,只有一個很重要,其餘的總傳輸量要少 3 個數量級)。

如何找到通過 TCP 傳輸的總字節數?

**編輯:**我在有問題的主機上沒有 root 訪問權限。

用 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

引用自:https://serverfault.com/questions/575118