क्या विंडोज कमांड लाइन से एक विशिष्ट पोर्ट की स्थिति की जांच करने का एक तरीका है? मुझे पता है कि मैं सभी बंदरगाहों की जांच करने के लिए netstat का उपयोग कर सकता हूं लेकिन netstat धीमा है और एक विशिष्ट बंदरगाह को देख रहा है जो शायद नहीं है।
क्या विंडोज कमांड लाइन से एक विशिष्ट पोर्ट की स्थिति की जांच करने का एक तरीका है? मुझे पता है कि मैं सभी बंदरगाहों की जांच करने के लिए netstat का उपयोग कर सकता हूं लेकिन netstat धीमा है और एक विशिष्ट बंदरगाह को देख रहा है जो शायद नहीं है।
जवाबों:
यहां जानिए पोर्ट खोजने का आसान उपाय ...
Cmd में:
netstat -na | find "8080"
बैश में:
netstat -na | grep "8080"
PowerShell में:
netstat -na | Select-String "8080"
-o
ध्वज (अर्थात -nao
यहां) का उल्लेख करने के लायक है ।
आप झंडे और कमांड या कमांड netstat
के साथ -np
एक पाइप का उपयोग कर सकते हैं ।find
findstr
मूल उपयोग इस प्रकार है:
netstat -np <protocol> | find "port #"
उदाहरण के लिए टीसीपी पर पोर्ट 80 की जांच करने के लिए, आप यह कर सकते हैं: netstat -np TCP | find "80"
जो निम्न प्रकार का आउटपुट देता है:
TCP 192.168.0.105:50466 64.34.119.101:80 ESTABLISHED
TCP 192.168.0.105:50496 64.34.119.101:80 ESTABLISHED
जैसा कि आप देख सकते हैं, यह केवल टीसीपी प्रोटोकॉल के लिए पोर्ट 80 पर कनेक्शन दिखाता है।
मैं उपयोग करता हूं:
netstat –aon | find "<port number>"
यहाँ ओ प्रक्रिया आईडी का प्रतिनिधित्व करता है। अब आप प्रक्रिया आईडी के साथ जो कुछ भी कर सकते हैं। उदाहरण के लिए, प्रक्रिया को समाप्त करने के लिए:
taskkill /F /pid <process ID>
जब मुझे WAMP अपाचे के साथ समस्या होती है, तो मैं इस कोड का उपयोग करता हूं कि यह पता लगाएं कि कौन सा प्रोग्राम पोर्ट 80 का उपयोग कर रहा है।
netstat -o -n -a | findstr 0.0:80
3068
पीआईडी है, इसलिए मैं इसे टास्क मैनेजर से ढूंढ सकता हूं और उस प्रक्रिया को रोक सकता हूं।
जैसा कि कहीं और उल्लेख किया गया है: उपयुक्त स्विच के साथ, नेटस्टैट का उपयोग करें, और फिर परिणामों को फ़िल्टर करें [str] के साथ
सबसे बुनियादी:
netstat -an | find ":N"
या
netstat -a -n | find ":N"
एक विदेशी बंदरगाह खोजने के लिए जिसका आप उपयोग कर सकते हैं:
netstat -an | findstr ":N[^:]*$"
आप उपयोग कर सकते हैं एक स्थानीय बंदरगाह खोजने के लिए:
netstat -an | findstr ":N.*:[^:]*$"
जहां N वह पोर्ट नंबर है जिसमें आप रुचि रखते हैं।
-n
सुनिश्चित करता है कि सभी पोर्ट संख्यात्मक होंगे, अर्थात सेवा नामों में अनुवादित नहीं।
-a
यह सुनिश्चित करेगा कि आप सभी कनेक्शन खोजें (टीसीपी, यूडीपी, सुन ...)
में find
स्ट्रिंग आप बंदरगाह क्वालीफायर के रूप में, नहीं तो संख्या या तो स्थानीय या विदेशी पतों का मिलान कर सकते हैं, पेट के शामिल करना चाहिए।
आप आवश्यक के रूप में अन्य netstat स्विच का उपयोग करके खोज को और संकीर्ण कर सकते हैं ...
आगे पढ़ने (^ 0 ^)
netstat /?
find /?
findstr /?
netstat -a -n | find /c "10.240.199.9:8080"
यह आपको एक विशिष्ट आईपी और पोर्ट (सर्वर पोर्ट नंबर) पर सक्रिय सॉकेट की संख्या देगा
FIND: Parameter format not correct
विंडोज 8 यूजर के लिए: ओपन कमांड प्रॉम्प्ट, टाइप करें netstat -an | "अपना पोर्ट नंबर" ढूंढें , दर्ज करें।
यदि उत्तर LISTENING की तरह आता है, तो पोर्ट उपयोग में है, अन्यथा यह मुफ़्त है।
@ EndUzr की प्रतिक्रिया में सुधार करने के लिए :
एक विदेशी पोर्ट (IPv4 या IPv6) खोजने के लिए आप इसका उपयोग कर सकते हैं:
netstat -an | findstr /r /c:":N [^:]*$"
स्थानीय पोर्ट (IPv4 या IPv6) खोजने के लिए आप इसका उपयोग कर सकते हैं:
netstat -an | findstr /r /c:":N *[^ ]*:[^ ]* "
जहाँ N वह पोर्ट संख्या है जिसमें आप रुचि रखते हैं। "/ r" स्विच इसे regexp के रूप में संसाधित करने के लिए कहता है। "/ C" स्विच खोज को स्ट्रिंग स्ट्रिंग सीमांकक के रूप में एक स्थान के उपचार के बजाय खोज स्ट्रिंग के भीतर रिक्त स्थान शामिल करने की अनुमति देता है। यह जोड़ा गया स्थान लंबे बंदरगाहों को गलत व्यवहार करने से रोकता है - उदाहरण के लिए, ": 80" बनाम ": 8080" और अन्य पोर्ट मुंगिंग मुद्दे।
उदाहरण के लिए, स्थानीय RDP सर्वर को दूरस्थ कनेक्शन सूचीबद्ध करने के लिए:
netstat -an | findstr /r /c:":3389 *[^ ]*:[^ ]*"
या यह देखने के लिए कि आपका DNS कौन छू रहा है:
netstat -an | findstr /r /c:":53 *[^ ]*:[^ ]*"
यदि आप स्थानीय-केवल बंदरगाहों को बाहर करना चाहते हैं, तो आप "/ v" के साथ अपवादों की एक श्रृंखला का उपयोग कर सकते हैं और बैकड्रॉप के साथ वर्णों से बच सकते हैं:
netstat -an | findstr /v "0.0.0.0 127.0.0.1 \[::\] \[::1\] \*\:\*" | findstr /r /c:":80 *[^ ]*:[^ ]*"
पोर्ट 80 के लिए, कमांड होगी: netstat -an | पोर्ट एन के लिए "80" ढूंढें, कमांड होगी: netstat -an | "n" ढूंढें
यहाँ, netstat आपके मशीन को निर्देश है
-a: सभी कनेक्शन और श्रवण पोर्ट दिखाता है -n: संख्यात्मक प्रारूप में सभी पते और निर्देशों को प्रदर्शित करता है (यह आवश्यक है क्योंकि -a से आउटपुट में मशीन नाम शामिल हो सकते हैं)
फिर, पिछले कमांड के आउटपुट "पैटर्न मैच" के लिए एक कमांड खोजें।
RHEL 7 में, मैं इस कमांड का उपयोग लिस्टेन स्टेट में कई पोर्ट्स को फिल्टर करने के लिए करता हूं:
sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'
यह आदेश सभी बंदरगाहों और उनके गंतव्य पते को दिखाएगा:
netstat -f
Lsof कमांड "lsof -i tcp: port #" का प्रयोग करें, यहाँ एक उदाहरण है।
$ lsof -i tcp:1555
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 27330 john 121u IPv4 36028819 0t0 TCP 10.10.10.1:58615->10.10.10.10:livelan (ESTABLISHED)
java 27330 john 201u IPv4 36018833 0t0 TCP 10.10.10.1:58586->10.10.10.10:livelan (ESTABLISHED)
java 27330 john 264u IPv4 36020018 0t0 TCP 10.10.10.1:58598->10.10.10.10:livelan (ESTABLISHED)
java 27330 john 312u IPv4 36058194 0t0 TCP 10.10.10.1:58826->10.10.10.10:livelan (ESTABLISHED)
netstat
केवल तभी धीमा है जब आप-n
स्विच का उपयोग नहीं करते हैं , जिसका अर्थ है कि इसे बहुत सारे DNS लुकअप करने होंगे।