क्या लिनक्स में एनआईसी पर बैंडविड्थ को बाधित करने का एक तरीका है? मैं मनमाने ढंग से धीमे कनेक्शन का अनुकरण करने में सक्षम होना चाहता हूं।
क्या लिनक्स में एनआईसी पर बैंडविड्थ को बाधित करने का एक तरीका है? मैं मनमाने ढंग से धीमे कनेक्शन का अनुकरण करने में सक्षम होना चाहता हूं।
जवाबों:
Netem कर्नेल मॉड्यूल, iproute द्वारा नियंत्रित।
आपको नेटेम को कर्नेल के साथ संकलित करने की आवश्यकता है:
Networking -->
Networking Options -->
QoS and/or fair queuing -->
Network emulator
एक बार नेटम मॉड्यूल लोड होने के बाद, iproute का tc आपको चीजों की अनुमति देता है:
tc qdisc add dev tap0 root netem delay 50ms loss 50%
(50% पैकेट का नुकसान, 50 एमएस की अतिरिक्त देरी)
sch_netem
। आम तौर पर इसे मैन्युअल रूप से लोड करने की आवश्यकता नहीं होती है, इसे आवश्यकतानुसार लोड किया जाएगा।
rate
विकल्प: tc qdisc add dev lo root handle 1:0 netem delay 10ms rate 1mbit limit 1000
। ध्यान दें कि कुछ उपकरणों के लिए जैसे कि lo
(लोकलहोस्ट एक्सेस करने के लिए), आपको कतार की लंबाई भी निर्धारित करनी होगी ifconfig lo txqueuelen 1000
:। देखें serverfault.com/a/394949/76090
ग्राहक पक्ष, सही?
ट्रिकल को वह करना चाहिए जो आप चाहते हैं। यदि आप उबंटू (या डेबियन, मुझे लगता है) चला रहे हैं, तो आप इसे स्थापित कर सकते हैं sudo apt-get install trickle
, और फिर इसे चला सकते हैं। trickle -s -d 10 -u 10 firefox
(या तो, मैं इसे थोड़ी देर में इस्तेमाल नहीं किया है) फ़ायरफ़ॉक्स चलाएगा, इसके डाउनलोड और 10 किलोबाइट को सेकंड में अपलोड करने की गति को सीमित करेगा।
मुझे अपने बॉक्स को ubuntu में 'wondershaper' नामक उपकरण का उपयोग करके नेटवर्क पर उपलब्ध सभी बैंडविड्थ खाने से बचने का एक तरीका मिला। मुझे उम्मीद है कि यह अन्य लिनक्स डिस्ट्रोस में भी मौजूद है। मैं बैंडविड्थ को सीमित कर सकता हूं जो मेरा लिनक्स होम पीसी निम्नलिखित कमांड का उपयोग करके उपभोग कर सकता है।
sudo wondershaper eth0 1000 200
यह डाउनलोड सीमा को 1000 किलोबाइट और 200 किलोबाइट तक बढ़ा देता है। अधिक जानकारी / विकल्पों के लिए wondershaper के मैन पेज देखें।
wondershaper
डेबियन में पैकेज है।
sudo wondershaper clear eth0
NIST एक नेटवर्क सिम्युलेटर बनाता है जिसे NistNet कहा जाता है।
http://snad.ncsl.nist.gov/nistnet/ (लिंक मृत प्रतीत होता है)
http://cs.ecs.baylor.edu/~donahoo/tools/nistnet/
NistNet आपको एक राउटर बनाने की सुविधा देता है जो आपके चयन के एक कॉम्स लिंक का अनुकरण करता है।
सरलतम ऑपरेशन के लिए आपके पास एक बॉक्स पर दो एनआईसी के बीच दो नेटवर्क हैं।
उदाहरण के लिए, मेरे पास एक एप्लिकेशन था जिसे सैटेलाइट लिंक पर काम करना था।
डेटा BIG विलंबता के साथ 2Mbps लिंक पर जा सकता है। नियंत्रण को उसी विलंबता के साथ 128kbps लिंक पर जाना था।
NistNet ने इसे 128kbps पर काम करने में मदद की।
NistNet का उपयोग करके मैं न केवल बैंडविड्थ, बल्कि विलंबता का भी अनुकरण कर सकता हूं, और यह आपके लिए पैकेट भी छोड़ देगा, एक व्यस्त या अविश्वसनीय लिंक का अनुकरण करेगा।
यदि आप एक घृणित कनेक्शन का अनुकरण करना चाहते हैं, तो केवल बैंडविड्थ को बाधित न करें, विलंबता को भी हवा दें।
या तो टुकड़े टुकड़े करने के लिए मत भूलना। आप phony लिंक पर अच्छा छोटा MTU सेट कर सकते हैं।
IIRC पैकेट पैकेट जोड़ने से आपको पता चल जाएगा कि क्या आप ऑर्डर पैकेट से सामना कर सकते हैं।
मैंने व्यक्तिगत रूप से इसके लिए अतीत में wondershaper का उपयोग किया है , हालांकि यह एक विपरीत उपयोग के मामले के लिए लिखा गया था - आपके एडीएसएल कनेक्शन का सबसे अधिक उपयोग कर रहा है।
हालांकि मुझे यहाँ उल्लिखित अन्य लोगों की कोशिश करनी होगी।
आप धीमी लिंक पर एक वेब पेज का परीक्षण करने के लिए बैंडविड्थ को सीमित करने के लिए स्थानीय रूप से स्थापित स्क्वीड प्रॉक्सी का उपयोग कर सकते हैं :
अपने वितरण से स्क्वीड प्रॉक्सी स्थापित करें - मेरे फेडोरा पर यह उतना आसान था जितना कि yum install squid
।
निम्नलिखित को इसमें जोड़ें /etc/squid/squid.conf
:
delay_pools 1
delay_class 1 1
delay_access 1 allow all
delay_parameters 1 16000/16000
यह बैंडविड्थ को लगभग 128 kbps (16000 Bps) तक सीमित कर देगा।
स्क्वीड शुरू करें :/etc/init.d/squid start
प्रॉक्सी सर्वर localhost
पोर्ट का उपयोग करने के लिए अपने ब्राउज़र को कॉन्फ़िगर करें 3128
।
किसी ने अभी तक ip_relay का उल्लेख नहीं किया है , जिसका नाम डेबियन रिपॉजिटरी में "iprelay" है। यह टीसीपी प्रॉक्सी के रूप में काम करता है, बल्कि कॉल करने का तरीका ट्रिकल को इंटरसेप्ट करता है, और किसी भी एप्लिकेशन के साथ काम करेगा जो प्रॉक्सी का उपयोग कर सकता है (उदाहरण के लिए वेब ब्राउज़र) या उपयोगकर्ता द्वारा परिभाषित डेस्टिनेशन पोर्ट (टेलनेट, ssh, ftp, कर्ल) को स्वीकार कर सकता है। वगैरह )।
इसे स्थापित करना थोड़ा मुश्किल है, लेकिन अक्सर उन परिस्थितियों में काम करता है जहां मुश्किल नहीं होगी।