在我的場景中,我的主機有一個具有多個 IP 位址的網路介面。我想取得每個IP位址的流量。我想要接收和發送的資料包和位元組以及錯誤資料包。我的介面是:
qg-6108c4a2-94@if209: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether fa:16:3e:9e:58:d2 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 173.20.12.8/24 brd 173.20.12.255 scope global qg-6108c4a2-94
valid_lft forever preferred_lft forever
inet 173.20.12.7/32 brd 173.20.12.7 scope global qg-6108c4a2-94
valid_lft forever preferred_lft forever
inet 173.20.12.11/32 brd 173.20.12.11 scope global qg-6108c4a2-94
valid_lft forever preferred_lft forever
inet 173.20.12.13/32 brd 173.20.12.13 scope global qg-6108c4a2-94
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fe9e:58d2/64 scope link
valid_lft forever preferred_lft forever
答案1
您將無法獲得您想要的資訊。 IP 是同一單一介面的一部分,因此,它們僅在實體層級進行計數。我應該注意“ifconfig”是不足且過時。該ip
命令將向您顯示物理級別的摘要。
% ip -s link show br1000
10: br1000: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether 00:10:18:aa:a8:20 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
15661372003 108647365 0 0 0 0
TX: bytes packets errors dropped carrier collsns
278081828962 149463091 0 0 0 0
您需要使用iptables
或nftables
追蹤您想要追蹤的內容。
# iptables example - probably incorrect, I don't have a dev machine to test this.
iptables -A INPUT -i br1000 -d 10.100.0.1/24 -j LOG
iptables -A OUTPUT -i br1000 -s 10.100.0.1/24 -j LOG
# nftables example - probably incorrect, I don't have a dev machine to test this.
nft add rule ip filter INPUT iifname "br1000" ip daddr 10.100.0.1 counter log
nft add rule ip filter OUTPUT iiname "br1000" ip saddr 10.100.0.1 counter log
還有其他補充軟體也可以為您提供幫助 - 第一個想到的是vnstat
。但您的里程可能會有所不同。