स्थानीय पोर्ट कैसे निर्धारित किए जाते हैं
पोर्ट संख्या को टीसीपी कार्यान्वयन सॉफ्टवेयर द्वारा चुना जाता है, जिसमें एपेमेरल पोर्ट नामक पोर्ट संख्याओं की एक श्रृंखला होती है ।
पोर्ट संख्या और उपयोग की जाने वाली सीमा को चुनने के लिए सटीक तंत्र ऑपरेटिंग सिस्टम पर निर्भर है।
क्या यह 63999 होने के लिए मजबूर करने का एक तरीका है।
यह टीसीपी कार्यान्वयन सॉफ्टवेयर के कॉन्फ़िगरेशन को बदलकर किया जा सकता है।
एपर्मेरल पोर्ट्स को विभिन्न ऑपरेटिंग सिस्टमों के लिए कॉन्फ़िगर करने के निर्देश एपेमेरल पोर्ट रेंज को बदलते हुए पाए जा सकते हैं ।
- संदर्भ के लिए नीचे दिए गए इस उत्तर में लिनक्स और विंडोज के लिए निर्देश शामिल हैं।
हालांकि, सीमा को एकल पोर्ट तक सीमित करना एक अच्छा विचार नहीं है, उदाहरण के लिए 63999
।
पंचांग पोर्ट रेंज
एक टीसीपी / आईपीवी 4 कनेक्शन में दो समापन बिंदु होते हैं, और प्रत्येक समापन बिंदु में एक आईपी पता और एक पोर्ट नंबर होता है। इसलिए, जब कोई क्लाइंट उपयोगकर्ता सर्वर कंप्यूटर से कनेक्ट होता है, तो एक स्थापित कनेक्शन को (सर्वर आईपी, सर्वर पोर्ट, क्लाइंट आईपी, क्लाइंट पोर्ट) के 4-ट्यूपल के रूप में सोचा जा सकता है।
आमतौर पर चार में से तीन को आसानी से जाना जाता है - क्लाइंट मशीन अपने स्वयं के आईपी पते का उपयोग करती है और दूरस्थ सेवा से कनेक्ट होने पर, सर्वर मशीन के आईपी पते और सेवा पोर्ट नंबर की आवश्यकता होती है।
जो तुरंत स्पष्ट नहीं है वह यह है कि जब कोई कनेक्शन स्थापित किया जाता है तो कनेक्शन का क्लाइंट पक्ष पोर्ट नंबर का उपयोग करता है। जब तक कोई क्लाइंट प्रोग्राम स्पष्ट रूप से किसी विशिष्ट पोर्ट नंबर का अनुरोध नहीं करता है, तब तक उपयोग किया जाने वाला पोर्ट नंबर एक पंचांग पोर्ट नंबर होता है।
एपेहेरल पोर्ट एक मशीन के आईपी स्टैक द्वारा सौंपे गए अस्थायी पोर्ट होते हैं, और इस उद्देश्य के लिए निर्दिष्ट पोर्ट से निर्दिष्ट होते हैं। जब कनेक्शन समाप्त हो जाता है, तो पुन: उपयोग के लिए पंचांग पोर्ट उपलब्ध होता है, हालांकि अधिकांश आईपी स्टैक उस पोर्ट संख्या का पुन: उपयोग नहीं करेंगे, जब तक कि अल्पकालिक पोर्ट के पूरे पूल का उपयोग नहीं किया गया हो।
इसलिए, यदि क्लाइंट प्रोग्राम फिर से जुड़ता है, तो उसे नए कनेक्शन के पक्ष के लिए एक अलग एपर्चर पोर्ट नंबर सौंपा जाएगा।
स्रोत पंचांग पोर्ट रेंज
पंचांग पोर्ट रेंज बदलना
लिनक्स:
लिनक्स आपको केवल फ़ाइल का उपयोग करके पंचांग पोर्ट रेंज को देखने और बदलने की अनुमति देता है /proc/sys/net/ipv4/ip_local_port_range
। उदाहरण के लिए, यह कर्नेल 2.2 प्रणाली पर डिफ़ॉल्ट विन्यास दिखाता है:
$ cat /proc/sys/net/ipv4/ip_local_port_range
1024 4999
इसे पसंदीदा रेंज में बदलने के लिए, आप कर सकते हैं (सुपरयुजर के रूप में):
# echo "49152 65535" > /proc/sys/net/ipv4/ip_local_port_range
ध्यान दें कि आपको हर बार सिस्टम बूट करने की आवश्यकता होगी, इसलिए सिस्टम स्टार्टअप स्क्रिप्ट में एक पंक्ति जोड़ना सुनिश्चित करें जैसे कि /etc/rc.local
आपकी सीमा हमेशा उपयोग की जाती है।
यह भी ध्यान दें कि यदि पर्याप्त कर्नेल मेमोरी उपलब्ध है, तो लिनक्स 2.4 कर्नेल 32768 की सीमा को 61000 के माध्यम से डिफ़ॉल्ट कर देगा, इसलिए नए लिनक्स सिस्टम पर रेंज बदलना आवश्यक नहीं हो सकता है।
अंत में, यह भी ध्यान दें कि आप फ़ाइल सिस्टम sysctl
का उपयोग करने के बजाय सेटिंग्स को बदलने के लिए इंटरफ़ेस का उपयोग करने में सक्षम हो सकते हैं /proc
। sysctl
पैरामीटर का नाम "net.ipv4.ip_local_port_range" है। /etc/sysctl.conf
यदि आपके पास यह फ़ाइल है, तो संपादित करें , या sysctl
यदि आप इस पैरामीटर का उपयोग करना चाहते हैं , तो स्टार्टअप स्क्रिप्ट को मैन्युअल रूप से कमांड चलाएं sysctl
।
Windows Vista / Windows Server 2008 और नए:
Microsoft नॉलेजबेस आर्टिकल 929851 के अनुसार, विंडोज विस्टा और विंडोज सर्वर 2008 के अनुसार, विंडोज अब डिफ़ॉल्ट रूप से बड़ी रेंज (49152-65535) का उपयोग करता है । वही लेख यह भी दिखाता है कि आप अपनी इच्छानुसार सीमा को कैसे बदल सकते हैं, लेकिन डिफ़ॉल्ट सीमा अब अधिकांश सर्वरों के लिए पर्याप्त है।
स्रोत पंचांग पोर्ट रेंज बदलना
आप निम्न netsh
आदेशों का उपयोग करके Windows Vista या Windows Server 2008 कंप्यूटर चला रहे कंप्यूटर पर डायनेमिक पोर्ट श्रेणी देख सकते हैं
:
netsh int ipv4 show dynamicport tcp
netsh int ipv4 show dynamicport udp
netsh int ipv6 show dynamicport tcp
netsh int ipv6 show dynamicport udp
टिप्पणियाँ:
- रेंज प्रत्येक परिवहन के लिए और आईपी के प्रत्येक संस्करण के लिए अलग से सेट की गई है।
- पोर्ट रेंज अब वास्तव में एक शुरुआती बिंदु के साथ और एक समापन बिंदु के साथ एक सीमा है।
- Microsoft ग्राहक जो Windows Server 2008 चला रहे सर्वर को तैनात करते हैं, अगर आंतरिक नेटवर्क पर फ़ायरवॉल का उपयोग किया जाता है, तो सर्वर के बीच RPC संचार में समस्या हो सकती है।
- इन मामलों में, हम अनुशंसा करते हैं कि आप फायरवॉल को पुन: कॉन्फ़िगर के गतिशील पोर्ट श्रेणी में सर्वर के बीच यातायात के लिए अनुमति देने के लिए
49152
के माध्यम से 65535
।
- यह सीमा प्रसिद्ध बंदरगाहों के अतिरिक्त है जो सेवाओं और अनुप्रयोगों द्वारा उपयोग की जाती हैं।
- या, सर्वर द्वारा उपयोग की जाने वाली पोर्ट श्रेणी को प्रत्येक सर्वर पर संशोधित किया जा सकता है।
आप इस श्रेणी को netsh
कमांड का उपयोग करके समायोजित करते हैं , इस प्रकार है:
netsh int <ipv4|ipv6> set dynamic <tcp|udp> start=number num=range
यह कमांड TCP के लिए डायनेमिक पोर्ट रेंज सेट करता है। प्रारंभ पोर्ट संख्या है, और पोर्ट की कुल संख्या सीमा है। निम्नलिखित नमूना आदेश हैं:
netsh int ipv4 set dynamicport tcp start=10000 num=1000
netsh int ipv4 set dynamicport udp start=10000 num=1000
netsh int ipv6 set dynamicport tcp start=10000 num=1000
netsh int ipv6 set dynamicport udp start=10000 num=1000
ये नमूना आदेश पोर्ट 10000 पर शुरू करने और पोर्ट 10999
(1000 पोर्ट) पर समाप्त होने के लिए डायनेमिक पोर्ट रेंज सेट करते हैं ।
टिप्पणियाँ:
- सेट किए जा सकने वाले पोर्ट की न्यूनतम सीमा है
255
।
- न्यूनतम प्रारंभिक बंदरगाह जो सेट किया जा सकता है
1025
।
- अधिकतम अंत पोर्ट (कॉन्फ़िगर की जा रही सीमा के आधार पर) से अधिक नहीं हो सकता है
65535
।
- विंडोज सर्वर 2003 के डिफ़ॉल्ट व्यवहार को डुप्लिकेट करने के लिए,
1025
स्टार्ट पोर्ट के 3976
रूप में उपयोग करें, और फिर टीसीपी और यूडीपी दोनों के लिए सीमा के रूप में उपयोग करें । इसका एक प्रारंभ पोर्ट 1025
और के एक अंतिम पोर्ट में होता है 5000
।
स्रोत Microsoft नॉलेजबेस अनुच्छेद 929851 :
Windows XP और पुराने:
पुराने विंडोज ऑपरेटिंग सिस्टम (विंडोज एक्सपी और पुराने) के लिए, विंडोज अपने एपीमेरल पोर्ट रेंज के लिए 4999 के माध्यम से 1024 की पारंपरिक बीएसडी रेंज का उपयोग करता है। दुर्भाग्य से ऐसा प्रतीत होता है कि आप केवल पंचांग पोर्ट की ऊपरी सीमा निर्धारित कर सकते हैं। यहाँ Microsoft नॉलेजबेस अनुच्छेद 196271 से संबंधित जानकारी दी गई है :
- रजिस्ट्री संपादक (
Regedt32.exe
) शुरू करें ।
रजिस्ट्री में निम्न कुंजी का पता लगाएँ:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
"संपादित करें" मेनू पर, "मान जोड़ें" पर क्लिक करें, और फिर निम्न रजिस्ट्री मान जोड़ें:
मान का नाम: MaxUserPort
डेटा प्रकार: REG_DWORD
मान: 65534
(उदाहरण के लिए)
मान्य सीमा: 5000-65534
(दशमलव) डिफ़ॉल्ट: 0x1388
(5000 दशमलव)
विवरण: यह पैरामीटर उपयोग किए गए अधिकतम पोर्ट नंबर को नियंत्रित करता है जब कोई एप्लिकेशन सिस्टम से किसी भी उपलब्ध उपयोगकर्ता पोर्ट का अनुरोध करता है। आम तौर पर, अल्पकालिक (अर्थात, अल्पकालिक) बंदरगाहों को समावेशी 1024
और 5000
समावेशी मूल्यों के बीच आवंटित किया जाता है ।
रजिस्ट्री संपादक से बाहर निकलें।
नोट: एक अन्य प्रासंगिक KB आलेख ( 812873 ) है जो आपको अपवर्जन रेंज सेट करने की अनुमति देने का दावा करता है, जिसका अर्थ यह हो सकता है कि आप बंदरगाहों को शामिल कर सकते हैं 1024-9999
(उदाहरण के लिए) अल्पकालिक पोर्ट रेंज हो 10000-65534
। हालांकि, हम इसे काम करने में सक्षम नहीं कर पाए हैं (अक्टूबर 2004 तक)।
स्रोत पंचांग पोर्ट रेंज बदलना