मेरा एक कार्यक्रम है जो मैं अपने वास्तविक नेटवर्क को नीचे किए बिना ऑफ़लाइन मोड में परीक्षण करना चाहूंगा। इस कार्यक्रम को अभी भी यूनिक्स डोमेन सॉकेट और लूपबैक सहित स्थानीय सॉकेट से कनेक्ट करने की आवश्यकता होगी। इसे लूपबैक पर सुनने और अन्य ऐप के लिए दृश्यमान होने की भी आवश्यकता है ।
लेकिन रिमोट मशीन से कनेक्ट करने का प्रयास विफल होना चाहिए।
मैं एक उपयोगिता है जो strace
/ unshare
/ की तरह काम करता है sudo
और बस इंटरनेट के साथ एक कमांड चलाता है (और LAN) छुपा है और बाकी सब काम कर रहा है:
$ offline my-program-to-test
इस प्रश्न के उत्तर में संकेत हैं: किसी प्रक्रिया का नेटवर्क एक्सेस?
वहाँ कुछ सुझाव हैं, जैसे कि किसी अन्य उपयोगकर्ता के रूप में चलाएं, फिर iptables में हेरफेर करें, या unshare -n
। लेकिन दोनों ही मामलों में मुझे पता नहीं है कि यूनिक्स डोमेन सॉकेट और लूपबैक प्राप्त करने के लिए मुख्य प्रणाली के साथ साझा किया जा रहा है - उस प्रश्न के उत्तर केवल मुझे बताएंगे कि पूरे नेटवर्क को कैसे अनसुना किया जाए ।
मैं जिस प्रोग्राम का परीक्षण कर रहा हूं उसे अभी भी मेरे एक्स सर्वर और डब से कनेक्ट करने की आवश्यकता है और यहां तक कि सिस्टम के अन्य ऐप से कनेक्शन के लिए लूपबैक पर सुनने में सक्षम हो।
आदर्श रूप से मैं chroots या उपयोगकर्ताओं या VMs या पसंद को बनाने से बचना चाहूंगा, क्योंकि यह नेटवर्क केबल को अनप्लग करने जैसा ही कष्टप्रद है। यानी सवाल का मुद्दा यह है कि मैं इसे सरल कैसे बना सकता हूं sudo
।
मैं सामान्य रूप से 100% चलाने की प्रक्रिया को पसंद करूंगा, सिवाय इसके कि नेटवर्क कॉल एक गैर-स्थानीय पते को निर्दिष्ट करने में विफल होगा। आदर्श रूप से एक ही यूडी, एक ही होमडियर, एक ही pwd, एक ही सब कुछ छोड़कर ... ऑफ़लाइन।
मैं फेडोरा 18 का उपयोग कर रहा हूं, इसलिए अस्थिर लिनक्स उत्तर ठीक हैं (उम्मीद है, यहां तक कि)।
मैं सी प्रोग्राम लिखकर इसे हल करने में बहुत खुश हूं, अगर वह इसमें शामिल है, तो जवाब है कि सी लिखना ठीक है। मुझे नहीं पता है कि स्थानीय नेटवर्क को रखते हुए बाह्य नेटवर्क पहुंच को रद्द करने के लिए सी प्रोग्राम को क्या सीक्लास की आवश्यकता होगी।
"ऑफ़लाइन मोड" का समर्थन करने का प्रयास करने वाला कोई भी डेवलपर शायद इस उपयोगिता की सराहना करेगा!