जवाबों:
पोर्ट का उपयोग करके वर्तमान में जांच करने के लिए "नेटस्टैट" का उपयोग करें।
netstat -antp प्रोटो रिकव-क्यू सेंड-क्यू स्थानीय पता विदेशी पता राज्य पीआईडी / कार्यक्रम का नाम tcp 0 0 xxx.xxx.xxx.xxx 0.0.0.0:* LISTEN 16297 / नाम tcp 0 0 xxx.xxx.xxx.xxx:53 0.0.0.0:* LISTEN 16297 / नाम tcp 0 0 xxx.xxx.xxx.xxx:53 0.0.0.0:* LISTEN 16297 / नाम tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 16297 / नाम
यह (netstat) सबसे तेज़ समाधान है ...
netstat -lnt
... लेकिन यह आपको अधिक नियंत्रण (गति की लागत पर (कभी-कभी बहुत अधिक गति)) देता है ...
lsof -n -i -a -u www-data
उदाहरण के लिए उपर्युक्त उदाहरण से आप सभी टीसीपी पोर्ट खोलते हैं और LISTEN
राज्य में, और ( -a
) अपाचे ( www-data
) उपयोगकर्ता से संबंधित हैं ।
सभी अच्छे जवाब।
हालाँकि आप उल्लेख नहीं करते हैं कि क्या आप कंप्यूटर पर लॉग इन हैं। ; P
यदि नहीं, तो nmap अपने दोस्त है।
शुरुआत के लिए प्रयास करें:
nmap -O
target
amap भी एक अच्छा विकल्प है जो बैनर पन्नों को हथियाने के द्वारा सर्वर सॉफ्टवेयर का अनुमान लगाने का भी प्रयास करेगा।
शुरुआत के लिए प्रयास करें:
amap
target
1-6000
प्रयत्न
lsof -i :<port number>
यदि आपको कोई परिणाम मिलता है, तो कुछ सुनने और बाध्य होता है, जैसे
# lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 1833 nobody 3u IPv4 51091229 0t0 TCP odessa.cheney.net:http->79.173.188.214:52918 (ESTABLISHED)
nginx 1833 nobody 5u IPv4 46221856 0t0 TCP odessa.cheney.net:http->66.36.243.182:37876 (CLOSE_WAIT)
nginx 1833 nobody 9u IPv4 34733048 0t0 TCP localhost.localdomain:http (LISTEN)
nginx 1833 nobody 10u IPv4 34733049 0t0 TCP odessa.cheney.net:http (LISTEN)
nginx 1833 nobody 14u IPv4 46221857 0t0 TCP odessa.cheney.net:http->66.36.243.182:37880 (CLOSE_WAIT)
nginx 1833 nobody 15u IPv4 51091030 0t0 TCP odessa.cheney.net:http->msnbot-65-55-106-132.search.msn.com:51708 (ESTABLISHED)
nginx 11832 root 9u IPv4 34733048 0t0 TCP localhost.localdomain:http (LISTEN)
nginx 11832 root 10u IPv4 34733049 0t0 TCP odessa.cheney.net:http (LISTEN)
netstat -tlnp
Isping वाले t
cp पोर्ट दिखाएं l
, n
केवल oes दिखाएं (नामों का समाधान न करें - यह तेज़ होता है) और उस रोशन को दिखाएं p
जो सुनने का काम कर रहा है ( p
केवल कार्य यदि आप रूट हैं
netstat -ulnp
u
डीपी पोर्ट दिखाएँ जो l
किटेन हो रहे हैं , n
केवल दिखाता है (नामों को हल न करें - यह तेज p
होता है p
)
netstat -unp
u
डीपी पोर्ट दिखाएं जो खुले हैं, लेकिन सुन नहीं रहे हैं, n
केवल दिखाता है (नामों को हल न करें- यह तेज है) बनाता है और उस p
रॉग को दिखाएं जो सुनने का काम कर रहा है ( p
केवल काम करता है यदि आप रूट हैं)
netstat -an
a
उपयोग में ll पोर्ट दिखाएं , n
केवल दिखाता है - नाम हल न करें
lsof -i <proto>@<host>:<port>
जैसे
lsof -i tcp@localhost:25
यह देखने के लिए कि पोर्ट लोकलहोस्ट 25 / टीसीपी पर कुछ भी सुनाई दे रहा है या नहीं
lsof -i tcp@0.0.0.0:636
यह देखने के लिए कि क्या कोई होस्ट या इंटरफ़ेस के लिए या तो स्थानीय (या स्थानीय) सुनने या (स्थानीय या दूरस्थ) से जुड़े सॉकेट हैं
आप उल्लेख नहीं करते हैं कि आप किस प्रोटोकॉल का उपयोग करना चाहते हैं, यानी टीसीपी या यूडीपी - और यह महसूस करना भी महत्वपूर्ण है कि "पोर्ट" काफी दानेदार नहीं है क्योंकि सिस्टम सॉकेट को अलग करने का समर्थन करता है। उदाहरण के लिए, यदि आपके सिस्टम में कई आईपी पते हैं, तो पोर्ट 80 सभी आईपी पते पर उपयोग में हो सकता है (या तो आवेदन "0.0.0.0" या "::" या उत्तराधिकार में प्रत्येक आईपी पते के लिए बाध्य है), या इसमें हो सकता है केवल उन IP पतों के सबसेट पर उपयोग करें।
एक पोर्ट / पता नि: शुल्क है और उपलब्ध है, यह निर्धारित करने का सबसे अच्छा, और पक्का तरीका, इसे बांधने का प्रयास करना है। नेटकट इसके लिए आसान है।
nc -l [-s abcd] -p NN
टीसीपी पोर्ट एनएन पर बांधने का प्रयास करेगा (वैकल्पिक, डिफ़ॉल्ट सभी पते होंगे) abcd-UDP में समान करने के लिए -u विकल्प जोड़ें।
अगला, यह बताने के लिए कि क्या पोर्ट वास्तव में "खुला" है जैसा कि आप पूछते हैं - आपको संभावित फ़ायरवॉल नियमों को देखना शुरू करना होगा। फिर से सबसे आसान काम पोर्ट से जुड़ने की कोशिश करना है। नेटकट को ऊपर, सर्वर पर, और क्लाइंट द्वारा आपके द्वारा खोले गए पोर्ट से कनेक्ट करने का प्रयास करने के लिए नेटकैट का उपयोग करें।
nc [-u] abcd एनएन
-U ध्वज निर्दिष्ट किया गया है, तो UDP का उपयोग करते हुए, abcd पर पोर्ट NN से कनेक्ट होगा। फिर आप क्लाइंट एंड में इनपुट टाइप कर सकते हैं, और इसे सर्वर पर दिखाना चाहिए। यदि ऐसा नहीं होता है, तो आपको सिस्टम और नेटवर्क विशिष्ट टूल पर ध्यान देने की आवश्यकता है।
यह वन-लाइनर आपको उपयोग में आने वाले सभी टीसीपी पोर्ट की एक सूची देगा। यह उबंटू और ओएस एक्स पर बैश में काम करता है।
netstat -ant | sed -e '/^tcp/ !d' -e 's/^[^ ]* *[^ ]* *[^ ]* *.*[\.:]\([0-9]*\) .*$/\1/' | sort -g | uniq
सूची में बिना किसी अतिरिक्त जानकारी के एक पोर्ट प्रति पंक्ति होगी।
for port in $(netstat -ant | sed -e '/^tcp/ !d' -e 's/^[^ ]* *[^ ]* *[^ ]* *.*[\.:]\([0-9]*\) .*$/\1/' | sort -g | uniq); do echo EXECUTE COMMAND FOR PORT $port; done
ऐसा करने के कई तरीकों ने मुझे समस्याएं दीं क्योंकि वे लिनक्स और ओएक्सएक्स पर काम नहीं करते थे, और / या क्योंकि वे डॉकटर द्वारा उपयोग किए जाने वाले पोर्ट, या प्रक्रियाएं नहीं दिखाते थे जो रूट के स्वामित्व में थे। अब मैं सिर्फ इस जावास्क्रिप्ट प्रोग्राम का उपयोग करता हूं:
(सुनिश्चित करें कि आपने नोड स्थापित किया है और यह node
न केवल के साथ काम करता हैnodejs
या तदनुसार कार्यक्रम को बदलता है)
check-port
अपने पथ या आपके प्रोजेक्ट में नामक फ़ाइल को निम्न सहेजें
#!/usr/bin/env node
var http = require('http');
var app = new http.Server();
app.listen(process.argv[2], () => {
process.exit(0)
});
अनुमतियाँ सेट करें
chmod +x path/to/check-port
अपने रास्ते से भागो
check-port 8080
या उसी निर्देशिका से चलते हैं
./check-port 8080
अब तक यह बहुत अच्छा काम कर रहा है।