सवाल लिनक्स में ओपन पोर्ट्स की एक सूची प्राप्त करें


किसी एप्लिकेशन में उपयोग के लिए सभी मुक्त खुले बंदरगाहों को सूचीबद्ध करने के लिए मुझे एक लिनक्स कमांड की आवश्यकता है

lsof -i TCP| fgrep LISTEN

पोर्ट्स के रूप में मदद करने में मदद नहीं की जा रही है, यह सूचियों के उपयोग के लिए जरूरी नहीं है। मैं मुक्त खुले बंदरगाहों को कैसे उपयोग में सूचीबद्ध करूं?


157
2018-01-08 07:34


मूल


//, अगर नेटस्टैट मेजबान पर उपलब्ध नहीं है तो क्या होगा? - Nathan Basanese


जवाब:


netstat -lntu

जैसा कि @askmish द्वारा उत्तर दिया गया है, आपको टीसीपी और udp बंदरगाहों पर आपके सिस्टम पर चल रही सेवाओं की सूची देगी

  • -l = केवल कुछ पोर्ट जो कुछ बंदरगाहों पर सुन रहे हैं
  • -n = पोर्ट नंबर दिखाएं, सेवा नाम को हल करने का प्रयास न करें
  • -t = टीसीपी बंदरगाहों
  • -u = udp बंदरगाहों
  • -p = कार्यक्रम का नाम

आपको 'पी' पैरामीटर की आवश्यकता नहीं है क्योंकि आप केवल यह जानने में रुचि रखते हैं कि कौन से बंदरगाह मुक्त हैं और यह नहीं कि कौन सा प्रोग्राम चल रहा है।

यह केवल दिखाता है कि आपके सिस्टम पर कौन से बंदरगाहों का उपयोग किया जाता है, हालांकि। यह आपको आपके नेटवर्क की स्थिति नहीं बताता है उदा। यदि आप एनएटी के पीछे हैं और आप कुछ सेवाओं को बाहर से सुलभ करना चाहते हैं। या अगर फ़ायरवॉल बाहरी आगंतुकों के लिए बंदरगाह को अवरुद्ध कर रहा है। उस मामले में, एनएमएपी बचाव के लिए आता है। चेतावनी: केवल उन नेटवर्क पर एनएमएपी का प्रयोग करें जो आपके नियंत्रण में हैं। इसके अलावा, फ़ायरवॉल नियम हैं जो एनएमएपी पिंग्स को अवरुद्ध कर सकते हैं, आपको सही परिणाम प्राप्त करने के विकल्पों के साथ चारों ओर घूमना होगा।


227
2018-01-08 11:51



ध्यान दें कि netstat कई प्रणालियों पर बहिष्कृत है और ss इसके बजाय इस्तेमाल किया जाना चाहिए। - Johu


जबसे net-tools पदावनत किया गया है, आप इसका उपयोग कर सकते हैं ss आदेश के बजाय netstat अगर netstat आपकी मशीन पर मौजूद नहीं है:

ss -lntu

इसी तरह काम करना चाहिए

netstat -lntu

अंतर्निहित सहायता के अनुसार:

-n, --numeric       don't resolve service names
-l, --listening     display listening sockets
-t, --tcp           display only TCP sockets
-u, --udp           display only UDP sockets

59
2018-06-08 20:19





यह आदेश खुले नेटवर्क बंदरगाहों और उनके स्वामित्व वाली प्रक्रियाओं की सूची देगा:

netstat -lnptu

इसके बाद आप परिणामों को अपने सटीक चश्मा में फ़िल्टर कर सकते हैं।

आप भी इस्तेमाल कर सकते हैं nmap बंदरगाहों के बारे में अधिक बारीक परिणाम के लिए।


19
2018-01-08 07:45



-पी ध्वज को कुछ प्रक्रियाओं के लिए रूट विशेषाधिकारों की आवश्यकता होती है, इसलिए यह होगा sudo netstat -lnptu - klaus se


प्रतिक्रिया यातायात सहित सभी खुले बंदरगाहों:

netstat -tuwanp 2>/dev/null | awk '{print $4}' | sort | uniq -c | wc -l

4
2017-11-03 04:33



सूची केवल अद्वितीय बंदरगाह संख्या और केवल आईपीवी 4: netstat -tuwanp4 | awk '{print $4}' | grep ':' | cut -d ":" -f 2 | sort | uniq - Aaron C. de Bruyn
परिणाम से संख्याओं को फ़िल्टर और निकालने के तरीके के लिए +1। Netstat से stderr आउटपुट को निकालने के लिए संपादित (जो उबंटू में परिणाम के लिए एक शीर्षलेख जोड़ता है)। - datashaman
हम्म, दूसरे विचारों पर। प्रश्न का उत्तर नहीं देने के लिए -1। - datashaman


निम्न आदेश किसी भी यूनिक्स पर काम करेगा जो उबंटू / डेबियन के समान प्रारूप में आउटपुट करता है - जहां स्थानीय पता कॉलम 4 में है और आउटपुट में शीर्ष पर 2 लाइन शीर्षलेख शामिल है। यदि इनमें से कोई भी संख्या अलग है, तो नीचे दिए गए awk कमांड को ट्वीक करें।

यदि आप केवल आईपीवी 4 चाहते हैं:

netstat -lnt | awk 'NR>2{print $4}' | grep -E '0.0.0.0:' | sed 's/.*://' | sort -n | uniq

यदि आप केवल आईपीवी 6 चाहते हैं:

netstat -lnt | awk 'NR>2{print $4}' | grep -E ':::' | sed 's/.*://' | sort -n | uniq

यदि आप दोनों एक साथ चाहते हैं:

netstat -lnt | awk 'NR>2{print $4}' | grep -E '(0.0.0.0:|:::)' | sed 's/.*://' | sort -n | uniq

आदेश सभी इंटरफेस पर सुनने वाले पोर्ट नंबरों की एक सूची आउटपुट करता है। यदि आप स्थानीय पोर्ट इंटरफ़ेस पर सुन रहे सभी बंदरगाहों को सूचीबद्ध करना चाहते हैं, तो इस तरह कुछ उपयोग करें:

netstat -lnt | awk 'NR>2{print $4}' | grep -E '(127.0.0.1:|::1:)' | sed 's/.*://' | sort -n | uniq

0
2018-04-04 06:29