
स्थानीय नेटवर्क पर डिवाइसों की बैंडविड्थ की निगरानी, विश्लेषण और सीमित करने वाला टूल, बिना प्रशासनिक पहुंच के

यह प्रोजेक्ट bitbrute/evillimiter का एक अनुरक्षित फोर्क है। अपस्ट्रीम रिपॉजिटरी अब अनुरक्षित नहीं है, इसलिए यह फोर्क विकास जारी रखता है - बग फिक्स, नई सुविधाएँ और संगतता अपडेट। नीचे फोर्क-विशिष्ट परिवर्तन देखें।
आपके स्थानीय नेटवर्क पर डिवाइसों की बैंडविड्थ (अपलोड/डाउनलोड) की निगरानी, विश्लेषण और सीमित करने के लिए एक उपकरण, बिना भौतिक या प्रशासनिक पहुँच के।
evillimiter नेटवर्क पर होस्टों की बैंडविड्थ को थ्रॉटल करने के लिए ARP स्पूफिंग और ट्रैफिक शेपिंग का उपयोग करता है। IPv6-सक्षम नेटवर्क पर, NDP स्पूफिंग का उपयोग ARP स्पूफिंग के साथ किया जाता है ताकि होस्ट के IPv6 ट्रैफिक को भी काटा जा सके, जो अन्यथा केवल-IPv4 सीमा/ब्लॉक को बायपास कर देगा।
Windows-संगत संस्करण खोज रहे हैं?
ओपन-सोर्स विकल्प Windows के लिए EvilLimiter देखें।
इसे केवल उस नेटवर्क पर चलाएँ जिसके आप मालिक हैं या जिसके परीक्षण की लिखित अनुमति आपके पास है। ARP और NDP स्पूफिंग डिज़ाइन द्वारा अन्य लोगों के ट्रैफिक को बाधित करते हैं, और इसे उस नेटवर्क पर करना जिसे आप नियंत्रित नहीं करते, अधिकांश स्थानों पर अवैध है।
संभवतः गायब python पैकेज स्थापना प्रक्रिया के दौरान स्थापित किए जाएँगे।
evillimiter स्टार्टअप पर PATH के माध्यम से tc, iptables और sysctl का पता लगाता है और यदि कोई गायब है तो स्पष्ट रूप से त्रुटि दिखाता है। यह विशेष रूप से iptables बाइनरी को शेल आउट करता है - उन डिस्ट्रोस पर जहाँ iptables एक iptables-nft संगतता शिम है, यह आम तौर पर काम करता है, लेकिन एक फ़ायरवॉल जो पूरी तरह से मूल nft नियमों के माध्यम से प्रबंधित होता है और जिसमें कोई iptables शिम स्थापित नहीं है, वह ऐसी चीज़ नहीं है जिससे यह उपकरण संवाद करता है।
git clone https://github.com/DavidsonRafaelK/evillimiter.git
cd evillimiter
python3 -m venv .venv
source .venv/bin/activate
pip install .
इसे sudo के साथ चलाएँ (रॉ सॉकेट, iptables/tc को रूट चाहिए) - रूट की आवश्यकता चलाने के लिए है, स्थापना के लिए नहीं:
sudo .venv/bin/evillimiter
नोट: sudo python3 setup.py install (पुराने निर्देश) आधुनिक setuptools में अप्रचलित है और अक्सर ModuleNotFoundError: No module named 'setuptools' के साथ पूरी तरह विफल हो जाता है - sudo सिस्टम Python चलाता है, जिसमें आम तौर पर setuptools स्थापित नहीं होता, venv के अपने Python के विपरीत जिसे pip आपके लिए प्रबंधित करता है। उन डिस्ट्रोस पर जो PEP 668 लागू करते हैं (Arch, Debian 12+, ...), venv के बाहर स्थापना इसी कारण से पूरी तरह अवरुद्ध है।
वैकल्पिक रूप से, आप रिलीज़ पेज से वांछित संस्करण डाउनलोड कर सकते हैं।
उपकरण चलाने के लिए evillimiter या python3 bin/evillimiter टाइप करें।
evillimiter आवश्यक जानकारी (नेटवर्क इंटरफ़ेस, नेटमास्क, गेटवे पता, ...) को अपने आप, स्वचालित रूप से हल करने का प्रयास करेगा।
उपरोक्त कोई भी फ़्लैग (-f/--flush को छोड़कर, जो एक बार की क्रिया है, स्थायी प्राथमिकता नहीं) को ~/.config/evillimiter/config.ini (या $XDG_CONFIG_HOME/evillimiter/config.ini) पर एक वैकल्पिक ini फ़ाइल में डिफ़ॉल्ट दिया जा सकता है। एक कमांड-लाइन फ़्लैग हमेशा कॉन्फ़िग फ़ाइल को ओवरराइड करता है।
[general]
interface = wlan0
colorless = true
auto_scan = true
log_file = /var/log/evillimiter.log
[watch]
interval = 30
range = 192.168.1.1-192.168.1.50
[watch] उन प्रारंभिक मानों को सेट करता है जो सामान्यतः रनटाइम पर watch set interval/watch set range के माध्यम से सेट किए जाते हैं (नीचे देखें), ताकि उन्हें हर सत्र में फिर से दर्ज न करना पड़े।
auto_scan (ऑप्ट-इन, डिफ़ॉल्ट रूप से बंद) स्टार्टअप के तुरंत बाद scan फिर hosts स्वचालित रूप से चलाता है, ताकि आपको उन्हें हर सत्र में टाइप न करना पड़े।
evillimiter कमांडtc/iptables नियम केवल-IPv4 हैं।watch (MAC द्वारा मिलान करता है) उनका अनुसरण नहीं कर सकता; पुराना प्रतिबंध एक ऐसे MAC/IP से बंधा रहता है जिसे अब कोई उपयोग नहीं करता। ऐसे पतों को hosts तालिका में (random) के रूप में चिह्नित किया जाता है (उनका स्थानीय रूप से प्रशासित बिट सेट होता है) ताकि आप एक ऐसे डिवाइस को पहचान सकें जो नई पहचान के तहत फिर से प्रकट होने की संभावना रखता है।नीचे सब कुछ इस फोर्क में, अपस्ट्रीम के अंतिम रिलीज़ (v1.5.0) के ऊपर जोड़ा गया था:
limit/block केवल IPv4 के बजाय होस्ट के IPv6 ट्रैफिक को भी कवर करें~/.config/evillimiter/config.ini)-l/--log-file--version फ़्लैगblock अब INPUT/OUTPUT चेन (इस मशीन से/तक ट्रैफिक) को भी ब्लॉक करता है, केवल FORWARD नहींwatch अब प्रत्येक देखे गए होस्ट की ऑनलाइन/ऑफ़लाइन स्थिति दिखाता है और limit/block पर होस्टों को स्वचालित रूप से देखता हैपूर्ण संस्करण इतिहास के लिए CHANGELOG देखें, जिसमें अपस्ट्रीम का भी शामिल है।
बग रिपोर्ट करना, सुविधा का अनुरोध करना, या पुल अनुरोध सबमिट करना चाहते हैं? मुद्दे दर्ज करने और PR खोलने के नियमों के लिए CONTRIBUTING.md देखें। कृपया आचार संहिता भी पढ़ें।
Evil Limiter - मूल रूप से bitbrute द्वारा निर्मित, अब DavidsonRafaelK द्वारा अनुरक्षित - "जैसा है" और "सभी दोषों के साथ" प्रदान किया जाता है। न तो मूल लेखक और न ही वर्तमान अनुरक्षक इस सॉफ़्टवेयर की सुरक्षा, उपयुक्तता, वायरस की कमी, अशुद्धियों, टाइपोग्राफ़िकल त्रुटियों, या अन्य हानिकारक घटकों के बारे में किसी भी प्रकार का कोई प्रतिनिधित्व या वारंटी करता है। किसी भी सॉफ़्टवेयर के उपयोग में अंतर्निहित खतरे हैं, और यह निर्धारित करने के लिए आप पूरी तरह ज़िम्मेदार हैं कि Evil Limiter आपके उपकरण और आपके उपकरण पर स्थापित अन्य सॉफ़्टवेयर के साथ संगत है या नहीं। आप अपने उपकरण की सुरक्षा और अपने डेटा के बैकअप के लिए भी पूरी तरह ज़िम्मेदार हैं, और इस सॉफ़्टवेयर के उपयोग, संशोधन या वितरण के संबंध में आपको होने वाली किसी भी क्षति के लिए कोई भी पक्ष उत्तरदायी नहीं होगा।
कॉपीराइट (c) 2019-2026 bitbrute द्वारा, कॉपीराइट (c) 2026 DavidsonRafaelK द्वारा फोर्क-विशिष्ट परिवर्तनों के लिए। कुछ अधिकार सुरक्षित।
Evil Limiter LICENSE फ़ाइल में बताए अनुसार MIT लाइसेंस के तहत लाइसेंस प्राप्त है।
| तर्क | स्पष्टीकरण |
|---|
-h | सभी कमांड-लाइन तर्कों को सूचीबद्ध करने वाला सहायता संदेश प्रदर्शित करता है |
-i [इंटरफ़ेस नाम] | नेटवर्क इंटरफ़ेस निर्दिष्ट करता है (यदि निर्दिष्ट नहीं है तो हल किया जाता है) |
-g [गेटवे IP पता] | गेटवे IP पता निर्दिष्ट करता है (यदि निर्दिष्ट नहीं है तो हल किया जाता है) |
-m [गेटवे MAC पता] | गेटवे MAC पता निर्दिष्ट करता है (यदि निर्दिष्ट नहीं है तो हल किया जाता है) |
-n [नेटमास्क पता] | नेटमास्क निर्दिष्ट करता है (यदि निर्दिष्ट नहीं है तो हल किया जाता है) |
-f | वर्तमान iptables और tc कॉन्फ़िगरेशन को फ्लश करता है। सुनिश्चित करता है कि पैकेट सही ढंग से संभाले जाएँ। |
--colorless | रंगीन आउटपुट अक्षम करता है |
-l [फ़ाइल पथ], --log-file [फ़ाइल पथ] | प्रत्येक ok/error संदेश को इस फ़ाइल में भी जोड़ता है (सादा पाठ, कोई रंग कोड नहीं)। |
--version | स्थापित संस्करण प्रिंट करता है और बाहर निकलता है। |
| कमांड | स्पष्टीकरण |
|---|
scan (--range [IP रेंज]) (--intensity [1,2,3]) | ऑनलाइन होस्टों के लिए आपके नेटवर्क को स्कैन करता है। शुरू करने के बाद करने वाली पहली चीज़ों में से एक।--range आपको एक कस्टम IP रेंज निर्दिष्ट करने देता है।--intensity गति को गहनता के साथ बदलता है: 1 त्वरित, 2 सामान्य (डिफ़ॉल्ट), 3 गहन (अधिक पुनः प्रयास/लंबा टाइमआउट, हानिपूर्ण नेटवर्क पर उपयोगी)। बदले जाने तक स्थायी - watch के पृष्ठभूमि पुनः-कनेक्शन स्कैन पर भी लागू होता है।उदाहरण के लिए: scan --range 192.168.178.1-192.168.178.40 या पूरे सबनेट को स्कैन करने के लिए केवल scan। |
hosts (--force) | पहले स्कैन किए गए सभी होस्टों/डिवाइसों और बुनियादी जानकारी को प्रदर्शित करता है। इंटरैक्शन के लिए आवश्यक प्रत्येक होस्ट के लिए ID दिखाता है।--force तालिका को दिखाने के लिए बाध्य करता है, भले ही वह टर्मिनल में फिट न हो। |
limit [ID1,ID2,...] [दर] (--upload) (--download) | निर्दिष्ट ID से जुड़े होस्ट(ों) की बैंडविड्थ सीमित करता है। दर इंटरनेट गति निर्धारित करती है। होस्ट(ों) स्वचालित रूप से वॉचलिस्ट में जोड़े जाते हैं।--upload केवल आउटगोइंग ट्रैफिक सीमित करता है।--download केवल इनकमिंग ट्रैफिक सीमित करता है।मान्य दरें: bit, kbit, mbit, gbitदर up/down भी हो सकती है (जैसे 200kbit/1mbit) स्वतंत्र अपलोड/डाउनलोड दरों के लिए - केवल दोनों दिशाओं के साथ मान्य (कोई --upload/--download नहीं)।उदाहरण के लिए: limit 4,5,6 200kbit या limit all 1gbit या limit 4 200kbit/1mbit |
block [ID1,ID2,...] (--upload) (--download) | निर्दिष्ट ID से जुड़े होस्ट(ों) का इंटरनेट कनेक्शन ब्लॉक करता है। होस्ट(ों) स्वचालित रूप से वॉचलिस्ट में जोड़े जाते हैं।--upload केवल आउटगोइंग ट्रैफिक सीमित करता है --download केवल इनकमिंग ट्रैफिक सीमित करता है। |
netem [ID1,ID2,...] (--delay [ms]) (--loss [%]) (--clear) | होस्ट(ों) पर पैकेट विलंब/हानि का अनुकरण करता है - होस्ट को पहले से limit किया जाना आवश्यक है, क्योंकि यह मौजूदा दर-सीमा tc क्लास से जुड़ता है। उन दिशाओं से जुड़ता है जिनमें होस्ट सीमित है; कोई अलग दिशा फ़्लैग नहीं।--clear netem हटाता है जबकि दर सीमा को बनाए रखता है।उदाहरण के लिए: netem 4 --delay 200ms --loss 10% या netem 4 --clear |
free [ID1,ID2,...] | निर्दिष्ट ID से जुड़े होस्ट(ों) को अनलिमिट/अनब्लॉक करता है। सभी आगे के प्रतिबंध हटाता है। |
add [IP] (--mac [MAC]) | होस्ट सूची में कस्टम होस्ट जोड़ता है। MAC-पता स्वचालित रूप से हल किया जाएगा या मैन्युअल रूप से निर्दिष्ट किया जा सकता है। उदाहरण के लिए: add 192.168.178.24 या add 192.168.1.50 --mac 1c:fc:bc:2d:a6:37 |
monitor (--interval [समय ms में]) | हर खोजे गए होस्ट की बैंडविड्थ उपयोग की निगरानी करता है, केवल सीमित/ब्लॉक किए गए होस्टों की नहीं (वर्तमान उपयोग, कुल उपयोग की गई बैंडविड्थ, ...)।--interval वह अंतराल सेट करता है जिसके बाद बैंडविड्थ जानकारी मिलीसेकंड में ताज़ा होती है (डिफ़ॉल्ट 500ms)।उदाहरण के लिए: monitor --interval 1000 |
analyze [ID1,ID2,...] (--duration [समय s में]) | बिना सीमित किए होस्ट(ों) के ट्रैफिक का विश्लेषण करता है ताकि यह निर्धारित किया जा सके कि कौन कितनी बैंडविड्थ का उपयोग करता है।--duration विश्लेषण की अवधि सेकंड में निर्दिष्ट करता है (डिफ़ॉल्ट 30s)।उदाहरण के लिए: analyze 2,3 --duration 120 |
watch | वर्तमान वॉच स्थिति दिखाता है, जिसमें अंतिम स्कैन स्वीप के अनुसार प्रत्येक देखे गए होस्ट की ऑनलाइन/ऑफ़लाइन स्थिति शामिल है। वॉच सुविधा पता लगाती है कि होस्ट अलग IP पते के साथ पुनः कनेक्ट होता है या नहीं। होस्ट limit या block पर स्वचालित रूप से वॉचलिस्ट में जोड़े जाते हैं। |
watch add [ID1,ID2,...] | निर्दिष्ट होस्ट(ों) को वॉचलिस्ट में जोड़ता है। उदाहरण के लिए: watch add 6,7,8 |
watch remove [ID1,ID2,...] | निर्दिष्ट होस्ट(ों) को वॉचलिस्ट से हटाता है। उदाहरण के लिए: watch remove all |
watch set [विशेषता] [मान] | वर्तमान वॉच सेटिंग्स बदलता है। निम्नलिखित विशेषताएँ बदली जा सकती हैं:range पुनः-कनेक्शन के लिए स्कैन करने के लिए IP रेंज है।interval प्रत्येक नेटवर्क स्कैन के बीच प्रतीक्षा करने का समय है (सेकंड में)।उदाहरण के लिए: watch set interval 120 |
clear | टर्मिनल विंडो साफ़ करता है। |
quit | एप्लिकेशन से बाहर निकलता है। |
?, help | इसके समान कमांड जानकारी प्रदर्शित करता है। |
limit/block चुपचाप सफलता का दावा करने के बजाय tc/iptables विफलताओं की रिपोर्ट करते हैंByteValue फ़ॉर्मेटिंग ठीक की गई~/.config/evillimiter/history), ↑/↓ से नेविगेट करने योग्यhosts तालिका केवल "Limited"/"Blocked" के बजाय सीमित/ब्लॉक किए गए होस्टों के लिए निर्धारित दर/दिशा दिखाती हैscan --intensity [1,2,3] (त्वरित/सामान्य/गहन)scan फिर hosts स्वचालित रूप से चलाने के लिए auto_scan कॉन्फ़िग विकल्पmonitor हर खोजे गए होस्ट को ट्रैक करता है, केवल सीमित/ब्लॉक किए गए होस्टों को नहींlimit एक कॉल में स्वतंत्र अपलोड/डाउनलोड सीमाओं के लिए up/down दरें स्वीकार करता है (जैसे 200kbit/1mbit)netem [ID] --delay [ms] --loss [%] (इसे हटाने के लिए --clear)