लिनक्स पर 65536 से अधिक टीसीपी कनेक्शन


11

मैं लिनक्स (RedHat5) बॉक्स से 65536 से अधिक आउटगोइंग टीसीपी कनेक्शन को सेटअप करने की कोशिश कर रहा हूं।

मैंने पहले से ही आउटगोइंग और एक्सेप्टिंग बॉक्स दोनों को पर्याप्त फ़ाइल डिस्क्रिप्टर की अनुमति देने के लिए कॉन्फ़िगर कर दिया है।

मुझे विश्वास नहीं है कि स्वीकार करने के पक्ष में एक समस्या है - मेरे पास कई लक्ष्य बक्से हैं, प्रत्येक में कई आईपी पते हैं और मैं कई बंदरगाहों का उपयोग कर रहा हूं।

बाहर जाने वाले पक्ष पर मुझे विश्वास नहीं होता कि मैं प्रति आईपी पते की सीमा मार रहा हूं - मैं कई आईपी पते और बंदरगाहों का उपयोग कर रहा हूं (मैं कई आईपी पते में से प्रत्येक के लिए 30,000 - 60,000 बंदरगाहों से कनेक्शन खोल रहा हूं)।

क्या कुछ लिनक्स कर्नेल ट्यून करने योग्य पैरामीटर मुझे याद आ रहा है? या टीसीपी में कुछ मौलिक सीमा?

विफलता यह है कि कनेक्शन खोलने के लिए मेरा ऐप कनेक्ट () कॉल में लटका हुआ है।

किसी भी मदद के लिए धन्यवाद


किस सीमा तक मारा? उस सीमा को मारने पर क्या त्रुटि हुई?
ओपन स्कूल

कनेक्ट () हैंग हो जाता है।
निकब जूल

1
आपके स्रोत और नियति IP के बीच क्या है? क्या आप संभवतः कुछ डिवाइस की NAT तालिका भर रहे हैं?

जवाबों:


10

यहाँ एक ब्लॉग है जहाँ किसी को एक बॉक्स से १,००,००० आउटबाउंड मिलते हैं।

भाग 1 में, हमने "1024 65535" की सीमा निर्धारित की है - जिसका अर्थ है कि 65535-1024 = 64511 अनपेक्षित पोर्ट उपलब्ध हैं। उनमें से कुछ का उपयोग अन्य प्रक्रियाओं द्वारा किया जाएगा, लेकिन हम कभी भी 64511 से अधिक ग्राहक कनेक्शन प्राप्त नहीं करेंगे, क्योंकि हम बंदरगाहों से बाहर चलेंगे।

...

तो आइए 17 नए आईपी पते लाएं, जिनमें से प्रत्येक से 62,000 कनेक्शन बनाने का इरादा है - हमें कुल 1,054,000 कनेक्शन दिए गए हैं


धन्यवाद! ये मेरे लिए सही है। विशेष रूप से, से sysctl seetings metabrew.com/article/... 65,536 टीसीपी कनेक्शन पर सेटअप करने के लिए मुझे अनुमति दी।
निकब जूल 15'10

1

टीसीपी प्रोटोकॉल केवल गंतव्य और स्रोत पोर्ट दोनों के लिए 16 बिट्स का उपयोग करता है। एक बार में 65536 से अधिक पोर्ट खोलने का कोई तरीका नहीं होगा - लिनक्स के साथ भी नहीं।


3
यह केवल एक एकल आईपी पते के लिए सही है। यदि आप एक से अधिक का उपयोग करते हैं, तो प्रत्येक आईपी पते में 65536 खुले बंदरगाह होने चाहिए।
जॉब

1
सही, प्रत्येक आउटगोइंग कनेक्शन के लिए एक स्थानीय पोर्ट आवश्यक है। IIRC, पहले से ही उपयोग किए गए किसी भी पोर्ट का उपयोग इन कनेक्शनों के लिए नहीं किया जा सकता है। इसलिए, उदाहरण के लिए, यदि आप टेलनेट / ftp / http चला रहे हैं, तो 21/23/80 नंबर वाले पोर्ट स्थानीय पोर्ट के रूप में उपलब्ध नहीं हैं।
केविनडिमम

1
आपके पास एक ही पोर्ट के कई कनेक्शन हो सकते हैं।
gtrak

@Job - हां, चूंकि टीसीपी आईपी के शीर्ष पर खड़ी है - मैं केवल एक आईपी पते के बारे में बात कर रहा हूं।

4
प्रत्येक कनेक्शन की पहचान रिमोट एड्रेस और पोर्ट और स्थानीय पते और पोर्ट से मिलकर एक टपल द्वारा की जाती है। इसलिए> 65536 विभिन्न दूरस्थ होस्ट से इनबाउंड कनेक्शन संभव है। > एक होस्ट पर एकल इंटरफ़ेस से 65536 आउटबाउंड कनेक्शन संभव नहीं है और आप कुछ हद तक इससे कम तक ही सीमित रहेंगे क्योंकि उपयोग में हमेशा कुछ पोर्ट होंगे।
लेन होलगेट

0

इस संदर्भ में, "एकल इंटरफ़ेस" का अर्थ एकल नेटवर्क देखभाल है जिसमें एकल आईपी पते को सौंपा गया है। प्रत्येक आउटबाउंड टीसीपी कनेक्शन एक अलग पोर्ट से जुड़ा होता है, इसलिए आपका उदाहरण संभव नहीं है।

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