पुराने netstat को कहें अलविदा

परिदृश्य एवं पृष्ठभूमि

आधुनिक लिनक्स परिवेश में नेटवर्क संबंधी समस्याओं के निवारण और सर्वर प्रशासन के लिए सॉकेट स्थिति की सटीक जानकारी होना अनिवार्य है। यह मार्गदर्शिका पारंपरिक netstat टूल के आधुनिक मानक विकल्प के रूप में स्थापित ss (सॉकेट स्टैटिस्टिक्स) कमांड के व्यावहारिक उपयोग पर केंद्रित है। इसके माध्यम से हम सिस्टम में सक्रिय लिसनिंग पोर्ट्स, चालू नेटवर्क कनेक्शन्स और संबंधित प्रोसेस विवरणों को त्वरित गति से ट्रैक करने की प्रक्रिया को विस्तार से समझेंगे।

1. ss कमांड की तैयारी और समग्र सॉकेट सांख्यिकी का अवलोकन

Ubuntu सर्वर पर सॉकेट निरीक्षण उपकरण उपलब्ध कराने के लिए iproute2 सुइट का होना आवश्यक है। निम्न कमांड निष्पादित करके रिपॉजिटरी अपडेट करें और सुनिश्चित करें कि आवश्यक पैकेज सिस्टम में संस्थापित है:

iproute2 पैकेज का अद्यतनीकरण और अधिष्ठापन

लिनक्स कर्नेल स्पेस से सीधे डेटा एकत्र करने के कारण ss यूटिलिटी पारंपरिक टूल्स की तुलना में कहीं अधिक तेज़ परिणाम देती है। संपूर्ण सिस्टम के स्तर पर सॉकेट गतिविधियों का त्वरित सारांश प्राप्त करने के लिए -s फ्लैग का उपयोग किया जाता है।
⚙️ [महत्वपूर्ण कमांड विकल्प]

-s : सभी श्रेणियों (TCP, UDP, RAW आदि) के सॉकेट का एकीकृत सांख्यिकीय सारांश प्रदर्शित करता है।
-t : आउटपुट को केवल TCP आधारित संचार तक सीमित करता है।
-u : केवल UDP ट्रैफिक और सॉकेट्स की जानकारी निकालता है।
-l : इनकमिंग कनेक्शन की प्रतीक्षा कर रहे लिसनिंग (LISTEN) सॉकेट्स को सूचीबद्ध करता है।
-a : लिसनिंग और सक्रिय रूप से स्थापित सभी (All) सॉकेट्स का व्यापक दृश्य दिखाता है।
-n : डोमेन या सर्विस नामों को रिज़ॉल्व किए बिना संख्यात्मक (Numeric) IP और पोर्ट मान प्रस्तुत करता है।
-p : संबंधित सॉकेट से जुड़े ऑपरेटिंग सिस्टम प्रोसेस का नाम और उसकी PID दर्शाता है।

ss -s सारांश आउटपुट

2. वेब सर्वर सेटअप और लिसनिंग TCP पोर्ट्स की पड़ताल

नेटवर्क पोर्ट व्यवहार का प्रत्यक्ष परीक्षण करने के लिए, हम Nginx वेब सर्वर को इंस्टॉल करके उसकी बैकग्राउंड सर्विस सक्रिय करेंगे:

Nginx संस्थापन और सेवा आरंभ

बाहरी अनुरोधों की प्रतीक्षा कर रहे TCP सॉकेट्स की जांच के लिए ss -tl कमांड का प्रयोग किया जाता है। यह कमांड मानक सेवा नामों (जैसे http, ssh अथवा domain) के साथ ओपन पोर्ट्स की सूची देता है। नीचे दिए गए परिणाम में स्पष्ट है कि Nginx सर्विस पोर्ट 80 (http) पर सुचारू रूप से लिसन मोड में आ चुकी है।

ss -tl लिसनिंग सॉकेट परिणाम

सेवा नामों के स्थान पर स्पष्ट संख्यात्मक पोर्ट मान देखने हेतु -n विकल्प जोड़कर ss -tln चलाएं। यह DNS या /etc/services लुकअप को दरकिनार करते हुए http के बदले 80 तथा ssh के बदले 22 जैसे स्पष्ट पोर्ट नंबर दिखाता है, जिससे तकनीकी ऑडिटिंग अधिक सटीक हो जाती है।

ss -tln संख्यात्मक आउटपुट

3. पोर्ट के साथ संबद्ध प्रोसेस (PID एवं प्रोग्राम नाम) की पहचान

लिसनिंग अवस्था में मौजूद सॉकेट्स के पीछे सक्रिय एप्लिकेशन को ट्रैक करने के लिए ss -tlp कमांड अत्यंत कारगर है। परिणाम के Process कॉलम में संबंधित प्रक्रिया का नाम और उसका प्रोसेस आइडेंटिफ़ायर (PID) प्रदर्शित होता है, जिससे यह साफ पहचाना जा सकता है कि पोर्ट Nginx या systemd से संबंधित डेमन द्वारा अधिग्रहित है।

ss -tlp प्रोसेस मैपिंग

सिस्टम एडमिनिस्ट्रेटर आमतौर पर ss -tulpn संयोजन का सर्वाधिक उपयोग करते हैं। यह एक ही कमांड में TCP और UDP दोनों प्रकार के सभी लिसनिंग पोर्ट्स को संख्यात्मक प्रारूप और प्रोसेस ओनरशिप सहित प्रदर्शित कर देता है। इसके जरिए Nginx (पोर्ट 80), SSH (पोर्ट 22) अथवा DNS रिज़ॉल्वर (पोर्ट 53) जैसे महत्वपूर्ण नेटवर्किंग घटकों का त्वरित ऑडिट संभव हो जाता है।

ss -tulpn संपूर्ण लिसनिंग विश्लेषण

4. सक्रिय नेटवर्क कनेक्शन्स की निगरानी और लक्षित पोर्ट फ़िल्टरिंग

सक्रिय नेटवर्क अवस्था उत्पन्न करने और पैकेट ट्रांसमिशन का परीक्षण करने के उद्देश्य से, हम curl का उपयोग करके लोकलहोस्ट पर एक डमी वेब रिक्वेस्ट भेजेंगे:

curl पैकेज और लोकलहोस्ट अनुरोध

निष्पादित अनुरोध के पश्चात सॉकेट की समग्र अवस्था देखने के लिए ss -ta चलाएं। यह न केवल लिसनिंग सॉकेट्स को सामने लाता है, बल्कि ट्रांसमिशन पूरा होने के बाद क्लोजर की प्रतीक्षा कर रहे TIME-WAIT जैसे अल्पकालिक सॉकेट्स को भी सूचिबद्ध करता है। स्क्रीनशॉट में हम 127.0.0.1:http के लिए बना अस्थायी TIME-WAIT सॉकेट देख सकते हैं।

ss -ta सभी टीसीपी सॉकेट्स

विशेष रूप से सक्रिय डेटा आदान-प्रदान वाले सत्रों को अलग करने के लिए स्टेट फ़िल्टर का प्रयोग किया जाता है। ss -t state established कमांड केवल उन कनेक्शन्स को स्क्रीन पर लाती है जो सक्रिय ESTABLISHED स्थिति में हैं। चूँकि पूर्ववर्ती कर्ल रिक्वेस्ट तुरंत समाप्त हो चुकी थी, इसलिए कोई जीवित सत्र सूची में प्रदर्शित नहीं होता।

ss -t state established सक्रिय सत्र फ़िल्टर

सैकड़ों खुले सॉकेट्स में से किसी विशेष सेवा को तलाशने के लिए सोर्स पोर्ट फ़िल्टरिंग एक बेहतरीन तकनीक है। ss -tln 'sport = :80' कमांड का प्रयोग करके केवल स्थानीय 80 नंबर पोर्ट पर केंद्रित लिसनिंग TCP सॉकेट को तुरंत अलग किया जा सकता है। इससे बड़े पैमाने के सर्वर्स पर Nginx वेब ट्रैफिक पोर्ट की स्थिति जांचना बेहद सुगम हो जाता है।

ss -tln sport फ़िल्टर

इस प्रकार हमने Ubuntu ऑपरेटिंग सिस्टम पर अप्रचलित netstat के स्थान पर शक्तिशाली ss कमांड द्वारा पोर्ट्स, सॉकेट्स और संबंधित प्रक्रियाओं के विश्लेषण की व्यावहारिक विधियों का अध्ययन किया। अपने दैनिक सर्वर प्रबंधन, सुरक्षा ऑडिटिंग और नेटवर्क ट्रबलशूटिंग कार्यों में इस कमांड का नियमित उपयोग कर आप सिस्टम डायग्नोस्टिक्स को अधिक तीव्र और प्रभावी बना सकते हैं।