यदि कोई पोर्ट लिनक्स सर्वर पर सुन रहा है तो मैं कैसे जांच सकता हूं?
netstat -an | grep PORTNUMBER | grep -i listen
यदि आउटपुट खाली है, तो पोर्ट उपयोग में नहीं है।
यदि कोई पोर्ट लिनक्स सर्वर पर सुन रहा है तो मैं कैसे जांच सकता हूं?
netstat -an | grep PORTNUMBER | grep -i listen
यदि आउटपुट खाली है, तो पोर्ट उपयोग में नहीं है।
जवाबों:
आप देख सकते हैं कि क्या कोई प्रक्रिया टीसीपी या यूडीपी पोर्ट पर सुनती है netstat -tuplen
।
यह जांचने के लिए कि क्या कुछ पोर्ट बाहर से सुलभ हैं (यह संभवतः आप क्या चाहते हैं) आप किसी अन्य सिस्टम से नैंप जैसे पोर्ट स्कैनर का उपयोग कर सकते हैं । उसी होस्ट पर नैंप चलाना जो आप जांचना चाहते हैं, वह आपके उद्देश्य के लिए काफी बेकार है।
-t
, -u
, -p
, -l
, -e
और, -n
। विकल्प पार्सर के लिए धन्यवाद इसे व्यक्त किया जा सकता है -tuplen
। linux.die.net/man/8/netstat
telnet
कमांड आमतौर पर केवल टीसीपी का समर्थन करता है, इसलिए यदि आप जिस सेवा को किसी अन्य प्रोटोकॉल पर चलाना चाहते हैं, तो आप भाग्य से बाहर हैं।
sudo netstat -tuplen
:। यह आपको न केवल आपके द्वारा, बल्कि दूसरों के स्वामित्व वाली प्रक्रियाओं को भी देगा, और, यदि वे पहले से ही गैर-रूट उपयोगकर्ता के रूप में प्रदर्शित नहीं होते हैं, तो यह अतिरिक्त विवरण (जैसे पीआईडी / प्रोग्राम नाम) मुद्रित करेगा।
अगर टीसीपी पोर्ट खुला है (आपके पास कोई भी हार्डवेयर फायरवॉल हो सकता है) टेस्ट करने का सबसे आसान तरीका, एक दूरस्थ कंप्यूटर (जैसे आपका डेस्कटॉप) से टाइप करना है:
telnet myserver.com 80
जो उस सर्वर पर पोर्ट 80 के लिए कनेक्शन खोलने की कोशिश करेगा। यदि आपको कोई समय मिलता है या अस्वीकार किया जाता है, तो पोर्ट खुला नहीं है :)
if you get a time out or deny, the port is not open
ठीक है, सारांश में, आपके पास एक सर्वर है जिसे आप लॉग इन कर सकते हैं। आप देखना चाहते हैं कि कुछ पोर्ट पर कुछ सुन रहा है या नहीं। रूट के रूप में, चलाएं:
netstat -nlp
यह टीसीपी और यूडीपी बंदरगाहों पर सुनने वाली प्रक्रियाओं की एक सूची दिखाएगा। जिस प्रक्रिया में आप रुचि रखते हैं, और / या आपके द्वारा देखे जाने वाले पोर्ट नंबर के लिए आप इसे (या grep) स्कैन कर सकते हैं।
यदि आपके द्वारा अपेक्षित प्रक्रिया नहीं है, तो आपको उस प्रक्रिया को शुरू करना चाहिए और नेटस्टैट को फिर से जांचना चाहिए। यदि प्रक्रिया है, लेकिन यह एक इंटरफ़ेस और पोर्ट पर सुन रहा है जिसकी आपको उम्मीद नहीं थी, तो एक कॉन्फ़िगरेशन समस्या है (उदाहरण के लिए, यह सुन सकता है, लेकिन केवल लूपबैक इंटरफ़ेस पर, इसलिए आपको 127.0.0.1:3306 और दिखाई देगा पोर्ट 3306 के लिए कोई अन्य लाइनें, MySQL के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन के मामले में)।
यदि प्रक्रिया जारी है, और यह आपके द्वारा अपेक्षित पोर्ट पर सुन रहा है, तो आप अपने कार्यालय / घर, जैसे कि मैकबुक से उस पोर्ट पर "टेलनेट" चलाने की कोशिश कर सकते हैं, जैसे;
telnet xxxxxxxxxxxx.co.uk 443
यह परीक्षण करेगा कि क्या (मानक बंदरगाहों को मानते हुए) SSL के लिए एक वेब सर्वर कॉन्फ़िगर किया गया है। ध्यान दें कि टेलनेट का उपयोग करने वाला यह परीक्षण केवल तभी काम करेगा जब प्रक्रिया टीसीपी पोर्ट पर सुन रही हो। यदि यह एक यूडीपी पोर्ट है, तो आप इसे कनेक्ट करने के लिए जो भी क्लाइंट इस्तेमाल करने जा रहे हैं, उसके साथ ही कोशिश कर सकते हैं। (मैं देख रहा हूं कि आपने 224 पोर्ट का इस्तेमाल किया था। यह मसकडियलर है, और मुझे नहीं पता कि यह क्या है)।
यदि सेवा है, लेकिन आप इसे बाहरी रूप से प्राप्त नहीं कर सकते हैं, तो एक फ़ायरवॉल आपको अवरुद्ध कर रहा है। उस स्थिति में, भागो:
iptables -L -n
यह आपके सिस्टम पर परिभाषित सभी फ़ायरवॉल नियम दिखाएगा। आप पोस्ट कर सकते हैं, लेकिन, आम तौर पर, यदि आप INPUT श्रृंखला पर सब कुछ नहीं होने दे रहे हैं, तो आपको संभवतः पोर्ट पर प्रश्न में स्पष्ट रूप से ट्रैफ़िक की अनुमति देने की आवश्यकता होगी:
iptables -I INPUT -p tcp --dport 224 -j ACCEPT
या उनके जैसे की कुछ और। इंटरनेट पर किसी अजनबी ने आपको जो बताया है, उसके आधार पर अपने फ़ायरवॉल कमांड को अंधाधुंध न चलाएं। गौर कीजिए कि आप क्या कर रहे हैं।
यदि बॉक्स पर आपका फ़ायरवॉल आपके इच्छित ट्रैफ़िक की अनुमति दे रहा है, तो आपकी होस्टिंग कंपनी फ़ायरवॉल चला सकती है (जैसे, वे केवल SSH (22 / tcp), HTTP (80 / tcp) और HTTPS (443 / tcp) की अनुमति दे रहे हैं और आने वाले सभी ट्रैफिक को नकारना)। इस मामले में, आपको इस मुद्दे को हल करने के लिए उनके साथ एक हेल्पडेस्क टिकट खोलने की आवश्यकता होगी, हालांकि मुझे लगता है कि आपके cPanel में कुछ हो सकता है जो इसे अनुमति दे सकता है।
मैं कॉम्बो का उपयोग करता हूं netstat
और lsof
:
netstat -an | grep <portnumber>
lsof -i:<portnumber>
यह देखने के लिए कि क्या पोर्ट का उपयोग किया जा रहा है, और इसका उपयोग क्या है।
यदि आप सिस्टम से जुड़े हैं और रूट के रूप में कमांड चला सकते हैं तो आप iptables का आउटपुट चेक कर सकते हैं
iptables -L -vn
यह फ़ायरवॉल नियमों को सूचीबद्ध करेगा और कौन से पोर्ट खुले लक्ष्य ACCEPT
और किसी भी स्पष्ट रूप से बंद पोर्ट लक्ष्य हैं REJECT
।
firewall-cmd --query-port=port/protocol
, जैसे firewall-cmd --query-port=80/tcp
।
lsof -i :ssh
ssh पोर्ट ओपन, दोनों सुनने और सक्रिय कनेक्शन के साथ सभी प्रक्रियाओं को सूचीबद्ध करेगा।
sudo
यदि यह किसी भी आउटपुट को वापस नहीं करता है।