Files
sniffnet/README.md
2024-03-25 21:56:37 +01:00

16 KiB
Raw Blame History

Sniffnet

Download Roadmap Website Wiki

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

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

Overview page Inspect page Notifications page

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 allow me to dedicate more time to this project, constantly expanding it including new features and functionalities.

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

GitHub   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        

Note

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

Links in the table above will download the latest version of Sniffnet directly from GitHub releases.
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
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

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!

IP geolocation and network providers (ASN)

See details

Geolocation and network providers (ASN) refer to the remote IP address of each connection. They are retrieved performing lookups against MMDB files:

Note

The MMDB (MaxMind database) format has been developed especially for IP lookup.
It is optimized to perform lookups on data indexed by IP network ranges quickly and efficiently.
It permits the best performance on IP lookups, and it's suitable for use in a production environment.

This product includes GeoLite2 data created by MaxMind, available from https://www.maxmind.com

This file format potentially allows Sniffnet to execute hundreds of different IP lookups in a matter of a few milliseconds.

Supported network services

See details

Sniffnet supports more than 6000 services, including common upper layer protocols, trojans, and worms.

Network services are inferred from the transport protocol and port number, following the convention maintained by IANA.

Please, remember that this is just a convention:

Warning

The Internet Assigned Numbers Authority (IANA) is responsible for maintaining the official assignments of port numbers for specific uses.
However, many unofficial uses of well-known port numbers occur in practice.

Sniffnet's list of services is generated from Nmap's service collection and is available in the file services.txt.

Keyboard shortcuts

See details

Some keyboard shortcuts are available to improve the efficiency of use and the overall user experience.

If you want to suggest a different key combination for one of the existing shortcuts or if you want to propose a new shortcut, have a look at this issue.

The currently usable hotkeys are reported in the following.

Note

On macOS, use the cmd key instead of ctrl

Event Shortcut keys
Quit the application ctrl+Q
Open full report ctrl+O
Open settings ctrl+,
Clear all notifications ctrl+D
Interrupt the ongoing analysis ctrl+backspace
Start the analysis and confirm modal actions enter
Close settings and modal popups esc
Switch from a tab to the next (or previous) one tab (or shift+tab)
Change inspect connections page to the next (or previous) one ctrl+rightArrow (or ctrl+leftArrow)

Custom themes

See details

Custom themes are specified as a TOML file.

The TOML must follow this format:

# all colors are in RGB/RGBA hexadecimal.
primary = "#303446"           # background color
secondary = "#a6d189"         # header, footer, and incoming connections color
outgoing = "#f4b8e4"          # outgoing connections color
text_body = "#c6d0f5"         # body text color 
text_headers = "#232634"      # header and footer text color
starred = "#e5c890aa"         # favorites' star color

The example theme above uses colors from Catppuccin.

You can also check the resources/themes folder, which contains sample TOML files with additional themes.

To use a custom theme for your instance of Sniffnet, specify the path of your TOML file in the application's settings (at the bottom of the style tab).

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 up-to-date, the wgpu default renderer used by iced may have 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

iced

  • Last but not least, thanks to every single stargazer: all forms of support made it possible to keep improving Sniffnet!