मैक पर धीमा इंटरनेट कनेक्शन कैसे अनुकरण करें


145

परीक्षण और सिमुलेशन के लिए मैक पर इंटरनेट कनेक्शन धीमा करने के लिए एक अच्छा सॉफ्टवेयर समाधान क्या है?

मेरी प्राथमिक आवश्यकता iPhone / iOS सिम्युलेटर में कोड का परीक्षण करते समय है, इसलिए विशिष्ट अनुप्रयोगों या प्रक्रियाओं के लिए कनेक्शन धीमा करना बहुत अच्छा होगा।


मैंने स्वीकार किए गए उत्तर (नेटवर्क लिंक कंडीशनर) को बफरब्लॉट के मुद्दों के लिए एक उत्कृष्ट त्वरित-और-गंदे समाधान के रूप में पाया।
रॉबर्ट टुपेलो-श्नेक

जवाबों:


168

Apple ने परीक्षण उद्देश्यों के लिए आपके लिए मैक पर नेटवर्क कनेक्शन को धीमा करने के लिए एक बहुत ही उपयोगी आधिकारिक उपकरण बनाया है।

नेटवर्क लिंक कंडीशनर वरीयता (शेर और बाद में ओएस के लिए) Xcode के भीतर से एक मुफ्त डाउनलोड है। इसके अतिरिक्त, iOS के पास Xcode और iOS 6 या बाद के संस्करण से समान कार्य सुलभ है।

यहां छवि विवरण दर्ज करें

4.3.2 संस्करण से पहले Xcode के पुराने संस्करणों ने इस उपकरण की एक प्रति एम्बेड की है। अब, आप इसे iOS सिमुलेटर और डेवलपर प्रलेखन के समान तरीके से सीधे डाउनलोड करने के लिए Xcode का उपयोग करते हैं ।

एक केबल मॉडेम में 400ms देरी के साथ लॉसी एज नेटवर्क से प्रोफाइल में 11 निर्मित हैं। यदि आपको अन्य सीमाओं की आवश्यकता है, तो आप अपनी स्वयं की सेटिंग्स के साथ कस्टम प्रोफाइल बना सकते हैं या आप ipfwखुद को क्रेग होकेनबेरी के लेख की धीमी सवारी के रूप में भी उपयोग कर सकते हैं , इसे आसान बना सकते हैं यह माइक श्राग द्वारा स्पीड लिमिट पैनल का भी उल्लेख करता है जो एक छोटा डाउनलोड है Xcode की तुलना में, लेकिन Apple के उपकरण की तुलना में कम विकल्प हैं।

यह पूरे नेटवर्क स्टैक को धीमा कर देता है, इसलिए आप वर्चुअल मशीन में शेर को स्थापित करने और वीएम को एक थ्रॉटल स्टैक के साथ सेट करने जैसी चीजों के बिना प्रति एप्लिकेशन आधार पर थ्रॉटल नहीं कर सकते।


1
: OI में भी Xcode है और इस बारे में पता नहीं था
Alexander

21
परीक्षण करने के बाद इसे बंद करना सुनिश्चित करें!
जेसन सलाज

1
स्पष्टता: आपको वास्तव में Apple से हार्डवेयर IO उपकरण डाउनलोड करने होंगे। सेब नेटवर्क लिंक कंडीशनर टूल इंस्टॉल करना
daviesgeek

2
नीचे उल्लिखित स्पीड लिमिट उत्कृष्ट रूप से काम करती है । मैं इसे अब लोकलहोस्ट के लिए उपयोग कर रहा हूँ: MAMP पर 8888।
अरीटे म्यूर्ग

1
यह भी ध्यान दें कि डिवाइस पर परीक्षण के लिए iOS 6 में नेटवर्क लिंक कंडीशनर है। इसे "नेटवर्क लिंक कंडीशनर" अनुभाग के तहत सेटिंग्स-> डेवलपर के माध्यम से एक्सेस करें।
माइक वेलर

35

OS X 10.9 और पहले प्रदान करते हैं ipfwऔर यह आपको कस्टम फ़ायरवॉल नियमों को परिभाषित करने की अनुमति देता है। सीमित बैंडविड्थ का उपयोग करके एक पाइप बनाएं ipfwऔर आप अपने परीक्षण और सिमुलेशन चला सकते हैं।

  1. 500KBytes / s तक सीमित एक पाइप "1" बनाएं

    sudo ipfw pipe 1 config bw 500KByte/s
    
  2. पोर्ट "80" के माध्यम से पोर्ट 80 के सभी नेटवर्क ट्रैफ़िक का उपयोग करके मार्गदर्शन करें

    sudo ipfw add 1 pipe 1 src-port 80
    
  3. जब आपको पाइप की आवश्यकता नहीं होती है, तो इसे पोर्ट का उपयोग करके हटा दें

    sudo ipfw delete 1
    

अन्य

  • यदि आप उच्च यातायात बाधाओं को सेट करना चाहते हैं, तो आप उपयोग कर सकते हैं MByte/s
  • पोर्ट 80: अनएन्क्रिप्टेड httpट्रैफ़िक के लिए मानक पोर्ट । इस पोर्ट का इस्तेमाल ज्यादातर ब्राउजिंग और डाउनलोडिंग के लिए किया जाता है। आपको ज्यादातर मामलों में इसके साथ ठीक होना चाहिए।
  • पोर्ट 443: SSL एन्क्रिप्टेड httpsट्रैफ़िक के लिए मानक पोर्ट ।

10
दुर्भाग्यवश, OS X 10.10 Yosemite
igo

- आप पर ओएस एक्स 10.10+ बैंडविड्थ को pfctl उपयोग कर सकते हैं spin.atomicobject.com/2016/01/05/...
यूजीन एक

मैंने नीचे एक उत्तर जोड़ा है जो दिखाता है pfctlऔर dnctlउदाहरण का उपयोग करता है।
ubershmekel

31

गति सीमा जानबूझकर और चुनिंदा विशिष्ट बंदरगाहों और डोमेन को धीमा करने के लिए एक सिस्टम वरीयता फलक है।


मुझे यह पसंद है कि यह स्वीकृत उत्तर में वर्णित XCode टूल की तुलना में अधिक दानेदार है। सलाह के लिये धन्यवाद।
शालिंजर

1
वास्तव में, मैंने पाया कि "लोकलहोस्ट" ने काम नहीं किया, आईपी पते पर स्विच करने पर 127.0.0.1 ने चाल चली।
OlliM

4
SpeedLimit OS X 10.10 के रूप में विघटनकारी है क्योंकि फ़ायरवॉल उपकरण का उपयोग करता है इसे हटा दिया गया था: github.com/mschrag/speedlimit/issues/13
Robin

स्पीड लिमिट का लिंक टूट गया है।
जेफ होल्ट

स्पीड लिमिट का स्रोत अब गैर-रखरखाव योग्य प्रतीत होता है, लेकिन यहां उपलब्ध है और यहाँ पर फोर्क दिखने की तारीख तक अधिक है, हालांकि मैंने इसे सभी पर परीक्षण किया है
ब्रैड पार्क्स

11

स्वीकृत उत्तर में जोड़ने के लिए: ऐसा लगता है कि आपको XCode की आवश्यकता नहीं होनी चाहिए, बस Apple डेवलपर वेबसाइट पर एक खाता (यदि आपके पास पहले से नहीं है तो 2GB XCode पैकेज डाउनलोड करने की तुलना में सरल)।

Https://developer.apple.com/downloads पर जाएं और "नेटवर्क लिंक कंडीशनर" या "XCode के लिए अतिरिक्त उपकरण" खोजें, बाद वाला पैकेज उस नाम का है जो इसमें पाया जाता है।

Xcode 8.x के माध्यम से इसे डाउनलोड करने के लिए:

  • Xcode मेनू पर क्लिक करें
  • डेवलपर टूल खोलें> अधिक डेवलपर टूल पर जाएं ...
  • यह developer.apple.com पर एक पेज खोलेगा (नोट: आपको पहले लॉग इन करना पड़ सकता है)
  • Xcode 8.x के अतिरिक्त उपकरणों के बगल में '+' चिह्न पर क्लिक करें
  • डाउनलोड यूआरएल पर क्लिक करें

2
अलग पूछने के लिए आपका स्वागत है! किसी और के उत्तर को संपादित करने के लिए उत्तर लिखने के बजाय, केवल उस उत्तर बटन को संपादित करें या सुधारें , जिसे आप सुधारना चाहते हैं
GRG

9

यदि आपको केवल वेब विकास के लिए थ्रॉटलिंग की आवश्यकता है, तो मैं पूरे दिल से चार्ल्स की सिफारिश कर सकता हूं । यह वैसे भी HTTP एप्लिकेशन डिबगिंग के लिए एक उत्कृष्ट उपकरण है, और इसकी कई विशेषताओं के बीच, इसे एक थ्रॉटल विकल्प मिला है। सॉफ्टवेयर सस्ता नहीं है, लेकिन यह एक उत्कृष्ट काम करता है।


मुझे वास्तव में iPhone सिम्युलेटर के लिए इसकी आवश्यकता है .. और एक सर्वर से कनेक्शन का परीक्षण
aeuryzm

5

मैक ओएस एक्स 10.10+ उपयोगकर्ताओं का उपयोग करने की जरूरत है dnctlऔर pfctlलेकिन प्रलेखित उपयोग के उदाहरण खोजने के लिए आसान नहीं है।

# Configure `pfctl` to use `customRule`. 
(cat /etc/pf.conf && echo "dummynet-anchor \"customRule\"" && echo "anchor \"customRule\"") | sudo pfctl -f -

# Define `customRule` to pipe traffic to `pipe 1`.
# Note this is the actual port definition, not a textual comment
echo "dummynet in quick proto tcp from any to any port 443 pipe 1" | sudo pfctl -a customRule -f -

# Define what `pipe 1` should do to traffic
sudo dnctl pipe 1 config delay 10000
sudo dnctl pipe 1 config bw 10Kbit/s

# DO NOT FORGET to undo these when you're done
sudo dnctl -q flush
sudo pfctl -f /etc/pf.conf

यदि आप बाहर जाना चाहते हैं और सब कुछ आकार का उपयोग कर सकते हैं:

echo "dummynet in quick proto tcp from any to any pipe 1" | sudo pfctl -a customRule -f -

मेरा मानना ​​है कि यह लोकलहोस्ट पाइप को भी प्रभावित करता है, जो मेरे बनाम-कोड डिबगिंग को धीमा कर देता है, इसलिए उस पर ध्यान दें।


4

आप अपने नेटवर्क को धीमा करने के लिए ipfw पाइपिंग का भी उपयोग कर सकते हैं।

800KBit / sec में थ्रूपुट को सीमित करने के लिए सबसे पहले एक वर्चुअल "पाइप" सेटअप करें:

ipfw pipe 1 config bw 800Kbit

फिर आप उस पाइप (पाइप 1) के माध्यम से ट्रैफ़िक को पुश करने के लिए नियम सेट कर सकते हैं। (पोर्ट 6881-6890 बिटटोरेंट ट्रैफिक होने के कारण)

ipfw add 10 pipe 1 tcp from any to me 6881-6890
ipfw add 11 pipe 1 tcp from any 6881-6890 to me

एक विशिष्ट आईपी पते से 10Kbit / sec तक ट्रैफ़िक को सीमित करने का एक और उदाहरण यहां दिया गया है:

ipfw pipe 2 config bw 10Kbit
ipfw add 15 pipe 2 ip from me to 64.81.84.114

(स्रोत)


OSX 10.10 में बेनफेयर को हटा दिया गया
बेन व्हीलर

-1

XCode 10.2 के लिए, अधिक डेवलपर टूल में - XCode 10.2 के लिए अतिरिक्त टूल, आपको नेटवर्क लिंक कंडीशनर मिलेगा।


यह समाधान पहले से उपलब्ध कराए गए उत्तरों से अलग कैसे है?
निमेश नीमा

मैंने हार्डवेयर टूल्स को गलती से डाउनलोड कर लिया है, भले ही यह पुराने XCode संस्करण के लिए था, मुझे लगा कि यह काम करेगा क्योंकि मैंने इसे नए संस्करण के लिए नहीं देखा है। कहीं नहीं लिखा है कि नए XCode 10.2 के लिए मुझे नवीनतम नेटवर्क लिंक कंडीशनर प्राप्त करने के लिए अतिरिक्त उपकरण चुनना होगा। यहाँ उल्लेख किया गया है ताकि अन्य डेवलपर्स अपना समय बर्बाद न करें। यदि आप इसे दूसरों से अलग नहीं पाते हैं, तो इसे पंद्रह बार घटाएं। मैंने ऐसा किया तो दूसरे को इससे मदद मिलती है न्यूली
एक्सकोड

यदि आप अपने उत्तर को संपादित कर सकते हैं और इस महत्वपूर्ण जानकारी को शामिल कर सकते हैं तो यह वास्तव में किसी को भी इस उत्तर को पढ़ने में मदद करेगा । इसके अलावा, कई उपयोगकर्ताओं को स्पष्ट रूप से लिखित और कदम से कदम निर्देश मिल वास्तव में मूल्यवान है।
निमेश नीमा

@NimeshNeema मुझे लगता है कि सभी डेवलपर समुदाय में जानते हैं कि आप इस टूल को मोर डेवलपर टूल के माध्यम से पा सकते हैं। मैंने चरण लिखे हैं। मुझे नहीं लगता कि मुझे और अधिक विस्तार से उल्लेख करना चाहिए।
किरण जसवंती

यह पूरी तरह से ठीक है और आप पर निर्भर करता है कि आप उत्तर लिखना कैसे चुनते हैं। उल्लेखित आमतौर पर एक नियम के बजाय आमतौर पर अभ्यास किया जाता है :)
निमेश नीमा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.