उन पोर्ट की सूची कैसे प्राप्त करें जो एक यूनिक्स सर्वर में मुफ्त हैं


15

मुझे यह जानने की आवश्यकता है कि मेरे सोलारिस मशीन के सभी पोर्ट किसी भी तरह के नेटवर्क संचार के लिए उपयोग किए जाने के लिए स्वतंत्र हैं।

मैंने netstat -aआज्ञा का प्रयास किया । लेकिन दी गई जानकारी ने एक ठोस परिणाम नहीं दिया, जिसके लिए मैं जो भी नया एप्लिकेशन लिख रहा हूं उसका सभी पोर्ट उपयोग कर सकते हैं। इस संबंध में प्रदान की गई किसी भी सहायता की सराहना करें।


किस संख्यात्मक सीमा के भीतर? उपयोग में हमेशा अल्पकालिक बंदरगाह होते हैं और ये लगातार बदलते रहते हैं।
mdpc

क्या परिणाम के बारे में netstat -anआप को आश्वस्त नहीं था? netstatउपयोग की जाने वाली हर चीज को सूचीबद्ध करना चाहिए। बाकी सब कुछ (आमतौर पर कई हजारों पोर्ट!) उपलब्ध है।
सेलेडा

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

जवाबों:


15

1: आपको यूडीपी या टीसीपी सेवा को लागू करने के लिए अनाम बंदरगाहों (उर्फ पंचांग बंदरगाहों) का उपयोग नहीं करना चाहिए।

डिफ़ॉल्ट रूप से, ये पोर्ट 32768 - 65535 की सीमा में हैं।

# ndd /dev/tcp tcp_smallest_anon_port
32768
# ndd /dev/tcp tcp_largest_anon_port 
65535

2: जब तक आपकी सेवा रूट के रूप में चल रही है या आपके पास आवश्यक आरबीएसी विशेषाधिकार नहीं है, तो आपको एक विशेषाधिकार प्राप्त बंदरगाह का उपयोग नहीं करना चाहिए। डिफ़ॉल्ट रूप से 1 से 1024 तक सभी पोर्ट विशेषाधिकार प्राप्त हैं:

# ndd /dev/tcp tcp_smallest_nonpriv_port
1024

3: जब तक आप यह नहीं जानते कि आप क्या कर रहे हैं, आपको एक अच्छी तरह से ज्ञात पोर्ट का उपयोग नहीं करना चाहिए जो कि आपके द्वारा की गई योजना से भिन्न सेवा को चलाने के लिए अपेक्षित है। प्रसिद्ध बंदरगाहों में सूचीबद्ध हैं /etc/services। उदाहरण के लिए:

# tail /etc/services
dtspc           6112/tcp                        # CDE subprocess control
fs              7100/tcp                        # Font server
solaris-audit   16162/tcp                       # Secure remote audit logging
servicetag      6481/udp
servicetag      6481/tcp
wnn6            22273/tcp                       # Wnn6 jserver
wnn6            22273/udp                       # Wnn6 jserver
rdc             121/tcp                         # SNDR server daemon
snmpd           161/udp        snmp             # Net-SNMP snmp daemon
swat            901/tcp                         # Samba Web Adm.Tool

4: आपको उस पोर्ट का उपयोग नहीं करना चाहिए जो पहले से ही किसी मौजूदा सेवा द्वारा उपयोग किया जाता है। आप इन्हें चला सकते हैं:

# netstat -an | grep LISTEN | nawk '{$0=$1;gsub(".*\\.","");print}' | sort -un

5: अंत में, आपको वर्तमान में अक्षम की गई सेवा द्वारा उपयोग किए जाने वाले पोर्ट का उपयोग नहीं करना चाहिए, लेकिन यह भविष्य में सक्षम हो सकता है। यह सबसे मुश्किल हिस्सा है ...


10

आप अपने सिस्टम पर 1-65,535 पोर्ट का उपयोग कर सकते हैं जिसमें पहले 1024 रूट विशेषाधिकार हैं।

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

netstat -tunlep | grep LISTEN | awk '{print $4}'

फिर आप उन पोर्ट को छोड़कर 1-65535 से किसी भी पोर्ट का उपयोग कर सकते हैं।


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