vnstat 是一个监控网络流量使用的命令行工具,大多数发行版都可以使用包管理器轻松安装 vnstat,但是 RHEL/CentOS 7 有着极为稳定且老旧的运行库,最新版 vnstat 只能通过手动编译的方法安装

vnstat


较新版本的 RHEL 系发行版

RHEL 8/9(也包括 CentOS 8CentOS Stream 8/9、仍在支持的 Fedora、以及各大云厂商魔改的 RHEL) 应该不需要这个教程,因为 EPEL 会自动为这些发行版提供新版本的 vnstat

如果你使用较新版本的 RHEL 系发行版,直接使用这个命令安装: dnf install vnstat

RHEL 8

RHEL/CentOS 7 或者老版本的 RHEL 系发行版安装 vnstat,就只能采取手动编译的方法了
(包管理器仍然可以下载安装,但是版本十分老旧,缺少很多新功能,数据库格式也和新版本有很大差别)
(不建议更改软件源。这个操作可能会炸掉你系统其他的包)

RHEL 7


一键命令

不想看全文的,可以直接用这个命令解决:

Last updated: 2023/02/25
  • sh
1
2
3
4
5
6
7
8
9
yum install sudo wget tar gcc make gd gd-devel -y
sudo mkdir -p /tmp -m 777 && cd /tmp
wget https://humdi.net/vnstat/vnstat-2.10.tar.gz
tar xzf vnstat-2.10.tar.gz
cd vnstat-2.10
./configure --prefix=/usr --sysconfdir=/etc
make -j$(nproc) && sudo make install
sudo cp examples/systemd/vnstat.service /usr/lib/systemd/system
sudo systemctl enable --now vnstat

安装教程

安装必要的依赖

安装必要的依赖
  • sh
1
yum install sudo wget tar gcc make gd gd-devel

gd gd-devel 是可选依赖,如果你不需要 vnstati 就可以去掉这两个包

下载并解压

浏览器打开 vnstat 项目页面

vnstat 项目页面

复制下来稳定版源码的下载链接(你也可以使用 git 来获取源码)

下载并解压
  • sh
1
2
3
4
wget https://humdi.net/vnstat/vnstat-2.10.tar.gz
# ^ 替换为你复制的下载链接!
tar xzf vnstat-2.10.tar.gz
cd vnstat-2.10

编译安装

配置
  • sh
1
./configure --prefix=/usr --sysconfdir=/etc

两个参数一个是安装目录,一个是配置文件目录

编译安装
  • sh
1
2
make -j$(nproc)
sudo make install

多线程编译并安装到设置的目录

自启动

Systemd

Systemd
  • sh
1
2
sudo cp examples/systemd/vnstat.service /usr/lib/systemd/system
sudo systemctl enable --now vnstat

SysVinit(init.d)

SysVinit(init.d)
  • sh
1
2
sudo cp examples/init.d/centos/vnstat /etc/init.d/myservice
chkconfig --add vnstat
重启后生效

卸载

卸载
  • sh
1
2
./configure --prefix=/usr --sysconfdir=/etc
sudo make uninstall

和安装类似,两个参数一个是卸载目录,一个是将要删除的配置文件目录(如果目录非空,不会直接把你整个 /etc 删掉的)

在编译目录(/tmp/vnstat-2.10)执行上面的命令即可,如果编译目录删除了,需要重新下载解压

卸载不会自动删除数据库,你可以手动删除数据库(配置文件开头定义了数据库路径,默认是 /var/lib/vnstat

装完注意检查一下 vnstatvnstatdvnstati 的版本,之前遇到过 vnstatvnstatd 版本不一致的问题,程序不工作,但是也没有任何报错