एक ऐप विकसित करते समय जो एक टीसीपी/आईपी पोर्ट पर सुनेंगे, किसी को डिफ़ॉल्ट पोर्ट का चयन करने के बारे में कैसे जाना चाहिए? मान लें कि यह ऐप कई कंप्यूटरों पर स्थापित होगा, और पोर्ट विवादों से परहेज करना वांछित है।किसी को नई सेवा के लिए डिफ़ॉल्ट टीसीपी/आईपी पोर्ट चुनने के बारे में कैसे जाना चाहिए?
उत्तर
जाओ here और विवरण के साथ एक बंदरगाह लेने Unassigned
आप सुझाव दे रहे हैं कि वह 100 से कम पोर्ट चुनता है? – mpen
मुझे कौन सा चुनना चाहिए? – Owen
यदि सभी डेवलपर्स उस तर्क से जाते हैं तो इसका मतलब यह होगा कि सभी नई सेवाएं कुछ असाइन किए गए बंदरगाहों के आसपास इकट्ठी होती हैं। संभावना क्या होगी कि असाइन किए गए पोर्ट बनाम एक असाइन किए गए बंदरगाह पर एक सेवा चल रही है। (क्षमा करें अगर मैं कुछ व्यापार रहस्य का खुलासा नहीं कर रहा हूं :) – hultqvist
प्रथम चरण: IANA listing को देखो:
वहाँ आप सूची
"गतिशील और/या निजी की पूंछ पर देखेंगे बंदरगाह 49152 से 65535 के हैं "
तो वे आपके बेहतर दांव होंगे, लेकिन एक बार जब आप एक चुनते हैं तो आप यह देखने के लिए हमेशा Google पर जा सकते हैं कि कोई लोकप्रिय ऐप टी है या नहीं टोपी पहले से ही "दावा" कर चुकी है
लेकिन एक गतिशील बंदरगाह का उपयोग नहीं करना मुझे अंतःक्रियात्मक (हालांकि दुर्लभ) बंदरगाह संघर्ष के लिए खुला छोड़ देता है? शायद पंजीकृत श्रेणी में बंदरगाह का उपयोग करना सुरक्षित है जिसे बिना किसी असाइन किए गए ऐप को असाइन किया गया है या असाइन किया गया है। –
जब तक आप स्पष्ट रूप से आईएएनए के साथ अपनी बंदरगाह पसंद को पंजीकृत नहीं करते हैं, तो आप "असंबद्ध" का उपयोग करके एक ही संघर्ष की बाधाओं को चलाते हैं। दरअसल, कम अंत में कई असाइन किए गए हैं, इसलिए शायद अधिक संभावना है कि आईएमएचओ – curtisk
संभावित विवादों से निपटने के लिए उपयोगकर्ता/व्यवस्थापक कॉन्फ़िगर करने योग्य बंदरगाह के विकल्प के साथ हमेशा असाइन किए गए रेंज से शुरू करें। केवल तभी यदि आपका आवेदन व्यापक उपयोग तक पहुंचता है (बिटकटेंट, या कुछ अन्य बड़े उपयोग को सोचें) तो क्या आपको वास्तव में असाइन किए गए बंदरगाह के लिए आवेदन करने पर विचार करना चाहिए। अन्यथा निर्दिष्ट सीमा से बाहर रहें। अगर यह कुछ सख्ती से आंतरिक/व्यक्तिगत है तो विभिन्न बंदरगाहों द्वारा उपयोग में बंदरगाहों को आसानी से दस्तावेज करें और आपको तब तक ठीक होना चाहिए जब लोग उन्हें कहीं ऑनलाइन देख सकें। गैर-रूटेबल आईपी के समान निजी/गतिशील रेंज के बारे में सोचें - वे छोटे/निजी उपयोग के लिए बिल्कुल सही हैं। – jefflunt
ठीक है, आप कुछ सामान्य रूप से उपयोग किए गए पोर्ट नंबर here का संदर्भ दे सकते हैं और किसी और का उपयोग न करने का प्रयास कर सकते हैं।
यदि "बड़े पैमाने पर जनता के लिए खुला" होने का मतलब है कि आप अपने सिस्टम पर बंदरगाह खोल रहे हैं, तो मैं आपके सिस्टम प्रशासकों के साथ चैट करूँगा कि वे किस बंदरगाह के साथ ऐसा करने में सहज महसूस करते हैं।
शायद आप this list (विकिपीडिया) से किसी भी बंदरगाह का उपयोग करने से बचना चाहते हैं।
मैं सिर्फ एक चुनता हूं, और एक बार ऐप का उपयोग लोगों द्वारा किया जाता है, तो पोर्ट नंबर पहचान लिया जाएगा और ऐसी सूचियों में शामिल किया जाएगा।
एक संख्या है कि सरकारी IANA पोर्ट संख्या और गैर-सरकारी पोर्ट संख्या का सबसे व्यापक सूची मैं जानता हूँ कि nmap-services है नहीं verycommon
है का चयन करें।
व्यापक रूप से इस्तेमाल करके, आप मतलब है कि आप भविष्य में इसका उपयोग करने के लिए अन्य लोगों के खिलाफ की रक्षा करना चाहते हैं, आप इसे के रूप में चिह्नित IANA here
के द्वारा अपने ऐप के लिए आरक्षित से एक असाइन नहीं किए गए एक का चयन करने के लिए आवेदन कर सकते हैं आईएएनए सूची आमतौर पर पर्याप्त होती है, लेकिन यदि आप व्यावसायिक रूप से जारी किए गए उत्पाद के बारे में बात कर रहे हैं, तो आपको वास्तव में आईएएनए पर आवेदन करना चाहिए ताकि आपको सौंपा जा सके। ध्यान दें कि ऐसा करने की प्रक्रिया सरल लेकिन धीमी है; आखिरी बार मैंने एक के लिए आवेदन किया, इसमें एक साल लग गया।
यदि यह उस एप्लिकेशन के लिए है जिसे आप व्यापक रूप से उपयोग करने की उम्मीद करते हैं, तो here पर पंजीकरण करें ताकि कोई भी इसका उपयोग न करे।
अन्यथा, बस एक अप्रयुक्त एक यादृच्छिक रूप से चुनें।
गतिशील रेंज में से किसी एक का उपयोग करने में समस्या यह है कि यह उपलब्ध नहीं हो सकता है क्योंकि इसका उपयोग गतिशील पोर्ट नंबर के लिए किया जा सकता है।
एक डिफ़ॉल्ट पोर्ट चुनें जो सबसे आम डेमॉन और सर्वरों में हस्तक्षेप नहीं करता है। यह भी सुनिश्चित करें कि बंदरगाह संख्या कुछ वायरस के लिए हमले वेक्टर के रूप में सूचीबद्ध नहीं है - कुछ कंपनियों की सख्त नीतियां होती हैं जहां वे ऐसे बंदरगाहों को अवरुद्ध करते हैं, इससे कोई फर्क नहीं पड़ता। अंतिम लेकिन कम से कम नहीं, सुनिश्चित करें कि पोर्ट नंबर कॉन्फ़िगर करने योग्य है।
जैसा कि अन्य लोग उल्लेख करते हैं, IANA जांचें।
फिर अपने स्थानीय सिस्टम/आदि/सेवाओं की जांच करें ताकि यह देखने के लिए कि कुछ कस्टम बंदरगाह पहले से उपयोग में हैं या नहीं।
और कृपया, इसे हार्डकोड न करें। सुनिश्चित करें कि यह कॉन्फ़िगर करने योग्य है, किसी भी तरह, किसी भी तरह से - यदि किसी अन्य कारण के लिए आप एक ही समय में अपने स्वयं के स्थानीयकृत बिल्डों का उपयोग करके एकाधिक डेवलपर्स प्राप्त करने में सक्षम होना चाहते हैं।
आईएटीए? आपका मतलब इना है? – bortzmeyer
आइना सूची का उपयोग करें। से csv फ़ाइल डाउनलोड करें:
https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.csv
और unregistred बंदरगाहों के लिए खोज के लिए इस खोल स्क्रिप्ट का उपयोग करें:
for port in {N..M}; do if ! grep -q $port service-names-port-numbers.csv; then echo $port;fi; done;
और यह बेहतर जवाब है एन और एम
के 2 नंबर के बजाय डाल यहां: http://stackoverflow.com/questions/10476987/best-tcp-port-number-range-for-internal-applications – matt2000