यदि कोई पोर्ट विंडोज सर्वर पर खुला है तो मैं कैसे निर्धारित करूं? [बन्द है]


478

मैं एक सर्वर पर एक वैकल्पिक पोर्ट के तहत एक साइट स्थापित करने की कोशिश कर रहा हूं, लेकिन पोर्ट फ़ायरवॉल द्वारा बंद हो सकता है। क्या एक विशिष्ट पोर्ट पर बाहर या अंदर पिंग करने का एक तरीका है, यह देखने के लिए कि क्या यह खुला है?


जवाबों:


732

मान लें कि यह एक टीसीपी (यूडीपी के बजाय) पोर्ट है जिसे आप उपयोग करने की कोशिश कर रहे हैं:

  1. सर्वर पर ही, netstat -anयह देखने के लिए उपयोग करें कि कौन से पोर्ट सुन रहे हैं।

  2. बाहर से, बस उपयोग telnet host port(या telnet host:portयूनिक्स सिस्टम पर) यह देखने के लिए कि क्या कनेक्शन अस्वीकार, स्वीकार या टाइमआउट है।

उस बाद के परीक्षण पर, फिर सामान्य तौर पर:

  • कनेक्शन से इनकार करने का मतलब है कि उस बंदरगाह पर कुछ भी नहीं चल रहा है
  • स्वीकृत का अर्थ है कि उस बंदरगाह पर कुछ चल रहा है
  • टाइमआउट का मतलब है कि फ़ायरवॉल पहुंच को रोक रहा है

विंडोज 7 या विंडोज विस्टा पर डिफ़ॉल्ट विकल्प 'टेलनेट' को आंतरिक या बाहरी कमांड, ऑपरेबल प्रोग्राम या बैच फ़ाइल के रूप में मान्यता नहीं दी जाती है। इसे हल करने के लिए, बस इसे सक्षम करें: क्लिक करें * प्रारंभ ** → नियंत्रण कक्षप्रोग्रामविंडोज सुविधाओं को चालू या बंद करें। सूची में, नीचे स्क्रॉल करें और टेलनेट क्लाइंट का चयन करें और क्लिक करें OK


312
Win7 या Vista डिफॉल ऑप्शन में 'telnet' को आंतरिक या बाहरी कमांड, ऑपरेबल प्रोग्राम या बैच फ़ाइल के रूप में मान्यता नहीं दी जाती है। इसे हल करने के लिए, बस इसे सक्षम करें: स्टार्ट, कंट्रोल पैनल, प्रोग्राम पर क्लिक करें, और फिर विंडोज सुविधाओं को चालू या बंद करें। सूची में, नीचे स्क्रॉल करें और टेलनेट क्लाइंट का चयन करें और ठीक क्लिक करें
Volody

12
@PankajKohli इसके बजाय PuTTy टेलनेट क्लाइंट का उपयोग करें। इसे स्थापित करने की आवश्यकता नहीं है।
कॉलिन पिकार्ड

52
क्या Could not open connection to the host, on port *x*: Connect failedसंकेत देता है?
केनी एविट

2
@Alnitak मैं अभी जाँच करना चाहता था क्योंकि मुझे लगता है कि यह पहले से ही मेरे प्रश्न का उत्तर देता है। जब मुझे यह telnet api-3t.sandbox.paypal.com 443मिल जाता Connecting to api-3t.sandbox.paypal.com...Could not open connection to the host on port 443: Connect failedहै, तो यह है क्योंकि फ़ायरवॉल इसे रोक रहा है?
पोपेई

2
यदि आप telnet.exe खोलते हैं और फिर o host portखुली कमांड लाइन (cmd.exe) टाइप करते हैं और फिर टाइप करते हैं तो एक अंतर होता हैtelnet host port
Pawel Cioch

185

विंडोज पर आप उपयोग कर सकते हैं

netstat -na | find "your_port"

परिणामों को कम करने के लिए। तुम भी के लिए फ़िल्टर कर सकते हैं LISTENING, ESTABLISHED, TCPऔर इस तरह के। हालांकि यह मामला संवेदनशील है।


4
आप इस तरह का उपयोग नहीं कर सकते, यह फाइलों की खोज में होगा, आपको grep का उपयोग करना चाहिए
Moataz Elmasry

38
@MoatazElmasry, यह लिनक्स पर सच है, लेकिन यह एक विंडोज सर्वर पर है, जहां खोज सही कमांड है। Grep विंडोज पर उपलब्ध नहीं है। मैंने यहां बताई गई सटीक कमांड को चलाया, और इसने पूरी तरह से काम किया।
बेन वायट

4
जब मैंने उस कमांड यानी netstat -an का उपयोग किया "19345" ढूंढें, मुझे कोई परिणाम नहीं मिला। इसका क्या मतलब है?
नैनोसॉफ्ट

14
findमेरे लिए विंडोज 10 में काम नहीं किया, लेकिन netstat -na | findstr "8080"काम किया
अरुण

6
कुछ भी नहीं होता है खोजने या findstr साथ नहीं
usefulBee

83

यदि आप बाहर से जाँच कर रहे हैं, सर्वर से ही नहीं, और आप टेलनेट को स्थापित करने से परेशान नहीं होना चाहते हैं (क्योंकि यह विंडोज के अंतिम संस्करणों के साथ नहीं आता है) या कोई अन्य सॉफ्टवेयर, तो आपके पास मूल पावरशेल है:

Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed

(दुर्भाग्य से यह केवल PowerShell 4.0 या नए के साथ काम करता है। अपने PowerShell संस्करण की जांच करने के लिए, टाइप करें $PSVersionTable।)

पुनश्च: ध्यान दें, इन दिनों ट्विटर्सफेयर पर कुछ दावे हैं जो संकेत देते हैं कि पावरस्ले कोर से "टेस्ट-कनेक्शन" या शॉर्टकट "tnc" का उल्लेख करके इस उत्तर को बेहतर बनाया जा सकता है। Https://twitter.com/david_obrien/status/1214082339203993600 देखें और कृपया इसे बेहतर बनाने के लिए इस उत्तर को संपादित करने में मेरी मदद करें!


(यदि आपके पास PSVersion <4.0 है, तो आप भाग्य से बाहर हैं। इस तालिका को देखें:

यहां छवि विवरण दर्ज करें

भले ही आप Windows प्रबंधन फ्रेमवर्क 4.0 को स्थापित करके PowerShell के अपने संस्करण को अपग्रेड कर सकते हैं , लेकिन इसने मेरे लिए ट्रिक नहीं किया, टेस्ट-नेटकॉन्फेक्शन cmdlet अभी भी उपलब्ध नहीं है)।


3
यह सबसे अच्छा जवाब है। टेलनेट स्थापित करना हमेशा अन्य लोगों के सर्वरों पर सीधे-आगे नहीं होता है!
ट्रोजननाम

निश्चित रूप से सबसे अच्छा जवाब होना चाहिए।
QtRoS

1
यह टेलनेट की तुलना में अधिक विश्वसनीय विकल्प है, टेलनेट सिर्फ कुछ भी रिपोर्ट नहीं करेगा जबकि यह रिपोर्ट करता है कि पोर्ट मेरे मामले में उपलब्ध है।
कुल्हाड़ी

42

Windows मशीन पर आप Microsoft से पोर्ट क्यूरी का उपयोग कर सकते हैं यह जांचने के लिए कि क्या कोई एप्लिकेशन पहले से ही एक विशिष्ट पोर्ट पर निम्न कमांड का उपयोग कर सुन रहा है:

portqry -n 11.22.33.44 -p tcp -e 80

4
फ़ायरवॉल पोर्ट आमतौर पर "फ़िल्टर" के रूप में दिखाई देंगे।
dlanod

आप UDP पोर्ट की जांच करने के लिए इस उपकरण का उपयोग कर सकते हैं:portqry -n 11.22.33.44 -p udp -e 19132
एंटनी

41

मुझे यह पसंद आया:

netstat -an | find "8080" 

टेलनेट से

telnet 192.168.100.132 8080

और यह सुनिश्चित करें कि फ़ायरवॉल उस मशीन पर बंद है।


जब मैंने उस कमांड यानी netstat -an का उपयोग किया "19345" ढूंढें, मुझे कोई परिणाम नहीं मिला। इसका क्या मतलब है? -
नैनोसॉफ्ट

2
इसका मतलब है कि यह बंदरगाह मुफ्त है
सरवर निसानबोव

जब मैं netstat -an | find "8080"इसे चलाता हूं तो मुझे एक त्रुटि मिलती है ,no such file named "8080"
प्रज्ञादित्य दास

24

यदि telnetउपलब्ध नहीं है, तो PuTTY डाउनलोड करें । यह एक बहुत ही बेहतर टेलनेट, एसएसएच, आदि क्लाइंट है और कई स्थितियों में उपयोगी होगा, न केवल यह एक है, खासकर यदि आप एक सर्वर का संचालन कर रहे हैं।


हां, लेकिन फोर्थ कोड चिपकाने के लिए नहीं, AmForth के साथ कहें (जब तक कि ओवरफ्लो के साथ संयोजन में PuTTY का उपयोग नहीं किया जाता है )।
पीटर मोर्टेंसन

13

क्या आप इसे करने के लिए एक उपकरण चाहते हैं? Http://www.canyouseeme.org/ पर एक वेबसाइट है । अन्यथा, आपको किसी अन्य सर्वर की आवश्यकता है ताकि आपको यह देखने के लिए कॉल किया जा सके कि क्या पोर्ट खुला है ...


12

यदि आप Windows सर्वर पर सभी उपयोग किए गए और सुनने वाले पोर्ट देखना चाहते हैं, तो इसका उपयोग करें:

netstat -an |find /i "listening"

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

netstat -a

7

विंडोज सर्वर पर आप उपयोग कर सकते हैं

netstat -an | where{$_.Contains("Yourport")}

किसी भी तरह से फ़ायरवॉल समस्या को संबोधित नहीं करता है।
लोर्ने का मैरियट

5
यह पॉवरशेल पर काम करता है
पाको ज़राटे

या क्या आपका मतलब है "एक विंडोज सर्वर"?
पीटर मोर्टेंसन



1

यहाँ मेरे लिए क्या काम किया गया है:

  • एक कमांड प्रॉम्प्ट खोलें
  • प्रकार telnet
  • Microsoft टेलनेट> ओपन <होस्ट नाम या आईपी एड्रेस> <स्पेस> <पोर्ट>

यह पुष्टि करेगा कि पोर्ट खोला गया है या नहीं।


0

एक और उपयोगिता जो मुझे मिली और अच्छी और छोटी है, वह है पोर्टक्यूरी कमांड लाइन पोर्ट स्कैनर संस्करण 2.0

आप एक सर्वर और एक पोर्ट को पिंग कर सकते हैं और यह आपको पोर्ट की स्थिति बताएगा। इसके लिए एक कमांड-लाइन उपयोगिता और एक यूआई है।

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