आंतरिक अनुप्रयोगों के लिए बेस्ट टीसीपी पोर्ट नंबर रेंज [बंद]


94

मैं एक ऐसे स्थान पर काम करता हूं, जहां हमारे प्रत्येक आंतरिक अनुप्रयोग एक व्यक्तिगत टॉमकैट उदाहरण पर चलता है और एक विशिष्ट टीसीपी पोर्ट का उपयोग करता है। सर्वर पर किसी भी अन्य प्रक्रिया के साथ पोर्ट नंबर टकराव से बचने के लिए इन ऐप्स के लिए सबसे अच्छा IANA पोर्ट रेंज क्या होगा?

Http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml पर आधारित , ये विकल्प हैं जैसे मैं वर्तमान में उन्हें देखता हूं:

  1. सिस्टम पोर्ट (0-1023): मैं इनमें से किसी भी पोर्ट का उपयोग नहीं करना चाहता क्योंकि सर्वर इस रेंज में मानक पोर्ट पर सेवाएं चला रहा हो सकता है
  2. उपयोगकर्ता पोर्ट (1024-49151): यह देखते हुए कि आवेदन आंतरिक हैं, मेरा इरादा हमारे किसी भी एप्लिकेशन के लिए एक नंबर आरक्षित करने के लिए IANA का अनुरोध करने का नहीं है। हालाँकि, मैं उसी पोर्ट की संभावना को कम करना चाहूंगा जिसका उपयोग किसी अन्य प्रक्रिया द्वारा किया जा रहा है, उदाहरण के लिए, 1521 पर Oracle नेट श्रोता।
  3. डायनेमिक और / या प्राइवेट पोर्ट (49152-65535): यह रेंज कस्टम पोर्ट नंबर के लिए आदर्श है। मेरी एकमात्र चिंता यह है कि अगर ऐसा होता तो:

    ए। मैं पोर्ट X
    b का उपयोग करने के लिए अपने एक एप्लिकेशन को कॉन्फ़िगर करता हूं । एप्लिकेशन कुछ मिनट या घंटों (ऐप की प्रकृति के आधार पर) के लिए नीचे है, पोर्ट को थोड़ी देर के लिए अप्रयुक्त छोड़कर,
    सी। ऑपरेटिंग सिस्टम पोर्ट संख्या X को दूसरी प्रक्रिया के लिए आवंटित करता है, उदाहरण के लिए, जब यह प्रक्रिया क्लाइंट के रूप में दूसरे सर्वर के लिए टीसीपी कनेक्शन की आवश्यकता होती है। यह दिया गया सफल होता है कि यह डायनेमिक रेंज के भीतर आता है और एक्स वर्तमान में अप्रयुक्त है जहां तक ​​ऑपरेटिंग सिस्टम का संबंध है, और
    डी। ऐप प्रारंभ करने में विफल रहता है क्योंकि पोर्ट X पहले से ही उपयोग में है


2
मैंने यहां एक ऐसे ही सवाल का जवाब दिया है stackoverflow.com/a/38141340/3333759 जो आपको मददगार लग सकता है।
adrianwadey

जवाबों:


32

मैं देख नहीं सकता कि आप क्यों परवाह करेंगे। "1024 से नीचे के पोर्ट का उपयोग न करें" विशेषाधिकार नियम के अलावा, आपको किसी भी पोर्ट का उपयोग करने में सक्षम होना चाहिए क्योंकि आपके क्लाइंट को किसी भी आईपी पते और पोर्ट से बात करने के लिए कॉन्फ़िगर करने योग्य होना चाहिए!

यदि वे नहीं हैं, तो वे बहुत अच्छी तरह से नहीं किया गया है। वापस जाओ और उन्हें ठीक से :-)

दूसरे शब्दों में, सर्वर को आईपी पते पर चलाएं Xऔर Yफिर पोर्ट को उस जानकारी के साथ ग्राहकों को कॉन्फ़िगर करें। फिर, यदि आप पाते हैं कि आप के साथ उस संघर्ष पर एक अलग सर्वर चलाना होगा , तो बस एक नया पोर्ट का उपयोग करने के लिए अपने सर्वर और क्लाइंट को फिर से कॉन्फ़िगर करें। यह सच है कि क्या आपके ग्राहक कोड हैं, या ब्राउज़र में URL टाइप करने वाले लोग हैं।XY

मैं, आप की तरह, आईएएनए द्वारा सौंपे गए नंबरों को प्राप्त करने की कोशिश नहीं करूंगा क्योंकि यह सेवाओं के लिए माना जाता है कि कई, कई वातावरण उनका उपयोग करेंगे (एसएसएच या एफ़टीपी या टेलनेट)।

आपका नेटवर्क है अपने अपने व्यापार है कि, यदि आप पोर्ट 1234 (या यहां तक कि उस बात के लिए Telnet या FTP बंदरगाह) पर अपने सर्वर चाहते नेटवर्क और,। बिंदु में मामला, हमारे मेनफ्रेम विकास क्षेत्र में, पोर्ट 23 का उपयोग 3270 टर्मिनल सर्वर के लिए किया जाता है, जो टेलनेट के लिए एक बहुत अलग जानवर है। यदि आप मेनफ्रेम के यूनिक्स पक्ष में टेलनेट करना चाहते हैं, तो आप पोर्ट 1023 का उपयोग करें। कभी-कभी पोर्ट 1023 को निर्दिष्ट किए बिना आप टेलनेट क्लाइंट का उपयोग करते हैं, तो यह आपको परेशान करता है क्योंकि यह आपको ऐसे सर्वर तक पहुंचाता है, जो टेलनेट प्रोटोकॉल के बारे में कुछ नहीं जानता है - जिसे हमें तोड़ना है टेलनेट क्लाइंट से बाहर और इसे ठीक से करें:

telnet big_honking_mainframe_box.com 1023

यदि आप वास्तव में क्लाइंट पक्ष को कॉन्फ़िगर करने योग्य नहीं बना सकते हैं , तो 48042 की तरह दूसरी श्रेणी में एक को चुनें, और इसका उपयोग करें, यह घोषणा करते हुए कि उन बक्सों पर कोई अन्य सॉफ़्टवेयर (भविष्य में किसी भी जोड़े सहित) को अपने रास्ते से बाहर रखना होगा ।


धन्यवाद। आपके उत्तर को पढ़ने और इसे और अधिक विचार देने के बाद मैंने दूसरी सीमा के भीतर एक बंदरगाह का उपयोग करने के विकल्प के साथ जाने का फैसला किया। हमने 46xxx को चुना क्योंकि IANA के पास इस सब- लिंक में बहुत कम पोर्ट असाइन किए गए हैं । हमने सैद्धांतिक रूप से संभव (हालांकि अत्यधिक संभावना नहीं) परिदृश्य के कारण तीसरी श्रेणी नहीं चुनी।
जुआनल

116

मैंने IANA से असाइन किए गए पोर्ट नंबर डाउनलोड करने, उपयोग किए गए पोर्ट्स को फ़िल्टर करने और प्रत्येक पोर्ट को अवरूद्ध करने के लिए प्रत्येक "Unassigned" रेंज को सॉर्ट करने का निर्णय लिया। यह काम नहीं किया, क्योंकि csv फ़ाइल में "Unassigned" के रूप में चिह्नित किया गया है जो अन्य पोर्ट नंबर आरक्षण को ओवरलैप करता है। मैंने मैन्युअल रूप से निर्दिष्ट पोर्ट नंबरों की श्रेणियों का विस्तार किया , मुझे सभी असाइन किए गए पोर्ट नंबरों की सूची के साथ छोड़ दिया। मैंने तब उस सूची को छांटा और अपनी बिना सूची वाली श्रेणियों की अपनी सूची तैयार की।

चूंकि इस stackoverflow.com पृष्ठ ने विषय के बारे में मेरी खोज में बहुत उच्च स्थान प्राप्त किया है, मुझे लगा कि मैं यहाँ सबसे बड़ी श्रेणियों को किसी और के लिए पोस्ट करूँगा जो दिलचस्पी है। ये टीसीपी और यूडीपी दोनों के लिए हैं, जहां सीमा में बंदरगाहों की संख्या कम से कम 500 है।

Total   Start   End
829     29170   29998
815     38866   39680
710     41798   42507
681     43442   44122
661     46337   46997
643     35358   36000
609     36866   37474
596     38204   38799
592     33657   34248
571     30261   30831
563     41231   41793
542     21011   21552
528     28590   29117
521     14415   14935
510     26490   26999

स्रोत (CSV डाउनलोड बटन के माध्यम से):

http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml


"यह दोनों tcp और udp है" के रूप में - मैं उन सभी पोर्ट को खोलने की अनुमति देता हूं, जो 44100-44199आसानी से याद कर सकते हैं क्योंकि ऑडियो udp और tcp दोनों पर 44100 सैंपलिंग सुरक्षित रूप से करता है? Udp 44100-44199 और tcp 44100-44199 दोनों ही मुफ्त हैं?
लैप्सियो

1
दुर्भाग्यवश नहीं। मेरे द्वारा पोस्ट किए जाने के बाद से अतिरिक्त आरक्षण हैं। अब आपकी सीमा में एक पोर्ट है। "z- वेव-टनल 44123 tcp Z- वेव सिक्योर टनल"
डेविड वीरेब

सौभाग्य से मुझे नहीं लगता कि मैं Z- वेव स्मार्ट होम सिक्योरिटी सिस्टम डेवलपमेंट सर्वर lol पर स्थापित करने जा रहा हूं। पहले इस्तेमाल किए गए पोर्ट रेंज में कुछ महत्वपूर्ण सामान शामिल थे, जिनमें कुछ VMWare टूल भी शामिल थे, इसलिए यह बहुत खराब था। अगर अभी के लिए यही एकमात्र टक्कर है तो मैं उस धन्यवाद से
मस्त हो जाऊंगा

3
इसलिए मैंने नए डेटा पर आधारित श्रेणियों के एक नए सेट के साथ आने के लिए सूची को फिर से चलाने का फैसला किया। यह पता चला है कि "Unassigned" पर्वतमाला ठीक से गिने नहीं जाते हैं। उदाहरण के लिए, 43124-44320 को अनिर्दिष्ट के रूप में चिह्नित किया गया है, फिर भी 44123, जो उस सीमा में है, इसे असाइन किए जाने के ठीक ऊपर सूचीबद्ध किया गया है। ऐसा लगता है कि मुझे मैन्युअल रूप से अनसाइन किए गए रेंज के साथ आना होगा क्योंकि वे गलत तरीके से गणना करते हैं।
डेविड वीरेब

6

संक्षिप्त उत्तर: एक बिना उपयोग किए हुए उपयोगकर्ता पोर्ट का उपयोग करें

ओवरिवर के उत्तर पर - एक संसाधन खोज समाधान का चयन करें और तैनात करें। सर्वर को एक निजी पोर्ट को गतिशील रूप से चुनें। क्या ग्राहक संसाधन खोज का उपयोग करते हैं।

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

आप निजी पोर्ट से बचकर किसी क्लाइंट से जोखिम को लगभग पूरी तरह से कम कर सकते हैं, जो गतिशील रूप से ग्राहकों को दिया जाता है।

यदि आप किसी उपयोगकर्ता पोर्ट का उपयोग करते हैं तो दूसरी सेवा से जोखिम कम से कम है। एक बिना पोर्ट किए गए पोर्ट का जोखिम केवल यह है कि किसी अन्य सेवा को कॉन्फ़िगर किया जाना होता है (या dyamically) उस पोर्ट का उपयोग करता है। लेकिन कम से कम यह शायद आपके नियंत्रण में है।

उपयोगकर्ता पोर्ट सहित सभी पोर्ट असाइनमेंट के साथ विशाल डॉक यहां है: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt टोकन के लिए देखो ।


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