एक विशिष्ट इंटरफ़ेस पर आउटगोइंग बैंडविड्थ को सीमित करें


32

मैं एक इंटरफ़ेस के लिए आउटगोइंग बैंडविड्थ को सीमित करने का सबसे आसान तरीका जानना चाहूंगा। मैं आउटगोइंग पोर्ट स्पीड को कैप करना चाहता हूं ताकि व्यस्त घंटों के दौरान मेरे सर्वर के बीच फाइल ट्रांसफर विफल न हो।

सबसे आसान उपाय क्या है? मुझे पता है कि मैं उपयोग कर सकता हूं iptablesलेकिन मैं एक साधारण इंस्टॉलेशन / कॉन्फ़िगरेशन की तलाश कर रहा हूं।


HTB बढ़िया काम करता है। बहुत लचीली दर सीमित। sourceforge.net/projects/htbinit

जवाबों:


37

ethtool

आप NIC पोर्ट का उपयोग करके कुल गति बदल सकते हैं ethtool

$ sudo ethtool -s eth0 speed 10

उदाहरण के लिए, यह पोर्ट को 10MB पर सेट करेगा।

wondershaper

आप इसे करने के लिए टूल wondershaperका भी उपयोग कर सकते हैं । नोट: गति प्रति सेकंड किलोबाइट में होनी चाहिए।

$ sudo wondershaper eth1 downspeed upspeed

उदाहरण के लिए:

$ sudo wondershaper eth0 10000 280

मिलने

एक तीसरा विकल्प ट्रिकल है । ट्रिकल का उपयोग उपयोगकर्ताओं द्वारा प्रति प्रोग्राम या एक डीमन के रूप में किया जा सकता है जो एनआईसी को पूरी तरह से थ्रॉटल करता है।

उपयोगकर्ता मोड - ट्रिकल मैन पेज

$ sudo trickle -d 20 -u 20 wget http://www.google.com/bigfile

क्या इसके लिए अप और डाउन ट्रैफ़िक दोनों के लिए 20K / s को कम किया wgetजाएगा, बाकी सब कुछ सीमित नहीं होगा।

डेमन मोड - छल किया हुआ मैन पेज

डेमन मोड में, trickledबैंडविड्थ के एक निश्चित सीमा तक कार्यक्रमों के एक समूह को सीमित कर सकता है। डेमॉन शुरू करने के लिए, चालित कमांड चलाएं:

$ sudo trickled -d 20 -u 20

pyshaper

एक 4 वाँ विकल्प pyshaper है । यह उन विकल्पों में से एक अनूठा विकल्प है जिसमें इसमें GUI शामिल है और यह समय के साथ बैंडविड्थ की निगरानी और सेट करता है। आप अधिक जानकारी के लिए pyshaper मैन पेज देख सकते हैं ।

                                            Pyshaper गुई

संदर्भ


Cgroups के माध्यम से मुसीबत अनुप्रयोगों के बैंडविड्थ उपयोग को सीमित करना भी संभवतः सार्थक होगा यदि उनका कर्नेल इसका समर्थन करता है।
ब्राचली

wondershaper काम नहीं कर रहा है मैं नहीं जानता कि क्यों (यहां तक ​​कि wondershaper eth0 1000 1000` में कोई इंटरनेट बैंडविड्थ नहीं है जैसा कि `sudo पेचीदा -d 20 -u 20`।) मुझे एक नेटवर्क इंटरफ़ेस को सीमित करने की आवश्यकता है। बैंडविड्थ न केवल विशिष्ट अनुप्रयोग। वह कैसे कर सकता है?
आरा

ट्रिकल मेरे लिए काम नहीं किया, लेकिन wondershaper चाल किया!
peschü

1

Wondershaper अंतिम बार 2002 में संपादित किया गया था, लेकिन यह अभी भी फेडोरा 21 पर आज भी काम करता है। लेकिन ध्यान दें, तर्क के रूप में केवल कुछ ही विकल्प उपलब्ध हैं और आप कमांड लाइन पर अपलोड / डाउनलोड की गति यहां निर्दिष्ट नहीं कर सकते हैं- कम से कम, डाउनलोड संस्करण 1.1a में नहीं, अप्रैल 2002 के 16 वें जारी किए गए। आपको संपादित करना होगा। फ़ाइल, और यह एक शेल स्क्रिप्ट है। उन लोगों के लिए मुश्किल नहीं जो थोड़ा खोल जानते हैं।

उपयोग है:

wondershaper (यह एक फ़ाइल में मानों के अनुसार आपकी बैंडविड्थ सेट करेगा)

wondershaper status
wondershaper stop

लिंक लाइव होने के दौरान आप इसका उपयोग कर सकते हैं, जो अच्छा है।


1

एक अन्य विकल्प ' iproute2 ' है जो एक परिपक्व और व्यापक रूप से उपलब्ध यातायात मार्ग / आकार देने वाला उपकरण प्रतीत होता है। मैंने इसे RPM के रूप में पाया (शायद कई अन्य पैकेज भी, मैंने नहीं देखा)। इस लेखन के रूप में, सबसे हाल का संस्करण 4.4.0 था, जिसे 25 जनवरी 2016 को बनाया गया था।

विन्यास वाक्य रचना के ऊपर देख रहे हैं, यह अपेक्षाकृत आसान हो गया लगता है (हालांकि सरल रूप में के रूप में नहीं ifconfigया route।)


6
आपका उत्तर यह नहीं बताता है कि आउटगोइंग बैंडविड्थ को सीमित करने के लिए कोई वास्तव में iproute2 का उपयोग कैसे करेगा। क्या आप कृपया विस्तार से बता सकते हैं?
माइकल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.