添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
FIXME This page is not fully translated, yet. Please help completing the translation.
(remove this paragraph once the translation is finished)

Bandwidthd

http://bandwidthd.sourceforge.net/ (openWRT older than 17) https://github.com/NethServer/bandwidthd (openWRT 17 or higher) Note: bandwidthd in LEDE/OpenWRT 17.01 or higher tracks the SMTP data (ports 25, 465 and 587) while the version in the previous version of OpenWrt (Chaos Calmer and older) tracks the P2P data (Gnutella, eDonkey, etc.). All of the other data ( FTP , UDP , TCP , etc.) is tracked the same way in all versions. Bandwidthd涉及到4个软件包: 注意:bandwidthd, bandwidthd-pgsql, bandwidthd-sqliteinstall 只能安装三者中的一个!!
  • bandwidthd : 如果安装这个包,不能保存数据到postgresql 或者 sqlite 数据库。路由器生成的bandwidth数据,可以通过这个网址访问 http://192.168.1.1/bandwidthd . 也就是如果您不需要保存数据到 postgresql 或者 sqlite 数据库,那么安装这个包即可。注意:路由器重启后历史数据会丢失。
  • bandwidthd-pgsql : bandwidthd能干的活,这个包也能干,同时还支持保存数据到postgresql数据库,这个数据库可以位于路由器或者其他服务器。这些数据可以由PHP脚本分析,并在浏览器内展现。需要知晓的是,路由器、posgresql数据库、生成图形的PHP服务,可以位于3个不同设备上,各自分工一项任务(例如:路由器收集数据,然后发送至单独的数据库服务器,然后PHP服务器调取数据库服务器的数据生成图形展示)。如果postgresql数据不保存在路由器上,那么没有必要安装postgresql包。
  • bandwidthd-php : 这个包提供了PHP文件位于路由器的/www/phphtdocs目录。只有在OpenWrt路由器作为网页服务器生成图形时才需要安装,访问 http://192.168.1.1/phphtdocs . 注意:如果安装bandwidthd-sqlite则不要安装bandwidthd-php,因为bandwidthd-sqlite包含了所需的PHP文件用于生成图形文件。
  • bandwidthd-sqlite . 这软件包,除了bandwidthd能干的活以外,还可以保存数据到路由器的sqlite数据库,也能够通过PHP生成图形文件。在某种意义上来说,它是 bandwidthd-pgsql 和 bandwidthd-php 的组合, 但是是使用的sqlite数据库而不是postgresql。
  • In Attitude Adjustment (12.09) as a package.
  • In Barrier Breaker (14.07) in “oldpackages” as a package.
  • In original Chaos Calmer (15.05) it is not available as a precompiled package : you have to compile it yourself and install it. See https://wiki.openwrt.org/doc/howto/build to have details on how to compile a package.
  • As a package in 15.05.1 or higher.
  • In the original Chaos Calmer (15.05) it is not available as a precompiled package : you have to compile it yourself and install it. See https://wiki.openwrt.org/doc/howto/build to have details on how to compile a package.
  • In the minor fix release of Chaos Calmer (15.05.1) it is available as a package.
  • As a package in 15.05.1 or higher.
    opkg install bandwidthd uhttpd
    /etc/init.d/uhttpd enable
    /etc/init.d/uhttpd start
    /etc/init.d/bandwidthd enable
    /etc/init.d/bandwidthd start
    安装bandwidthd-pgsql包(注意:如不在路由器上生成图形,那么可以不安装uhttpd):
    opkg install bandwidthd-pgsql uhttpd
    /etc/init.d/uhttpd enable
    /etc/init.d/uhttpd start
    /etc/init.d/bandwidthd enable
    /etc/init.d/bandwidthd start
    所需其他依赖大致需要500kB空间,如果路由器IP地址为默认的192.168.1.1,那么即可通过 http://192.168.1.1/bandwidthd 访问服务。 如果修改了路由器IP,那么编辑配置文件(/etc/config/bandwidthd)内的IP地址为修改后的IP。 为 bandwidthd-sqlite 建立的 /etc/config/bandwidthd-php 配置文件也是一样的数据结构,但是以下选项不需要 host , user and dbname 。替换为: option sqlite_dbname “/www/bandwidthd/stats.db” bandwidthd-pgsql 可以将数据库保存到postgresql数据库,然后通过PHP生成图形文件,访问地址为: http://192.168.1.1/phphtdocs/index.php 当然,这里的IP需要修改为web服务器(包含PHP文件)的IP,可以是你的路由器或者其他任何服务器(只要能生成图形文件)。 修改3个选项: “option output_cdf true” 和 “option recover_cdf true” 和 “option sqlite_filename 'file.db' ”
    config bandwidthd
    	option dev		br-lan
    	option subnets		"192.168.1.0/24"
    	option skip_intervals	0
    	option graph_cutoff	1024
    	option promiscuous	true
    	option output_cdf	true
    	option recover_cdf	true
    	option filter		ip
    	option graph		true
    	option meta_refresh	150
            option SQLite_filename  "/path/to/file.db" # 默认的配置可以自动生成数据库文件,通常能正常使用。 如果有外置储存空间,按需设置实际的储存空间目录。
    修改完配置文件后,重启服务,然后在外置储存目录内会自动生成下列文件结构:
    root@openwrt:~# ls -la /mnt/usb/bandwidthd/
    drwxr-xr-x    3 root     root         1024 Aug 25 12:21 .
    drwxr-xr-x    6 root     root         1024 Aug 25 00:39 ..
    -rw-r--r--    1 root     root          158 Aug 25 00:40 bandwidthd.conf
    drwxr-xr-x    2 root     root         2048 Aug 25 00:40 htdocs
    -rw-r--r--    1 root     root        50034 Aug 25 12:21 log.1.0.cdf
    -rw-r--r--    1 root     root        22204 Aug 25 12:21 log.2.0.cdf
    -rw-r--r--    1 root     root         6698 Aug 25 12:10 log.3.0.cdf
    -rw-r--r--    1 root     root          529 Aug 25 00:39 log.4.0.cdf
    Bandwidthd支持保存数据到外部数据库(仅限 bandwidthd-pgsql 软件包), bandwidthd 包不支持 。这样的一个系统由3部分组成,每个部分都可位于不同的设备。
  • bandwidthd 就像一个传感器,收集流量信息,保存在路由器内的数据库,或者通过网络保存至外部数据库。这种模式下Bandwidthd占用非常小的内存和CPU。此外,多个路由器的bandwidthd可保存在同一个数据库内。
  • 数据库系统 目前Bandwidthd仅支持Postgresql数据库系统。请注意OpenWrt适用的postgres-server软件包体积非常大(数据库程序,加上空的数据库文件,体积已经超过15M) ,除非路由器有足够多的空间,否则不建议在路由器部署数据库。
  • 网页服务器和PHP应用 如需在OpenWrt路由器上部署, bandwidthd-php 软件包包含了所需的文件,“/www/phphtdocs”目录内就是PHP程序,可以把数据库内的数据生成图形文件,这样设计的目的是方便自定义。所有相关的都通过 url 网址传递,只需稍作修改,即可非常容易地生成自定义图表。
    数据库部署 注意!数据库不一定要在路由器,可以是一台单独的设备。如果不在路由器部署数据库,那么所需的文件可访问: http://bandwidthd.sourceforge.net/
  • 为bandwidthd创建数据库,同时创建可以远程访问数据库的用户(如果远程传输数据)。在OpenWrt内的操作:登录用户postgres (su - postgres),执行命令 “createdb bandwidthd”, 然后通过“exit”命令回到root用户。
  • Bandwidthd的schema文件是“schema.postgresql”,位于 /usr/share/postgresql (由bandwidthd-pgsql软件包提供)。“psql mydb username < schema.postgresql”
    option subnets "192.168.1.0/24" option skip_intervals 0 option graph_cutoff 1024 option promiscuous true option output_cdf false option recover_cdf false option filter ip option graph true option meta_refresh 150 option pgsql_connect_string "user = postgres dbname = bandwidthd host = 192.168.1.1" option sensor_id "openwrt" 有的情况默认配置即可工作,但是有时候需要手动修改配置文件,修改以下选项:
    option graph false
       #默认是true,这样无论如何都可以通过http://192.168.1.1/bandwidthd 即使pgsql设置有问题。如果你计划仅使用PHP获得图形,那么可以设置这个选项为false。
    option pgsql_connect_string    "user = postgres dbname = bandwidthd host = 192.168.1.1"
       #user 修改用户名
       #dbname 修改数据库名称,默认是bandwidthd
       #host 修改数据库服务器IP地址或者域名
     option sensor_id "openwrt"
       #可按需设置sensor名称,这个选项没有严格要求,不重要。
    启动bandwidthd服务 (/etc/init.d/bandwidthd start), 几分钟后数据将会出现在数据库内,如果没有,那么检查系统日志 (logread命令) 的错误信息。 (访问 https://wiki.openwrt.org/doc/howto/log.essentials 获取更多关于OpenWRT syslog的信息) 网页服务器设置 注意,网页服务器不一定非要在路由器上,可以是独立于路由器之外的远程服务器。在OpenWrt安装PHP的信息详见 http://wiki.openwrt.org/doc/howto/php 。其他系统 (Linux, NetBSD, Unix, etc.) 可参考对应系统的帮助文档。你也需要配置网页服务器,以支持PHP,如果在OpenWrt上运行此项服务,大约需要占用2M的空间。
  • 复制PHP文件到网页服务器的制定目录,PHP文件下载地址(项目存档地址) http://bandwidthd.sourceforge.net/ , https://github.com/NethServer/bandwidthd ,或者安装 bandwidthd-php 软件包,会将这些文件放置于 /www/phphtdocs 目录。
  • 编辑配置文件 /etc/config/bandwidthd-php 设置数据库连接相关的信息 ( $db_connect_string = “host=192.168.1.1 user=postgres dbname=bandwidthd” ). 这些变量 host , user and dbname 用于连接到数据库,必须设置!!
  • 在OpenWrt这些包会被自动安装 libpcre ; libxml2 ; php7 ; php7-cgi ; php7-mod-pgsql and php7-mod-gd . 至于其他系统,可能会有所区别. 系统支持php5(用于Chaos Calmer,由于php7不支持该版本的OpenWrt)
  • 从 2021 年底开始,可能会安装 php8 而不是 php7
  • 对于php5, 一个zoneinfo的软件包需要安装, (ex: zoneinfo-northamerica zoneinfo-europe ). 这个事php.ini设置时区(date.timezone)的需求。
  • If you are not using the bandwidthd-php package from OpenWrt (i.e. you got the php files on the web at one of the links above), the file /etc/php.ini should be edited to have the following: short_open_tag = On : the reason is that the php files taken from http://bandwidthd.sourceforge.net/ or https://github.com/NethServer/bandwidthd have the php short tag (<? ?>) instead of the normal tag (<?php ?>). If you do not do it, then you will get a bunch of garbage on the screen. If you installed the bandwidthd-php package on your router, then this is not necessary to set the short_open_tag = at On as the tags in the php files have been corrected to have <?php ?>.
  • In the /etc/php.ini file a date.timezone = whould be present (ex: date.timezone = “America/Montreal” ). Without the date.timezone set to something valid, the graphs will not be drawn .
  • In the /etc/php.ini file the display_errors should be set to off as many variables are not defined. If you have display_errors = On the web page will most probably not work.
  • If you are using uhttpd, the following two lines should be added to /etc/config/uhttpd: list interpreter '.php=/usr/bin/php-cgi' and option index_page 'index.php' .
  •