सवाल विंडोज मशीन पर पोर्ट बंद होने पर कैसे जांचें?


विंडोज प्लेटफार्म पर, मुझे अपने स्थानीय मशीन पर एक बंदरगाह (उदाहरण के लिए 3306, उदाहरण के लिए) क्या जांचने के लिए मूल विकल्प हैं (जैसा कि localhost), अवरुद्ध किया जा रहा है?


91
2018-06-16 14:21


मूल


बस स्पष्ट करने के लिए, क्या आपका मतलब अवरुद्ध है, जैसा कि फ़ायरवॉल या गेटवे द्वारा अवरुद्ध है, या क्या आपका मतलब पहले से ही किसी अन्य चीज़ से उपयोग में है? - squillman
ऑडिट मेरे पीसी फ़ायरवॉल परीक्षण आपको बाहरी स्रोत से एक विशिष्ट बंदरगाह या बंदरगाहों की एक श्रृंखला का परीक्षण करने की अनुमति देता है। - Peter Stuer


जवाब:


चूंकि आप विंडोज मशीन पर हैं, इन चीजों को किया जा सकता है,

  • निम्न आदेश निष्पादित करें और ": 3306" श्रोता के लिए देखें (आपने यूडीपी / टीसीपी का उल्लेख नहीं किया है)। यह पुष्टि करेगा कि बंदरगाह पर कुछ चल रहा है।

    netstat -a -n

  • इसके बाद, यदि आप इस बंदरगाह पर आने वाले कनेक्शन की उम्मीद कर रहे हैं और महसूस करते हैं कि फ़ायरवॉल उन्हें अवरुद्ध कर सकता है, तो आप कर सकते हैं विंडोज फ़ायरवॉल लॉगिंग शुरू करें और गिराए गए कनेक्शन के लिए लॉग की जांच करें

    • विंडोज फ़ायरवॉल, उन्नत सेटिंग्स पर जाएं
    • "स्थानीय क्षेत्र कनेक्शन" के बगल में सेटिंग बटन पर क्लिक करें
    • "लॉग गिराए गए पैकेट" का चयन करें
    • लॉग फ़ाइल स्थान को देखें (यदि मौजूद नहीं है तो एक परिभाषित करें)
    • ओके पर क्लिक करें
    • अब, जब कनेक्शन प्रयास किया जाता है (माना जाता है कि यह कब किया जाता है), पोर्ट 3306 पर एक ड्रॉप के लिए लॉग फ़ाइल देखें।
    • यदि यह देखा जाता है, तो आप इस बंदरगाह के लिए अपवाद जोड़ना चाहेंगे।
  • फ़ायरवॉल स्थिति की जांच करने के लिए एक और कमांड है
    (विंडोज 7 उपयोगकर्ताओं के लिए अद्यतन - जैसा कि संदर्भित है Nick नीचे - उपयोग करें netsh advfirewall फ़ायरवॉल)

    नेटस् फ़ायरवॉल शो राज्य

    • यह अवरुद्ध बंदरगाहों के साथ-साथ अनुप्रयोग संघों के साथ सक्रिय श्रवण बंदरगाहों की सूची देगा
  • यह आदेश विंडोज फ़ायरवॉल कॉन्फ़िगरेशन विवरण को डंप करेगा

    नेटस् फ़ायरवॉल शो कॉन्फ़िगरेशन


अगर आपके पास लॉगिंग शुरू करने के बाद एक सक्रिय ब्लॉक है (आने वाले कनेक्शन फ़ायरवॉल द्वारा गिराए जा रहे हैं), तो आपको लॉग में देखना चाहिए।

यदि आप एक आवेदन / सेवा चला रहे हैं जो 3306 पर सुन रहा है, तो फ़ायरवॉल विन्यास इसे सक्षम होने के लिए दिखाना चाहिए। यदि यह नहीं देखा जाता है, तो आप शायद इस ऐप / सेवा को अनुमति देने के लिए फ़ायरवॉल के साथ अपवाद जोड़ना चूक गए हैं।

अंत में, पोर्ट 3306 आमतौर पर MySQL के लिए उपयोग किया जाता है। तो, मुझे लगता है कि आप इस विंडोज मशीन पर MySQL सर्वर चला रहे हैं। इसलिए आपको आने वाले कनेक्शन स्वीकार करने वाले 3306 के लिए श्रोता दिखाई देना चाहिए। यदि आप इसे नहीं देखते हैं, तो आपको पहले शुरू करने के लिए अपने एप्लिकेशन (MySQL) के साथ काम करने की आवश्यकता है।


100
2018-06-16 14:28



महान विवरण के लिए +1 - Sage
विंडोज विस्टा से शुरू करना "नेटस् फ़ायरवॉल" कमांड को बहिष्कृत किया गया है। यह आपको इसके बजाय "netsh advfirewall फ़ायरवॉल" और संदर्भ लेख का उपयोग करने की सलाह देता है go.microsoft.com/fwlink/?linkid=121488 - Nick DeVore
कमांड लाइन पर आउटपुट पार्स करने के लिए, जोड़ें |find "3306" आदेश के लिए, उदा। C:\Windows\System32>netstat -an |find "3306" - Cees Timmerman
मुझे दूसरी सिफारिश के चरण 2 में निर्दिष्ट सेटिंग बटन नहीं मिल रहा है ... - Bassie
@ बासी, कोशिश करो docs.microsoft.com/en-us/windows/access-protection/... - nik


NETSTAT पोर्ट आपको बताएगा कि आपको बताएगा सुनना लेकिन यह आपको नहीं बताएगा कि बंदरगाह है या नहीं खुला बाहरी दुनिया में। इसका मतलब यह है कि NETSTAT यह दिखा सकता है कि 0.0.0.0 पोर्ट 3306 पर सुन रहा है लेकिन फ़ायरवॉल अभी भी उस बंदरगाह को अवरुद्ध कर रहा है जो बाहरी कनेक्शन को रोक रहा है; तो यह भरोसा करने के लिए पर्याप्त नहीं है NETSTAT अकेला।

यह जांचने का सबसे अच्छा तरीका है कि पोर्ट बंद है या नहीं, क्लाइंट मशीन से पोर्ट स्कैन करना है। 

पोर्ट स्कैन करने के कई तरीके हैं लेकिन चूंकि आपने विंडोज़ पर होने का उल्लेख किया है, तो मैं माइक्रोसॉफ्ट कमांड लाइन यूटिलिटी का सुझाव दूंगा PortQry और ग्राफिकल संस्करण PortQryUI

सभी खुले बंदरगाहों का परीक्षण करने के लिए:

portqry.exe -n #.#.#.#   

एक विशिष्ट बंदरगाह का परीक्षण करने के लिए:

portqry.exe -n #.#.#.# -e #

उदाहरण के लिए 1 9 2.168.1.1 पर राउटर के वेब इंटरफ़ेस का परीक्षण करने के लिए:

portqry.exe -n 192.168.1.1 -e 80

कौन सा रिटर्न:

TCP port 80 (http service): LISTENING

जहां एक स्थानीय मशीन पर परीक्षण के साथ कोई HTTPD चल रहा रिटर्न नहीं है:

TCP port 80 (http service): NOT LISTENING

पोर्टस्केन उपयोगिता का उपयोग करके आपको 3 में से एक परिणाम मिलेगा।

  • Listening इसका मतलब है कि सर्वर निर्दिष्ट बंदरगाह पर सुन रहा है
  • Filtered इसका मतलब है कि इसे रीसेट ध्वज सेट के साथ एक टीसीपी पावती पैकेट प्राप्त हुआ है जो संभवतः फ़ायरवॉल या सॉफ़्टवेयर समस्या को इंगित करता है
  • Not Listening इसका मतलब है कि इसे बिल्कुल प्रतिक्रिया नहीं मिली

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

काम में लाना telnet आप कमांड प्रॉम्प्ट से निम्न आदेश जारी करेंगे:

telnet localhost 3306

उपरोक्त आदेश आपको बंदरगाह पर त्वरित संकेत देना चाहिए 3306 पर localhost जवाब दे रहा है


18
2018-04-04 00:47



मैं PortQryUI डाउनलोड करता हूं और मैंने जांच की है कि मैंने टीसीपी और udp दोनों में 445 बंदरगाह को अवरुद्ध और सक्षम किया है, यह टीसीपी में समान सुन रहा है और udp में नहीं सुन रहा है। - Liam neesan


चूंकि PowerShell 4.0 आप कमांड का उपयोग कर सकते हैं Test-NetConnection

यदि आप पोर्ट 3306 का परीक्षण करना चाहते हैं तो आपके उदाहरण में कमांड है

Test-NetConnection -ComputerName localhost -Port 3306

टेकनेट टेस्ट-नेटकनेक्शन प्रलेखन


8
2018-01-17 14:56



इसके लिए +1। वास्तव में एक अच्छा विकल्प है कि अधिकांश आधुनिक विंडोज मशीनों पर किसी भी चीज की स्थापना की आवश्यकता नहीं है। - DCaugs


यदि आप स्थानीय मशीन (बाहरी आईपी पते का उपयोग करके) से पोर्ट को टेलनेट कर सकते हैं, लेकिन किसी अन्य मशीन से नहीं - तो इसे कहीं के बीच अवरुद्ध किया जा रहा है।

ध्यान दें कि आपकी स्थानीय मशीन पर फ़ायरवॉल सकता है पहली कार्रवाई को भी रोकें।


5
2018-06-16 14:27



ध्यान दें कि Win7 और नए सिस्टम पर अब टेलनेट स्थापित नहीं किया जा रहा है। - Alexis Wilke
@AlexisWilke यह सही नहीं है। टेलनेट स्थापित किया जा सकता है - deepdive
कमांड लाइन से टेलनेट स्थापित करने के लिए: dism / online / enable-Feature / FeatureName: TelnetClient - Jason Massey