प्रक्रियाओं द्वारा सुने जा रहे पोर्ट की आसानी से जाँच करें और उपयोग किए गए पोर्ट और सेवाओं को सरलता से आउटपुट करें

8 min

language: ja bn en es hi pt ru zh-cn zh-tw

नमस्ते, मैं अक्षम हूँ।

अरे, शीर्षक में एक ऐसा वाक्यांश इस्तेमाल किया गया है जो मुझे कहीं सुना हुआ सा लगता है...
मुझे अभी भी कभी-कभी लगता है कि वह एक अच्छा साइट नाम था, और इन दिनों, मैंने अपने स्वास्थ्य जाँच में पूरी तरह से 60-100 का निम्न रक्तचाप दर्ज किया है।
दूसरी बार मापा गया मान भी पूरी तरह से निम्न रक्तचाप था, इसलिए स्वाभाविक रूप से पहली बार का मान इस्तेमाल किया गया।

परिचय

अचानक
मैं स्पष्ट रूप से उपयोग किए गए पोर्ट और उनकी सेवाओं को आउटपुट करना चाहता हूँ।
मैंने सोचा।

इसका कारण यह है कि

  • व्यक्तिगत रूप से संचालन करते समय सर्वर कॉन्फ़िगरेशन डायग्राम की आवश्यकता के बिना आसानी से जाँच और आउटपुट करना चाहता हूँ
  • मैं md प्रारूप या टेक्स्ट फ़ाइल में आउटपुट करना चाहता हूँ
  • उपयोग किए गए पोर्ट की जाँच
    ईमानदारी से कहूँ तो, जैसे-जैसे मैं अधिक चीजें चला रहा हूँ, मुझे यह याद रखना मुश्किल हो रहा है कि मैं किन पोर्ट का उपयोग कर रहा था? ऐसी कई चीजें हैं, इसलिए, यदि मुझे अपनी आवश्यक जानकारी एक साथ मिल जाती है, तो मैं इसे स्क्रिप्ट के रूप में बनाना और .md फ़ाइल के रूप में आसानी से जाँच करना चाहता हूँ।
    वैसे, मैं टेक्स्ट फ़ाइलों पर क्यों जोर देता हूँ, इसका कारण यह है कि
    डेटा को संभालना आसान हो जाता है।
    मैं इस बिंदु पर बाद में लिखूँगा।

बस इसे एक बार टाइप करें

lsof -i -P -n | grep "LISTEN" |  awk '{print $1 "," $3 "," $9}' | sort | uniq

और फिर

$ lsof -i -P -n | grep "LISTEN" |  awk '{print $1 "," $3 "," $9}' | sort | uniq
pulseaudi,haturatu,*:38169
pulseaudi,haturatu,*:44409
pulseaudi,haturatu,*:4713

यह इस तरह से आउटपुट करता है।
वैसे, lsof के बिना विकल्पों के भी आउटपुट समान होता है, लेकिन चूंकि BSD संस्करण में यह अलग लगता है, इसलिए मैंने सभी विकल्प पूरी तरह से शामिल किए हैं।

CSV में बदलना

फ़ाइल प्रारूपों के बारे में बहुत कुछ कहा जाता है, लेकिन मुझे CSV प्रारूप पसंद है।
ईमानदारी से कहूँ तो, मुझे नहीं लगता कि CSV फ़ाइल के रूप में काम करते समय CSV बुरा है। एकमात्र स्पष्ट बात यह है कि यदि आप sed के साथ अल्पविराम को प्रतिस्थापित करते हैं, तो यदि यह स्ट्रिंग में उपयोग किया जाता है, तो वह भी प्रतिस्थापित हो जाएगा।
TSV अभी भी उतना परिचित नहीं है, इसलिए CSV बेहतर है। (ईमानदारी से कहूँ तो, यदि आप sed के साथ प्रतिस्थापित कर रहे हैं, तो अल्पविराम या टैब में से कौन सा कम त्रुटियों वाला होगा...)

मैं थोड़ा भटक गया हूँ, लेकिन अगर आप इसे आसानी से CSV में बदल देते हैं, तो आप इसे सीधे Excel में कॉपी-पेस्ट कर सकते हैं, और इसे वैसे ही खोलने पर भी पठनीयता अधिक होती है।
आप इसे LibreOffice या किसी अन्य प्रोग्राम में मानक आउटपुट को .csv के रूप में रीडायरेक्ट करके आसानी से खोल सकते हैं। अगला, TCP/UDP जानकारी भी जोड़ें

$ lsof -i -P -n | grep "LISTEN" |  awk '{print $1 "," $3 "," $9 "/" $8}' | sort | uniq > test.csv

Image
यह इस तरह दिखेगा

इस तरह से
Image
यह काफी आसानी से कल्पना योग्य हो सकता है।

ईमानदारी से कहूँ तो, शुरुआत में मैं printf %10s या print " " का उपयोग करके बिना स्पेस के आउटपुट कर रहा था, लेकिन CSV प्रारूप में बदलने के लिए एक कमांड के रूप में, मुझे लगता है कि अंततः इसे column कमांड में पाइप करना कमांड को अधिक समझने योग्य और देखने में आसान बनाता है...
Image

यदि Markdown प्रारूप में बदलना है

शुरुआत में, मैंने md प्रारूप के अनुसार एक तालिका बनाने के बारे में सोचा था, लेकिन मुझे md प्रारूप की तालिकाएँ उतनी पसंद नहीं हैं, इसलिए मुझे लगा कि कॉपी-पेस्ट करने में आसानी के लिए "```" ठीक रहेगा।
यदि आवश्यक हो, तो मैं awk का उपयोग करके प्रिंट और आउटपुट करूँगा।

md प्रारूप में आउटपुट करने का उद्देश्य यह है कि यदि इसे एक cron के रूप में चलाया जाता है जो नियमित रूप से इसे Github या किसी अन्य निजी रिपॉजिटरी में पुश करता है, तो इसे किसी भी समय आसानी से जाँच किया जा सकता है।

अन्य आवश्यक चीजों पर विचार करना

इसके अलावा, डिस्क क्षमता की जाँच के लिए df -h, vmstat, free जैसे कमांड हैं, लेकिन यह थोड़ा अधिक सिस्टम-व्यापी संसाधन निगरानी जैसा हो जाता है, तो शायद /proc/cpuinfo और /proc/meminfo से जानकारी खींचना बेहतर होगा।
यदि DB तालिका की जानकारी को आसानी से कल्पना योग्य बनाया जा सके तो यह और भी बेहतर होगा, और यदि आप ऐसा करते हैं, तो which * के साथ कुछ DB-संबंधित कमांड चलाकर और केवल उन लोगों के लिए विशिष्ट DB जानकारी आउटपुट करके जो स्टेटस कोड 0 के साथ वापस आते हैं, यह और भी अधिक विस्तृत होगा। लेकिन यह थोड़ा बोझिल हो सकता है।

कॉन्फ़िगरेशन डायग्राम व्यक्ति-व्यक्ति पर काफी भिन्न होते हैं, और मुझे पता है कि विस्तृत मिडलवेयर उत्पाद डिज़ाइन दस्तावेज़ भी आवश्यक हैं, लेकिन यदि सिस्टम की समग्र तस्वीर एक साथ नहीं है, तो इसे जाँच करना मुश्किल है, इसलिए मैं सोच रहा था कि क्या इसे व्यक्तिगत रूप से प्रबंधित करने का कोई आसान तरीका है।
draw.io जैसे टूल के साथ आसानी से डायग्राम बनाना भी आसान है, लेकिन मैं उस डायग्राम बनाने तक की जाँच लागत को भी कम करना चाहता हूँ।

बोनस: वायरगार्ड की चुप्पी

वैसे, जब मैं यह कर रहा था, तो मैंने सोचा कि lsof वायरगार्ड को UDP51820 के रूप में क्यों नहीं दिखाता है, जबकि यह चल रहा है? मुझे इसका जवाब मिल गया।
the wireguard not listening on port after started
Raspberry Pi पर WireGuard + VPS
ऐसा लगता है कि यह एक कर्नेल मॉड्यूल के रूप में कार्य करता है। मेरी अपनी व्याख्या के अनुसार, वायरगार्ड लेयर 3 पर काम करता है, और lsof केवल 'प्रक्रियाओं द्वारा खोली गई फ़ाइलों को दिखाता है', इसलिए शायद यह आउटपुट नहीं होता है। क्या मैं गलत हूँ?

वैसे, Red Hat के जापानी दस्तावेज़ काफी समझने में आसान हैं।
अध्याय 8 वायरगार्ड वीपीएन स्थापित करना
तो, आज के लिए बस इतना ही। अगर मुझे कुछ और अच्छा विचार आता है, तो मैं आगे लिख सकता हूँ, या शायद नहीं।
फिर मिलेंगे।

Related Posts