Skip to content
pdlpadPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

30 Commits

Folders and files

Repository files navigation

nazorat

nazorat

Open-source system monitor in Rust, a Task Manager alternative with a focus on the network: which process talks to which address. Windows first, then Linux and macOS.

Performance tab

Status

Stage Scope State
1 Processes, Performance, Network on Windows, no admin rights Done
2 ASN, country, cloud labels, blocklists, grouping, SQLite history Done
3 ETW traffic per process, DNS and SNI names, PTR fallback Done, needs administrator rights
4 NVIDIA GPU, services, startup entries, process tree Done
5 Linux and macOS providers Planned

Values the OS does not provide are shown as —, never as zero. The Memory column is the working set; see docs/decisions.md for why values differ from Task Manager.

Layout

  • crates/nazorat-core: platform-independent types, history buffer and ports
  • crates/nazorat-provider: default provider, sysinfo and netstat2
  • crates/nazorat-intel: local IP reference data and its downloads
  • crates/nazorat-history: SQLite history of connections
  • crates/nazorat-etw: traffic, DNS and TLS name capture through ETW on Windows
  • crates/nazorat-app: egui UI, binary nazorat

Administrator rights

Everything works without them except traffic per process and remote names, which show —. For those, start nazorat.exe as administrator. Names show their source:

  • DNS: the answer to a query made through the Windows DNS client
  • SNI: the server name in a TLS handshake, read from outgoing packets
  • PTR: reverse DNS, a guess, only if you turn on Reverse DNS

Apps with their own resolver produce no DNS events. Encrypted ClientHello and QUIC, which many browsers use, hide the server name from SNI capture. Names are learned by watching, so connections opened before nazorat started have none until the app connects again.

Privacy

Addresses seen on this machine are looked up locally and not sent anywhere. The one exception is Reverse DNS: it is off by default, and each lookup tells your DNS server the address. Packets are read only to find the server name in a TLS handshake and are not stored. On first start and when files get old, nazorat downloads published reference files into %LOCALAPPDATA%\nazorat\data; run with --offline to prevent that. Connection history stays in history.db in the same folder and is deleted after 90 days. History is sampled once per poll, so very short connections can be missing from it.

Data sources

Nothing below is stored in this repository.

Data Source Terms
ASN, organization, country DB-IP Lite CC BY 4.0, attribution shown in the app
Cloud ranges Published lists of AWS, Google Cloud, Azure, Cloudflare Provider terms
Blocklists abuse.ch Feodo Tracker, FireHOL Level 1 List terms

A blocklist entry means an address is listed, not that a connection is malicious. Country data is approximate, especially for anycast addresses.

Build

Requires stable Rust; on Windows, the MSVC build tools.

cargo run -p nazorat-app

Use -- --tab <overview|processes|performance|network|services|startup> to choose the startup tab. A second start brings the running window forward; --new-instance opens another one, which does not write history.

License

Licensed under either of Apache License 2.0 or MIT license at your option.

The bundled Manrope font is licensed under the SIL Open Font License 1.1.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages