mudfish-exclude उपयोगकर्ता मार्गदर्शिका
यह प्रोग्राम केवल Mudfish Cloud VPN 6.5.4 या बाद के संस्करण में उपलब्ध है।
mudfish-exclude Linux के Mudfish में किसी विशेष प्रोग्राम को Mudfish के रास्ते से बाहर रखकर चलाने वाला कमांड-लाइन उपकरण है। विशेष रूप से Full VPN इस्तेमाल करते समय ब्राउज़र, मैसेंजर, वीडियो प्लेयर या डाउनलोड उपकरण का ट्रैफ़िक अपनी मूल इंटरनेट लाइन से सीधे भेजने के लिए उपयोगी है।
일반 프로그램 -> 미꾸라지 경로 -> 중계 서버
mudfish-exclude 앱 -> 기존 기본 경로 -> 인터넷
ऊपर दिए गए मूल आरेख में सामान्य प्रोग्राम का ट्रैफ़िक Mudfish रास्ते से रिले सर्वर तक जाता है, जबकि mudfish-exclude से चलाए गए ऐप का ट्रैफ़िक पुराने डिफ़ॉल्ट रास्ते से इंटरनेट तक जाता है।
यह उपकरण Mudfish डैशबोर्ड में कोई सेटिंग नहीं जोड़ता। जिस प्रोग्राम को बाहर रखना चाहते हैं, उसे सामान्य कमांड के बजाय mudfish-exclude से शुरू करें।
समर्थन का दायरा: फ़िलहाल केवल Linux और IPv4 समर्थित हैं। Windows, macOS और Android में उपलब्ध नहीं है। IPv6 ट्रैफ़िक के लिए अलग बाइपास नीति लागू नहीं करता।
आवश्यक वातावरण
नीचे दी गई सभी शर्तें पूरी होनी चाहिए।
- Linux के लिए Mudfish इंस्टॉल हो।
- cgroup v2
/sys/fs/cgroupपर माउंट हो। ip,iptablesकमांड और iptables की cgroup match सुविधा उपलब्ध हों।- नीति-आधारित राउटिंग और फ़ायरवॉल नियम सेट करने के लिए
sudoअधिकार हों। - Linux की main राउटिंग टेबल में सही IPv4 डिफ़ॉल्ट रास्ता हो।
इंस्टॉल की गई निष्पादन योग्य फ़ाइल आमतौर पर नीचे दिए गए स्थान पर होती है।
/opt/mudfish/<미꾸라지 버전>/bin/mudfish-exclude
ऊपर के मूल पथ में <미꾸라지 버전> का अर्थ Mudfish का संस्करण है।
वर्तमान इंस्टॉलेशन पथ नीचे दिए गए कमांड से खोज सकते हैं।
ls /opt/mudfish/*/bin/mudfish-exclude
यदि फ़ाइल PATH में दर्ज नहीं है, तो नीचे दिए गए उदाहरणों के mudfish-exclude को मिले हुए पूरे पथ से बदलें। उदाहरण के लिए, संस्करण 6.5.4 का डिफ़ॉल्ट पथ /opt/mudfish/6.5.4/bin/mudfish-exclude है।
बुनियादी उपयोग
- Mudfish चलाएँ और इच्छित आइटम या Full VPN मोड से सही ढंग से कनेक्ट करें।
- बाहर रखने वाला प्रोग्राम पहले से चल रहा हो, तो उसे ट्रे और बैकग्राउंड प्रोसेस सहित पूरी तरह बंद करें।
- टर्मिनल से नीचे दिए गए रूप में प्रोग्राम दोबारा चलाएँ।
sudo mudfish-exclude <프로그램> [프로그램 옵션...]
मूल कमांड में <프로그램> प्रोग्राम और [프로그램 옵션...] उसके विकल्पों के लिए प्लेसहोल्डर हैं।
उदाहरण के लिए, Discord को Mudfish से बाहर रखने के लिए:
sudo mudfish-exclude discord
Firefox को बाहर रखते हुए निजी विंडो खोलने के लिए:
sudo mudfish-exclude firefox --private-window
निष्पादन योग्य फ़ाइल के पथ में खाली स्थान हों, तो उद्धरण चिह्न लगाएँ।
sudo mudfish-exclude "/path/to/My Program" --option
sudo नेटवर्क नीति सेट करने के लिए है। sudo mudfish-exclude ... से शुरू किया गया प्रोग्राम स्वयं, जहाँ संभव हो, sudo चलाने वाले मूल उपयोगकर्ता के UID, GID, होम डायरेक्टरी और डेस्कटॉप सत्र के वातावरण में चलता है।
ध्यान देने योग्य बातें
- बाहर रखने की नीति
mudfish-excludeसे नए शुरू किए गए प्रोसेस और उसके चाइल्ड प्रोसेस पर लागू होती है। - पहले से चल रहे प्रोग्राम पर बाद में नीति नहीं लगा सकते। एकल-इंस्टेंस प्रोग्राम पुराने प्रोसेस को दोबारा इस्तेमाल न करे, इसलिए पहले उसे पूरी तरह बंद करें।
- सामान्य एक बार चलाने वाले तरीके में प्रोग्राम और उसके सभी चाइल्ड प्रोसेस बंद होने पर नीति अपने-आप साफ़ हो जाती है।
- कई
mudfish-excludeकमांड एक साथ चला सकते हैं। साझा नीति आखिरी बाहर रखे गए प्रोग्राम के बंद होने के बाद साफ़ होती है। - बाहर रखे गए प्रोग्राम का IPv4 ट्रैफ़िक Mudfish रिले सर्वर, त्वरण सुविधाएँ या उस रास्ते का सार्वजनिक IP इस्तेमाल नहीं करता।
सही संचालन की जाँच
जाँच सबसे आसान तब होती है जब Full VPN से जुड़ने से पहले का सार्वजनिक IPv4 पता और Full VPN रिले सर्वर का सार्वजनिक IPv4 पता अलग हों।
पहले Full VPN से जुड़े सामान्य टर्मिनल में पता जाँचें।
curl -4 https://myip.mudfish.net
वही कमांड mudfish-exclude से चलाएँ।
sudo mudfish-exclude curl -4 https://myip.mudfish.net
पहला परिणाम Mudfish रिले सर्वर का पता और दूसरा मूल इंटरनेट लाइन का पता होना चाहिए। -4 केवल IPv4 जाँचने के लिए है, जो इस उपकरण के समर्थन दायरे के अनुरूप है।
ब्राउज़र से जाँचने के लिए उसे पूरी तरह बंद करें, फिर नीचे दिए गए तरीके से चलाकर https://myip.mudfish.net खोलें।
sudo mudfish-exclude firefox
बंद करना और नीति साफ़ करना
सामान्य रूप से बंद करने पर अलग सफ़ाई कमांड की आवश्यकता नहीं है। लेकिन mudfish-exclude को जबरन बंद करने, टर्मिनल असामान्य रूप से बंद होने या सिस्टम रुकने पर नीति बच सकती है।
पहले इस उपकरण से चलाए गए सभी प्रोग्राम बंद करें, फिर नीचे दिया गया कमांड चलाएँ।
sudo mudfish-exclude --cleanup
बाहर रखे गए प्रोग्राम अभी चल रहे हों, तो
--cleanupइस्तेमाल करने से उनका बाइपास तुरंत बंद हो सकता है।
कमांड विकल्प
사용법: mudfish-exclude [옵션] 프로그램 [프로그램 옵션...]
मूल उपयोग-पंक्ति में [옵션] उपकरण के विकल्प, 프로그램 प्रोग्राम और [프로그램 옵션...] उस प्रोग्राम के विकल्प दर्शाते हैं।
| विकल्प | विवरण |
|---|---|
-h, --help | सहायता दिखाता है। |
--setup | केवल बाहर रखने वाली नेटवर्क नीति सेट करके बंद होता है। साथ में प्रोग्राम नहीं दे सकते। |
--cleanup | बाहर रखने वाली नेटवर्क नीति हटाकर बंद होता है। साथ में प्रोग्राम नहीं दे सकते। |
--no-setup | पुरानी नीति दोबारा सेट किए बिना निर्दिष्ट cgroup में जाकर प्रोग्राम चलाता है। |
--cgroup NAME | इस्तेमाल होने वाले cgroup v2 का नाम। डिफ़ॉल्ट mudfish-exclude है। |
--mark VALUE | पैकेट का फ़ायरवॉल mark। डिफ़ॉल्ट 0x6d660001 है। |
--priority VALUE | IPv4 policy rule की प्राथमिकता। डिफ़ॉल्ट 8252 है। |
--table VALUE | पुराने डिफ़ॉल्ट रास्ते वाली राउटिंग टेबल का नंबर। डिफ़ॉल्ट 8252 है। |
विकल्पों की व्याख्या का अंत स्पष्ट करने के लिए -- के बाद प्रोग्राम लिख सकते हैं।
sudo mudfish-exclude -- firefox --private-window
कई प्रोग्राम के लिए नीति दोबारा इस्तेमाल करना
सामान्य उपयोगकर्ताओं के लिए हर प्रोग्राम को एक बार चलाने वाला तरीका सुझाया जाता है। नीति स्वयं एक बार सेट करके कई कमांड में इस्तेमाल करनी हो, तो नीचे दिया गया क्रम अपनाएँ।
sudo mudfish-exclude --setup
sudo mudfish-exclude --no-setup discord
sudo mudfish-exclude --no-setup firefox
सभी प्रोग्राम बंद करने के बाद नीति अवश्य साफ़ करें।
sudo mudfish-exclude --cleanup
स्वयं सेट करने वाले तरीके में अपने-आप सफ़ाई नहीं होती। कुछ डेस्कटॉप प्रोग्राम चलते समय systemd के दूसरे cgroup में जा सकते हैं। इनके लिए डिफ़ॉल्ट एक बार चलाने वाला तरीका अधिक उपयुक्त है, क्योंकि वह cgroup बदलाव पर नज़र रखता है और अपने-आप सफ़ाई करता है।
--cgroup, --mark, --priority, --table के मान बदले हों, तो --setup, --no-setup और --cleanup में सभी जगह समान मान इस्तेमाल करें। कस्टम मान सिस्टम के मौजूदा फ़ायरवॉल mark या policy routing नियमों से टकराने नहीं चाहिए।
समस्या समाधान
mudfish-exclude: command not found
निष्पादन योग्य फ़ाइल PATH में नहीं है। नीचे दिए गए कमांड से इंस्टॉलेशन स्थान खोजें और पूरे पथ से चलाएँ।
ls /opt/mudfish/*/bin/mudfish-exclude
sudo /opt/mudfish/6.5.4/bin/mudfish-exclude discord
दूसरे कमांड में संस्करण नंबर अपने इंस्टॉल किए गए संस्करण के अनुसार बदलें।
network policy setup requires root
नेटवर्क नीति सेट करने के अधिकार नहीं हैं। कमांड से पहले sudo जोड़कर फिर चलाएँ।
sudo mudfish-exclude discord
cgroup v2 is required at /sys/fs/cgroup
सिस्टम cgroup v2 इस्तेमाल नहीं करता या वह बताए गए स्थान पर माउंट नहीं है। नीचे दिए गए कमांड से जाँचें।
test -f /sys/fs/cgroup/cgroup.controllers && echo "cgroup v2 사용 가능"
मूल कमांड सफल होने पर "cgroup v2 उपलब्ध है" वाला कोरियाई संदेश दिखाता है। कुछ भी न दिखे, तो अपने वितरण में cgroup v2 सक्षम करने का तरीका जाँचें।
iptables rule add failed या cgroup match त्रुटि
जाँचें कि iptables इंस्टॉल है और कर्नेल तथा iptables cgroup match का समर्थन करते हैं। nftables आधारित वितरण में भी यह उपकरण सीधे iptables संगत कमांड इस्तेमाल करता है, इसलिए सही ढंग से काम करने वाली iptables संगतता परत आवश्यक है।
failed to find the IPv4 default route
main राउटिंग टेबल में मूल इंटरनेट लाइन का IPv4 डिफ़ॉल्ट रास्ता नहीं मिला। नीचे दिए गए कमांड के परिणाम में default रास्ता जाँचें।
ip -4 route show default table main
डिफ़ॉल्ट रास्ता न हो या पहले से किसी दूसरे VPN इंटरफ़ेस की ओर जाता हो, तो mudfish-exclude मूल इंटरनेट रास्ता नहीं बना सकता।
बाहर रखने पर भी सार्वजनिक IP नहीं बदलता
नीचे दी गई चीज़ें क्रम से जाँचें।
- Full VPN मोड वास्तव में कनेक्ट है और सामान्य तरीके से चलाने पर रिले सर्वर का IP दिखाई देता है।
- संबंधित प्रोग्राम के पुराने और बैकग्राउंड प्रोसेस पूरी तरह बंद करके दोबारा चलाएँ।
- IPv6 परिणाम से भ्रम न हो, इसके लिए
curl -4या IPv4 जाँच का तरीका इस्तेमाल करें। - जाँचें कि प्रोग्राम किसी अलग सेवा या पहले से चल रहे Launcher को कमांड तो नहीं देता। बाहर रखने की नीति केवल
mudfish-excludeद्वारा बनाए गए नए प्रोसेस और उनके वंशजों पर लागू होती है। ip -4 route show default table mainका डिफ़ॉल्ट रास्ता वास्तविक इंटरनेट इंटरफ़ेस की ओर जाता है।
प्रोग्राम बंद करने के बाद भी टर्मिनल कमांड खत्म नहीं होता
चाइल्ड या बैकग्राउंड प्रोसेस बाहर रखने वाले cgroup में अभी भी चल सकता है। संबंधित ट्रे आइकन, Launcher और अपडेट प्रोसेस भी बंद करें। डिफ़ॉल्ट तरीका सभी चाइल्ड प्रोसेस के खत्म होने का इंतज़ार करके नीति साफ़ करता है।
असामान्य रूप से बंद होने के बाद नेटवर्क में समस्या है
इस उपकरण से चलाए गए सभी प्रोग्राम बंद करें और बची हुई नीति साफ़ करें।
sudo mudfish-exclude --cleanup
इसके बाद भी समस्या रहे, तो Mudfish बंद करें, सिस्टम का डिफ़ॉल्ट रास्ता और iptables नियम जाँचें, फिर कनेक्ट करें।
कार्यप्रणाली
mudfish-exclude चलाए जाने वाले प्रोग्राम को अलग cgroup v2 में रखता है और उस cgroup के IPv4 पैकेट पर iptables mark लगाता है। इस mark वाले पैकेट अलग policy routing टेबल से Linux की main राउटिंग टेबल में मिले डिफ़ॉल्ट रास्ते पर भेजे जाते हैं और आवश्यक NAT MASQUERADE लागू होता है।
यह प्रक्रिया mudrun, mudflow, mudfish, mudwfp_proxy की सेटिंग्स या साझा मेमोरी की स्थिति नहीं बदलती। बाहर रखने वाली नीति केवल ऑपरेटिंग सिस्टम के cgroup, iptables और IPv4 policy routing स्तरों पर काम करती है।