Network File System Monitor: nfstrace

ID N0WHERE:169388
Type n0where
Reporter N0where
Modified 2017-03-13T06:10:46


Network File System Monitor

NFS and CIFS tracing/monitoring/capturing/analyzing tool

It performs live Ethernet 1 Gbps – 10 Gbps packets capturing and helps to determine NFS/CIFS procedures in raw network traffic. Furthermore, it performs filtration, dumping, compression, statistical analysis, visualization and provides the API for custom pluggable analysis modules.

nfstrace is written in C++ programming language and supports the following protocols:

  • Ethernet
  • IPv4 | IPv6
  • UDP | TCP
  • NFSv3 | NFSv4 | NFSv4.1 | CIFSv1 | CIFSv2

nfstrace has been tested on the following GNU/Linux and FreeBSD systems:

  • Debian Sid packages build-logs
  • Fedora 26
  • OpenSUSE 13.2
  • Ubuntu 16.04 LTS
  • CentOS 7
  • Arch Linux
  • FreeBSD 10.1
  • Alt Linux 7.0.5

External Dependencies

  • PCAP library (core component)
  • JSON-C library (used for plugin)
  • Curses (used for plugin)
  • GMock (used for testing)


Since nfstrace is written in C++ you have to use gcc >= 6 or clang >= 3.8. Additionally, you need to install development version of libpcap (version 1.3 or newer).

You can build nfstrace using CMake (version 3.0 or newer). From the top level project’s directory run:

$ mkdir release
$ cd release
$ cmake -DCMAKE_BUILD_TYPE=release ../
$ make

If you want to use specific compiler you can set the CC and CXX environment variables:

$ CC="path/to/clang" CXX="path/to/clang++" cmake -DCMAKE_BUILD_TYPE=release ../

If you want to build unit-tests initialize git submodules and provide a path to googltest directory via CMake option:

$ -DGTEST_SOURCE_DIR=/home/user/nfstrace/third_party/googletest

If you want to specify different installation prefix:

$ cmake -DCMAKE_INSTALL_PREFIX=/your/path ../

You can use different build tools, compilers, packaging systems with required parameters. Please refer to CMake , CPack and Reference Manuals .


You can install nfstrace to default location. After you build nfstrace simply run:

$ sudo make install

If you’re using rpm- or debian based Linux distribution you can try to generate package for your system using cpack . Please note that you need rpm or debian tools to be installed.

In order to generate rpm package:

$ cpack -G RPM

In order to generate deb package:

$ cpack -G DEB

After that you’ll be able to install generated package using your package manager.

Network File System Monitor: nfstrace documentation

Network File System Monitor: nfstrace download