
नेटवर्क कनेक्शन का निरीक्षण करने का एक अधिक आकर्षक तरीका।
मनुष्यों के लिए एक अधिक मैत्रीपूर्ण ss / netstat। एक स्वच्छ TUI या स्टाइल्ड तालिकाओं के साथ नेटवर्क कनेक्शन का निरीक्षण करें।

brew install snitch
@bevanjkay को धन्यवाद जिन्होंने snitch को homebrew-core में जोड़ा
go install github.com/karol-broda/snitch@latest
nix-env -iA nixpkgs.snitch
@DieracDelta को धन्यवाद जिन्होंने snitch को nixpkgs में जोड़ा
# आज़माएं
nix run github:karol-broda/snitch
# प्रोफ़ाइल में इंस्टॉल करें
nix profile install github:karol-broda/snitch
# या flake इनपुट में जोड़ें
{
inputs.snitch.url = "github:karol-broda/snitch";
}
# फिर उपयोग करें: inputs.snitch.packages.${system}.default
snitch को अपने flake इनपुट में जोड़ें और home-manager मॉड्यूल आयात करें:
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager";
snitch.url = "github:karol-broda/snitch";
};
outputs = { nixpkgs, home-manager, snitch, ... }: {
homeConfigurations."user" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux;
modules = [
snitch.homeManagerModules.default
{
programs.snitch = {
enable = true;
# वैकल्पिक: nixpkgs के बजाय flake के पैकेज का उपयोग करें
# package = snitch.packages.x86_64-linux.default;
settings = {
defaults = {
theme = "catppuccin-mocha";
interval = "2s";
resolve = true;
};
};
};
}
];
};
};
}
उपलब्ध थीम: ansi, catppuccin-mocha, catppuccin-macchiato, catppuccin-frappe, catppuccin-latte, gruvbox-dark, gruvbox-light, dracula, nord, tokyo-night, tokyo-night-storm, tokyo-night-light, solarized-dark, solarized-light, one-dark,
# yay के साथ
yay -S snitch-bin
# paru के साथ
paru -S snitch-bin
curl -sSL https://raw.githubusercontent.com/karol-broda/snitch/master/install.sh | sh
उपलब्ध होने पर ~/.local/bin में, अन्यथा /usr/local/bin में इंस्टॉल होता है। ओवरराइड करें:
curl -sSL https://raw.githubusercontent.com/karol-broda/snitch/master/install.sh | INSTALL_DIR=~/bin sh
macos: इंस्टॉल स्क्रिप्ट स्वचालित रूप से बाइनरी से क्वारंटाइन विशेषता (
com.apple.quarantine) हटा देती है ताकि यह गेटकीपर चेतावनियों के बिना चल सके। इसे अक्षम करने के लिएKEEP_QUARANTINE=1सेट करें।
GitHub Container Registry से पूर्व-निर्मित OCI छवियाँ उपलब्ध हैं:
# ghcr.io से पुल करें
docker pull ghcr.io/karol-broda/snitch:latest # alpine (डिफ़ॉल्ट)
docker pull ghcr.io/karol-broda/snitch:latest-alpine # alpine (~17MB)
docker pull ghcr.io/karol-broda/snitch:latest-scratch # न्यूनतम, केवल बाइनरी (~9MB)
docker pull ghcr.io/karol-broda/snitch:latest-debian # debian trixie
docker pull ghcr.io/karol-broda/snitch:latest-ubuntu # ubuntu 24.04
# या एक विशिष्ट संस्करण का उपयोग करें
docker pull ghcr.io/karol-broda/snitch:0.2.0-alpine
वैकल्पिक रूप से, nix flake के माध्यम से स्थानीय रूप से बनाएं:
nix build github:karol-broda/snitch#snitch-alpine
docker load < result
कंटेनर चलाना:
# मूल उपयोग - होस्ट सॉकेट देखता है लेकिन प्रक्रिया नाम नहीं
docker run --rm --net=host snitch:latest ls
# पूर्ण जानकारी - PID, प्रक्रिया नाम, उपयोगकर्ता शामिल है
docker run --rm --net=host --pid=host --cap-add=SYS_PTRACE snitch:latest ls
| फ़्लैग | उद्देश्य |
|---|---|
--net=host | होस्ट नेटवर्क नेमस्पेस साझा करें (होस्ट कनेक्शन देखने के लिए आवश्यक) |
--pid=host | होस्ट PID नेमस्पेस साझा करें (प्रक्रिया जानकारी के लिए आवश्यक) |
--cap-add=SYS_PTRACE | /proc/<pid> से प्रक्रिया विवरण पढ़ें |
नोट:
CAP_NET_ADMINऔरCAP_NET_RAWकी आवश्यकता नहीं है। snitch/proc/net/*से पढ़ता है, जिसके लिए विशेष नेटवर्क क्षमताओं की आवश्यकता नहीं होती।
रिलीज़ से डाउनलोड करें:
snitch_<version>_linux_<arch>.tar.gz या .deb/.rpm/.apksnitch_<version>_darwin_<arch>.tar.gztar xzf snitch_*.tar.gz
sudo mv snitch /usr/local/bin/
macos: यदि "डेवलपर को सत्यापित नहीं किया जा सकता" के कारण ब्लॉक हो, तो चलाएँ:
xattr -d com.apple.quarantine /usr/local/bin/snitch
snitch # इंटरैक्टिव tui लॉन्च करें
snitch -l # केवल सुनने वाले सॉकेट दिखाने वाला tui
snitch ls # स्टाइल्ड तालिका प्रिंट करें और बाहर निकलें
snitch ls -l # केवल सुनने वाले सॉकेट
snitch ls -t -e # tcp स्थापित कनेक्शन
snitch ls -p # सादा आउटपुट (पार्स करने योग्य)
snitch / snitch topलाइव-अपडेट होने वाली कनेक्शन सूची के साथ इंटरैक्टिव tui।
snitch # सभी कनेक्शन
snitch -l # केवल सुनने वाले
snitch -t # केवल tcp
snitch -e # केवल स्थापित
snitch -i 2s # 2 सेकंड रिफ्रेश अंतराल
कीबाइंडिंग:
j/k, ↑/↓ नेविगेट करें
g/G ऊपर/नीचे
t/u tcp/udp टॉगल करें
l/e/o सुनने/स्थापित/अन्य टॉगल करें
s/S सॉर्ट चक्र / उलट
w प्रक्रिया देखें/मॉनिटर करें (हाइलाइट)
W सभी देखे गए साफ़ करें
K प्रक्रिया को मारें (पुष्टि के साथ)
/ खोजें
enter कनेक्शन विवरण
? सहायता
q बाहर निकलें
snitch lsएक-शॉट तालिका आउटपुट। यदि आउटपुट टर्मिनल ऊँचाई से अधिक हो तो स्वचालित रूप से पेजर का उपयोग करता है।
snitch ls # स्टाइल्ड तालिका (डिफ़ॉल्ट)
snitch ls -l # केवल सुनने वाले
snitch ls -t -l # tcp श्रोता
snitch ls -e # केवल स्थापित
snitch ls -p # सादा / पार्स करने योग्य आउटपुट
snitch ls -o json # json आउटपुट
snitch ls -o csv # csv आउटपुट
snitch ls -n # संख्यात्मक (कोई DNS रिज़ॉल्यूशन नहीं)
snitch ls --no-headers # हेडर छोड़ें
snitch jsonस्क्रिप्टिंग के लिए JSON आउटपुट।
snitch json
snitch json -l
snitch watchएक अंतराल पर JSON फ्रेम स्ट्रीम करें।
snitch watch -i 1s | jq '.count'
snitch watch -l -i 500ms
snitch upgradeअपडेट की जाँच करें और जगह-जगह अपग्रेड करें।
snitch upgrade # अपडेट की जाँच करें
snitch upgrade --yes # स्वचालित रूप से अपग्रेड करें
snitch upgrade -v 0.1.7 # विशिष्ट संस्करण इंस्टॉल करें
शॉर्टकट फ़्लैग सभी कमांड पर काम करते हैं:
-t, --tcp केवल tcp
-u, --udp केवल udp
-l, --listen सुनने वाले सॉकेट
-e, --established स्थापित कनेक्शन
-4, --ipv4 केवल ipv4
-6, --ipv6 केवल ipv6
DNS और सेवा नाम रिज़ॉल्यूशन विकल्प:
--resolve-addrs IP पतों को होस्टनाम में हल करें (डिफ़ॉल्ट: true)
--resolve-ports पोर्ट नंबरों को सेवा नामों में हल करें
--no-cache DNS कैशिंग अक्षम करें (ताज़ा लुकअप बलपूर्वक)
DNS लुकअप समानांतर में किए जाते हैं और प्रदर्शन के लिए कैश किए जाते हैं। डिबगिंग के लिए या जब पते बार-बार बदलते हों, तो कैश को बायपास करने के लिए --no-cache का उपयोग करें।
अधिक विशिष्ट फ़िल्टरिंग के लिए, ls के साथ key=value सिंटैक्स का उपयोग करें:
snitch ls proto=tcp state=listen
snitch ls pid=1234
snitch ls proc=nginx
snitch ls lport=443
snitch ls contains=google
स्टाइल्ड तालिका (डिफ़ॉल्ट):
╭─────────────────┬───────┬───────┬─────────────┬─────────────────┬────────╮
│ PROCESS │ PID │ PROTO │ STATE │ LADDR │ LPORT │
├─────────────────┼───────┼───────┼─────────────┼─────────────────┼────────┤
│ nginx │ 1234 │ tcp │ LISTEN │ * │ 80 │
│ postgres │ 5678 │ tcp │ LISTEN │ 127.0.0.1 │ 5432 │
╰─────────────────┴───────┴───────┴─────────────┴─────────────────┴────────╯
2 connections
सादा आउटपुट (-p):
PROCESS PID PROTO STATE LADDR LPORT
nginx 1234 tcp LISTEN * 80
postgres 5678 tcp LISTEN 127.0.0.1 5432
~/.config/snitch/snitch.toml पर वैकल्पिक कॉन्फ़िग फ़ाइल:
[defaults]
numeric = false # नाम रिज़ॉल्यूशन अक्षम करें
dns_cache = true # DNS लुकअप कैश करें (अक्षम करने के लिए false सेट करें)
theme = "auto" # रंग थीम: auto, dark, light, mono
[tui]
remember_state = false # सत्रों के बीच दृश्य विकल्प याद रखें
जब remember_state = true, tui निम्नलिखित को सहेज और पुनर्स्थापित करेगा:
स्थिति $XDG_STATE_HOME/snitch/tui.json में सहेजी जाती है (डिफ़ॉल्ट ~/.local/state/snitch/tui.json)।
CLI फ़्लैग हमेशा सहेजी गई स्थिति पर प्राथमिकता लेते हैं।
SNITCH_THEME=dark # डिफ़ॉल्ट थीम सेट करें
SNITCH_RESOLVE=0 # DNS रिज़ॉल्यूशन अक्षम करें
SNITCH_DNS_CACHE=0 # DNS कैशिंग अक्षम करें
SNITCH_NO_COLOR=1 # रंग आउटपुट अक्षम करें
SNITCH_CONFIG=/path/to # कस्टम कॉन्फ़िग फ़ाइल पथ
/proc/net/* से पढ़ता है, पूर्ण प्रक्रिया जानकारी के लिए रूट या CAP_NET_ADMIN आवश्यकmono