如何测量网络流量(使用 pfSense/freeBSD)?

如何测量网络流量(使用 pfSense/freeBSD)?

是否可以使用 pfSense/freeBSD 测量网络流量(每月、每个 WAN、每个方向)?

列出了以下程序https://doc.pfsense.org/index.php/How_can_I_monitor_bandwidth_usage但似乎对我来说都不能正常工作。例如,ntopng仅显示电流,同时BandwidthD只能监控一个接口。

遗憾的是,但我仍然不知道我在每个提供程序上花费了多少字节。

我的路由器计算机上安装了 pfsense。 pfsense 基于 freebsd。

答案1

在系统/软件包下安装“vnstat2”软件包。然后转到状态/Vnstat2。摘要选项卡将显示如下信息:

                      rx      /      tx      /     total    /   estimated
 em1:
       Jun '15     64.34 GiB  /   10.39 GiB  /   74.73 GiB  /   98.00 GiB
     yesterday      5.30 GiB  /  373.42 MiB  /    5.66 GiB
         today      2.90 GiB  /  197.29 MiB  /    3.09 GiB  /    3.52 GiB

您还可以使用“vnstat -i em1 -m”来获取特定接口的每月统计信息。

(vnstat也适用于Linux,我就是从那里了解到的)

答案2

SNMP(简单网络管理协议)是测量网络流量的一种典型方法。 这一页记录了将 SNMP 与 pfSense 结合使用的一些方面。

实际上,在本例中我使用的是bsnmpgetFreeBSD 的bsnmpdSNMP 实现组件,但大多数 SNMP 套件都允许您执行以下操作:

$ # query the number of interfaces present:
$ bsnmpget ifNumber.0
ifNumber.0 = 6
$ for iface in $(jot $(bsnmpget -o quiet ifNumber.0))
do
     bsnmpget ifName[$iface]
     bsnmpget ifInOctets[$iface]
     bsnmpget ifOutOctets[$iface]
     printf -- '--\n'
done
ifName[1] = em0
ifInOctets[1] = 1430450040
ifOutOctets[1] = 2237124338
--
ifName[2] = lo0
ifInOctets[2] = 46500610
ifOutOctets[2] = 46500610
--
ifName[3] = public
ifInOctets[3] = 1407864504
ifOutOctets[3] = 2237124186
--
ifName[4] = vlan1
ifInOctets[4] = 6933941
ifOutOctets[4] = 0
--
ifName[5] = vlan3
ifInOctets[5] = 5776832
ifOutOctets[5] = 152
--
ifName[6] = vm-public
ifInOctets[6] = 714355313
ifOutOctets[6] = 0
--

相关内容