यह पोर्ट कौन सा प्रोग्राम इस्तेमाल कर रहा है?
सर्वर पोर्ट 8080 पर शुरू नहीं होता, या कोई टेस्ट "address already in use" के साथ रुक जाता है। या तो पोर्ट पर पहले से कोई प्रोग्राम है, या Windows ने उसे अलग रख लिया है, और दोनों त्रुटियाँ एक जैसी दिखती हैं। इन्हें अलग पहचानने का तरीका यह है।
पोर्ट न खुलने के दो कारण
| क्या हुआ | कैसे दिखता है | क्या करें |
|---|---|---|
| कोई प्रोग्राम पोर्ट रोके है | त्रुटि बताती है कि पता पहले से उपयोग में है (EADDRINUSE, या Windows त्रुटि 10048)। प्रोग्राम सॉकेट सूची में दिखता है। | उस प्रोग्राम को बंद करें, या कोई दूसरा पोर्ट चुनें। |
| Windows ने पोर्ट आरक्षित कर रखा है | त्रुटि बताती है कि पहुँच वर्जित है (Windows त्रुटि 10013), जबकि कुछ भी सुन नहीं रहा। सूची में कोई प्रोग्राम नहीं दिखता। | आरक्षित सीमा के बाहर का पोर्ट चुनें, या उस सीमा को मुक्त करें। WinNAT सेवा को फिर से शुरू करना अक्सर काफ़ी होता है। |
जो Windows में पहले से है, उससे
सॉकेट सूची मालिक को प्रोसेस ID के रूप में दिखाती है। पहले पोर्ट खोजें, फिर ID:
netstat -ano | findstr :8080
tasklist /fi "PID eq 4321"
यही PowerShell में, TCP और UDP दोनों के लिए:
Get-NetTCPConnection -LocalPort 8080 | Select-Object LocalAddress, State, OwningProcess
Get-NetUDPEndpoint -LocalPort 5353 | Select-Object LocalAddress, OwningProcess
Get-Process -Id 4321
अगर कोई प्रोग्राम पोर्ट नहीं रोके है, तो पूछें कि Windows ने कौन सी सीमाएँ अलग रखी हैं:
netsh int ipv4 show excludedportrange protocol=tcp
इसे protocol=udp के साथ फिर चलाएँ। सीमाएँ हर प्रोटोकॉल के लिए अलग रखी जाती हैं, इसलिए कोई पोर्ट UDP के लिए खाली और TCP के लिए आरक्षित हो सकता है।
Tools टैब से
Tools टैब इन्हीं सवालों के जवाब कंसोल के बिना देता है:
- Sockets कंप्यूटर के हर TCP और UDP सॉकेट की सूची देता है,
netstat -anoकी तरह: क्या सुन रहा है, क्या जुड़ा है, उसकी स्थिति और उसका मालिक प्रोग्राम। इसके लिए सेशन ज़रूरी नहीं।lport:8080याstate:listenसे खोजें। - Port check वही पूछता है जो आपके सर्वर ने पूछा था: क्या कोई प्रोग्राम यह पोर्ट इस्तेमाल कर सकता है? 8080 लिखें,
80, 443जैसी सूची या9000-9100जैसी सीमा (अधिकतम 1000 पोर्ट) दें और Check दबाएँ। हर पोर्ट को TCP और UDP के लिए, IPv4 और IPv6 पर आज़माया जाता है और Free, In use (प्रोग्राम और उसके PID के साथ) या Reserved by Windows चिह्नित किया जाता है।
इसीलिए जवाब हाँ या ना नहीं, एक तालिका है: Windows सीमाएँ हर प्रोटोकॉल के लिए अलग आरक्षित करता है, और IPv6 पर सुन रहा प्रोग्राम ऐसा पोर्ट रोके रख सकता है जो IPv4 पर खाली है।
नेटवर्क पर कुछ नहीं भेजा जाता। हर पोर्ट के लिए टूल कंप्यूटर के अपने लूपबैक पते पर Windows से उसे माँगता है और तुरंत लौटा देता है।
जब पता चल जाए कि किसके पास है
पोर्ट रोकने वाले प्रोग्राम को लक्ष्य बनाने के लिए किसी भी तालिका की पंक्ति पर राइट-क्लिक करें। इससे केवल लक्ष्य वाला खाना भरता है, और जब तक आप START नहीं दबाते, कुछ नहीं बदलता। आगे का रास्ता एक ऐप को निशाना बनाना में है।
यह क्या नहीं करता
यह केवल पढ़ता है, ठीक नहीं करता: न कभी किसी प्रोग्राम को बंद करता है, न आरक्षित सीमा को मुक्त करता है। किसी दूसरे खाते का सॉकेट प्रोग्राम नहीं दिखाता, जब तक टूल एडमिनिस्ट्रेटर के रूप में न चले।