Files
sniffnet/README.md
2025-04-24 16:35:57 +02:00

17 KiB
Raw Blame History

Application to comfortably monitor your Internet traffic.
Cross-platform. Intuitive. Reliable.

Translated in:
🇨🇳 🇩🇪 🇫🇷 🇷🇺 🇵🇹 🇪🇦 🇮🇹 🇵🇱 + 12 more languages

Support Sniffnet's development 💖

Sniffnet is completely free, open-source software which needs lots of effort and time to develop and maintain.

If you appreciate Sniffnet, consider sponsoring: your support will enable a constant growth with new features and functionalities.
Do you want to help the project in an alternative way? You can also head to the official store and put your hands on some cool merchandise!

A special mention goes to these awesome organizations and folks who are sponsoring Sniffnet:

GitHub   NLnet   IPinfo   Cthulu201   Tiansheng Li   ZEROF   Jan Walter

Download

Windows macOS Linux (.deb) Linux (.rpm)
        64bit | 32bit         Intel | Apple silicon amd64 | arm64 | i386 | armhf         x86_64 | aarch64        

Links in the table above will download the latest version of Sniffnet directly from GitHub releases.

Note

Remember to also install the required dependencies for your operating system.

Alternative installation methods are reported in the following:

from Crates.io

Follow this method only if you have Rust installed on your machine.
In this case, the application binary can be built and installed with:

cargo install sniffnet --locked
from Homebrew

You can install Sniffnet Homebrew package with:

brew install sniffnet
from Nixpkgs

You can install Sniffnet Nix package adding the following Nix code to your NixOS Configuration, usually located in /etc/nixos/configuration.nix:

environment.systemPackages = [
  pkgs.sniffnet
];

Alternatively, you can install it in your home using Home Manager with:

home.packages = [
  pkgs.sniffnet
];

Alternatively, you can try it in a shell with:

nix-shell -p sniffnet
on Arch Linux

You can install Sniffnet community package via pacman:

pacman -S sniffnet
on FreeBSD

You can install Sniffnet port with:

pkg install sniffnet
on NetBSD

You can install Sniffnet from the official repositories via pkgin:

pkgin install sniffnet
on Tiny Core Linux

You can install Sniffnet from the official repository with:

tce-load -wi sniffnet
Using Docker

Docker

Sniffnet can be run in a Docker container. This is especially useful for quickly testing the application without installing all dependencies directly on your system.

Pull from GitHub Container Registry

The easiest way to get started is by pulling the pre-built image from GitHub Container Registry:

# Pull the latest version
docker pull ghcr.io/gyulyvgc/sniffnet:latest

# Or pull a specific version
docker pull ghcr.io/gyulyvgc/sniffnet:1.2.3  # Replace with actual version

Running the Docker container

To run Sniffnet in a Docker container on Linux, you need to grant the appropriate network permissions and configure display access:

For Wayland

docker run -it \
  --net=host \
  -v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \
  -e WAYLAND_DISPLAY=$WAYLAND_DISPLAY \
  -e XDG_RUNTIME_DIR=/tmp \
  -e RUST_BACKTRACE=full \
  -e ICED_BACKEND=tiny-skia \
  --cap-add=NET_ADMIN \
  --cap-add=NET_RAW \
  ghcr.io/gyulyvgc/sniffnet:latest

For X11

docker run -it \
  --net=host \
  -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -e RUST_BACKTRACE=full \
  -e ICED_BACKEND=tiny-skia \
  --cap-add=NET_ADMIN \
  --cap-add=NET_RAW \
  ghcr.io/gyulyvgc/sniffnet:latest

Note

  • The --net=host flag is required for Sniffnet to access your network interfaces.
  • --cap-add=NET_ADMIN and --cap-add=NET_RAW are needed for packet capture capabilities.
  • If you experience rendering issues, the ICED_BACKEND=tiny-skia environment variable switches to the software renderer.

Building your own Docker image

If you prefer to build the Docker image yourself:

# Clone the repository
git clone https://github.com/GyulyVGC/sniffnet.git
cd sniffnet

# Build the Docker image
docker build -t sniffnet .

# Run with the same parameters as above, but using your local image
docker run -it --net=host [...other parameters] sniffnet

Troubleshooting Docker setup

If you encounter issues:

  1. Make sure you have the necessary permissions to run Docker commands (or use sudo)
  2. For GUI issues, ensure your host display server allows connections from Docker
  3. If you're using SELinux, you might need to adjust policies or temporarily set it to permissive mode

For X11, you may need to allow Docker to connect to your X server:

xhost +local:docker

Remember to revert this change when done:

xhost -local:docker

Features

  • 💻 choose a network adapter of your PC to inspect
  • 🏷️ select a set of filters to apply to the observed traffic
  • 📖 view overall statistics about your Internet traffic
  • 📈 view real-time charts about traffic intensity
  • 📌 keep an eye on your network even when the application is minimized
  • 📁 export comprehensive capture reports as PCAP files
  • 🔎 identify 6000+ upper layer services, protocols, trojans, and worms
  • 🌐 find out domain name and ASN of the hosts you are exchanging traffic with
  • 🏠 identify connections in your local network
  • 🌍 get information about the country of remote hosts (IP geolocation)
  • save your favorite network hosts
  • 🕵️‍♂️ search and inspect each of your network connections in real time
  • 🔉 set custom notifications to inform you when defined network events occur
  • 🎨 choose the style that fits you the most, including custom themes support
  • ...and more!

User manual

Do you want to learn more?
Check out the Sniffnet Wiki, a comprehensive manual to help you thoroughly master the application from a basic setup to the most advanced functionalities.
The Wiki includes step-by-step guides, tips, examples of usage, and answers to frequent questions.

Troubleshooting

See details

Missing dependencies

Most of the errors that may arise are likely due to your system missing dependencies required to correctly analyze a network adapter.
Check the required dependencies page for instructions on how to proceed depending on your operating system.

Rendering problems

In some circumstances, especially if you are running on an old architecture or your graphical drivers are not updated, the wgpu default renderer used by iced may manifest bugs (the interface glitches, color gradients are unsupported, or some icons are completely black).
In these cases you can set an environment variable to switch to the tiny-skia renderer, a CPU-only software renderer that should work properly on every environment:

ICED_BACKEND=tiny-skia

In any case, don't hesitate to open an issue, and I will do my best to help you!

Acknowledgements

  • A big shout-out to all the contributors of Sniffnet!
  • The graphical user interface has been realized with iced, a cross-platform GUI library for Rust focused on simplicity and type-safety
  • IP geolocation and ASN data are provided by MaxMind
  • Last but not least, thanks to every single stargazer: all forms of support made it possible to keep improving Sniffnet!

Stay in the loop

Wait... there's more!
Sniffnet is rapidly evolving, and new features are added on a regular basis.
Follow the news and Sniffnet socials to never miss an update.

Bluesky  LinkedIn  Mastodon  Telegram  Twitter / X