एक यूनिक्स डोमेन सॉकेट को स्थानांतरित करने से समाज को यातायात की निगरानी करने में कैसे सक्षम किया जाता है?


12

socat यूनिक्स डोमेन सॉकेट में ट्रैफ़िक की निगरानी के लिए इस्तेमाल किया जा सकता है:

sudo mv /path/to/sock /path/to/sock.original
sudo socat -t100 -x -v UNIX-LISTEN:/path/to/sock,mode=777,reuseaddr,fork UNIX-CONNECT:/path/to/sock.original

मुझे यह समझ में नहीं आया कि यह तंत्र कैसे काम करता है, उम्मीद है कि कोई इसे थोड़ा समझा सके। विशेष रूप से, सॉकेट फ़ाइल कैसे चलती है अगर कोई प्रक्रिया पहले से ही इस पर सुन रही है? इसके अलावा, इस कदम के बाद: न तो lsof /path/to/sockहै और न ही /path/to/sock.originalकोई फल प्राप्त।

जवाबों:


11

उन कमांड को चलाना पड़ता है जब आप जिस सर्वर को मॉनिटर करना चाहते हैं वह वर्तमान में सुन रहा है /path/to/sock। फिर, यदि आप नाम बदलते हैं /path/to/sock, तो सर्वर प्रभावित नहीं होगा।

socatआदेश एक मैन-इन-द-मिडल सम्मिलित करता है। यह /path/to/socksग्राहकों द्वारा सभी ट्रैफ़िक को आगे और पीछे सुनता है /path/to/socks.original(और इस प्रक्रिया में इसे लॉग करता है -v)।

यह केवल सॉकेट्स के स्ट्रीम प्रकारों ( डेटाग्राम सॉकेट्स के लिए उपयोग UNIX-RECVFROM/ उपयोग ) के लिए काम करता है और केवल अगर ग्राहक उन सॉकेट्स पर करते हैं, तो सहायक डेटा और अन्य फैंसी चीजों के साथ नहीं ।UNIX-RECVread/write/send/recvsendmsg()

lsofकेवल सुनने की प्रक्रिया ( socatऔर सुनने और स्वीकृत सॉकेट के लिए सर्वर) की रिपोर्ट करेगा । आमतौर पर क्लाइंट से कनेक्ट किए गए सॉकेट को सॉकेट के रास्ते से जोड़ना संभव नहीं है ।

आप ऐसा तो पहले सर्वर शुरू, तो उस सर्वर के रूप में नहीं होगा काम करने की कोशिश करेंगे सुनने पर /path/to/socksऔर असफल के रूप में socatपहले से ही उस पर सुन रहा है। या आपको /path/to/sock.originalइसके बजाय सर्वर को सुनने की जरूरत है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.