សៀវភៅណែនាំអ្នកប្រើប្រាស់ mudfish-exclude
កម្មវិធីនេះអាចប្រើប្រាស់បានតែនៅលើ Mudfish Cloud VPN កំណែ 6.5.4 ឬខ្ពស់ជាងនេះប៉ុណ្ណោះ។
mudfish-exclude គឺជាឧបករណ៍បន្ទាត់ពាក្យបញ្ជា (command-line tool) សម្រាប់ Mudfish នៅលើ Linux ដែលអនុញ្ញាតឱ្យដំណើរការកម្មវិធីជាក់លាក់ដោយលើកលែងចេញពីផ្លូវបញ្ជូនរបស់ Mudfish។ ជាពិសេស នៅពេលប្រើប្រាស់របៀប Full VPN ហើយអ្នកចង់បញ្ជូនចរាចរណ៍របស់កម្មវិធីរុករក (browser) កម្មវិធីផ្ញើសារ កម្មវិធីចាក់វីដេអូ ឬឧបករណ៍ទាញយកទិន្នន័យ តាមរយៈខ្សែអ៊ីនធឺណិតដើមដោយផ្ទាល់។
កម្មវិធីទូទៅ -> ផ្លូវបញ្ជូន Mudfish -> ម៉ាស៊ីនមេបញ្ជូនបន្ត
កម្មវិធី mudfish-exclude -> ផ្លូវលំនាំដើមដើម -> អ៊ីនធឺណិត
ឧបករណ៍នេះមិនបន្ថែមការកំណត់ទៅក្នុងផ្ទាំងគ្រប់គ្រង Mudfish ទេ។ អ្នកគ្រាន់តែចាប់ផ្តើមកម្មវិធីដែលត្រូវលើកលែងដោយប្រើ mudfish-exclude ជំនួសឱ្យពាក្យបញ្ជាដំណើរការធម្មតា។
វិសាលភាពនៃការគាំទ្រ: បច្ចុប្បន្នគាំទ្រតែ Linux និង IPv4 ប៉ុណ្ណោះ។ មិនអាចប្រើនៅលើ Windows, macOS ឬ Android បានទេ ហើយគោលការណ៍វាងដាច់ដោយឡែកមិនត្រូវបានអនុវត្តចំពោះចរាចរណ៍ IPv6 ឡើយ។
បរិស្ថានដែលត្រូវការ
លក្ខខណ្ឌទាំងអស់ខាងក្រោមគឺចាំបាច់៖
- ត្រូវតែបានដំឡើង Mudfish សម្រាប់ Linux។
- cgroup v2 ត្រូវតែបានម៉ោន (mount) នៅ
/sys/fs/cgroup។ - ត្រូវតែអាចប្រើប្រាស់ពាក្យបញ្ជា
ipនិងiptablesព្រមទាំងមុខងារ cgroup match របស់ iptables។ - ត្រូវតែមានសិទ្ធិ
sudoដើម្បីកំណត់រចនាសម្ព័ន្ធ policy routing និងវិធានជញ្ជាំងភ្លើង (firewall)។ - ត្រូវតែមានផ្លូវលំនាំដើម IPv4 ធម្មតានៅក្នុងតារាងបញ្ជូន main របស់ Linux។
ឯកសារដែលអាចដំណើរការបានដែលបានដំឡើង ជាទូទៅស្ថិតនៅទីតាំងដូចខាងក្រោម៖
/opt/mudfish/<កំណែ Mudfish>/bin/mudfish-exclude
ផ្លូវដំឡើងបច្ចុប្បន្នអាចស្វែងរកបានដោយប្រើពាក្យបញ្ជាដូចខាងក្រោម៖
ls /opt/mudfish/*/bin/mudfish-exclude
ប្រសិនបើឯកសារដែលអាចដំណើរការបានមិនត្រូវបានចុះឈ្មោះនៅក្នុង PATH សូមជំនួស mudfish-exclude នៅក្នុងឧទាហរណ៍ខាងក្រោមដោយផ្លូវពេញលេញដែលបានបញ្ជាក់ខាងលើ។ ឧទាហរណ៍ ផ្លូវដំឡើងលំនាំដើមសម្រាប់កំណែ 6.5.4 គឺ /opt/mudfish/6.5.4/bin/mudfish-exclude។
ការប្រើប្រាស់មូលដ្ឋាន
- ដំណើរការ Mudfish ហើយភ្ជាប់ធាតុដែលចង់បាន ឬរបៀប Full VPN ឱ្យបានត្រឹមត្រូវ។
- ប្រសិនបើកម្មវិធីដែលត្រូវលើកលែងកំពុងដំណើរការរួចហើយ សូមបិទវាឱ្យទាំងស្រុង រួមទាំងថាសប្រព័ន្ធ (system tray) និងដំណើរការផ្ទៃខាងក្រោយ (background processes)។
- ដំណើរការកម្មវិធីឡើងវិញនៅក្នុង Terminal តាមទម្រង់ដូចខាងក្រោម៖
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 ... នឹងដំណើរការជាមួយ UID, GID, ថតផ្ទះ (home directory) និងបរិស្ថានសម័យលើតុ (desktop session) របស់អ្នកប្រើប្រាស់ដើមដែលបានហៅ sudo ប្រសិនបើអាច។
ចំណុចដែលត្រូវដឹង
- គោលការណ៍លើកលែងត្រូវបានអនុវត្តចំពោះដំណើរការដែលបានចាប់ផ្តើមថ្មីជាមួយ
mudfish-excludeនិងដំណើរការរង (child processes) របស់វា។ - មិនអាចភ្ជាប់គោលការណ៍ទៅនឹងកម្មវិធីដែលកំពុងដំណើរការស្រាប់នៅពេលក្រោយបានទេ។ កម្មវិធីដែលមាន instance តែមួយត្រូវតែបិទឱ្យបានពេញលេញជាមុនសិន ដើម្បីកុំឱ្យវាប្រើប្រាស់ឡើងវិញនូវដំណើរការចាស់។
- នៅក្នុងទម្រង់ដំណើរការតែម្តងធម្មតា គោលការណ៍នឹងត្រូវបានសម្អាតដោយស្វ័យប្រវត្តិនៅពេលដែលកម្មវិធី និងដំណើរការរងទាំងអស់ត្រូវបានបិទបញ្ចប់។
- អ្នកអាចដំណើរការពាក្យបញ្ជា
mudfish-excludeជាច្រើនក្នុងពេលដំណាលគ្នាបាន។ គោលការណ៍រួមនឹងត្រូវបានសម្អាតបន្ទាប់ពីកម្មវិធីដែលបានលើកលែងចុងក្រោយត្រូវបានបិទបញ្ចប់។ - ចរាចរណ៍ IPv4 នៃកម្មវិធីដែលបានលើកលែងនឹងមិនប្រើប្រាស់ម៉ាស៊ីនមេបញ្ជូនបន្ត Mudfish មុខងារបង្កើនល្បឿន ឬ IP សាធារណៈនៃផ្លូវនោះឡើយ។
ការផ្ទៀងផ្ទាត់ប្រតិបត្តិការធម្មតា
វិធីងាយស្រួលបំផុតក្នុងការផ្ទៀងផ្ទាត់គឺនៅពេលដែលអាសយដ្ឋាន IPv4 សាធារណៈមុនពេលភ្ជាប់ Full VPN និងអាសយដ្ឋាន IPv4 សាធារណៈនៃម៉ាស៊ីនមេបញ្ជូនបន្ត Full VPN មានភាពខុសគ្នា។
ដំបូង ពិនិត្យមើលអាសយដ្ឋាននៅក្នុង Terminal ធម្មតាដែលបានភ្ជាប់ Full VPN៖
curl -4 https://myip.mudfish.net
ដំណើរការពាក្យបញ្ជាដូចគ្នាជាមួយ mudfish-exclude៖
sudo mudfish-exclude curl -4 https://myip.mudfish.net
លទ្ធផលទីមួយគួរតែបង្ហាញអាសយដ្ឋាននៃម៉ាស៊ីនមេបញ្ជូនបន្ត Mudfish ហើយលទ្ធផលទីពីរគួរតែបង្ហាញអាសយដ្ឋាននៃខ្សែអ៊ីនធឺណិតដើម។ -4 គឺជាជម្រើសសម្រាប់ពិនិត្យមើលតែ IPv4 ឱ្យស្របតាមវិសាលភាពនៃការគាំទ្ររបស់ឧបករណ៍នេះ។
នៅពេលផ្ទៀងផ្ទាត់ជាមួយកម្មវិធីរុករក (browser) សូមបិទ browser ឱ្យទាំងស្រុង រួចដំណើរការដូចខាងក្រោម ហើយចូលទៅកាន់ https://myip.mudfish.net៖
sudo mudfish-exclude firefox
ការបិទ និងការសម្អាតគោលការណ៍
នៅពេលបិទជាធម្មតា មិនចាំបាច់មានពាក្យបញ្ជាសម្អាតដាច់ដោយឡែកទេ។ ទោះជាយ៉ាងណាក៏ដោយ ប្រសិនបើដំណើរការ mudfish-exclude ត្រូវបានបង្ខំឱ្យបិទ Terminal ត្រូវបានបិទមិនធម្មតា ឬប្រព័ន្ធត្រូវបានរំខាន គោលការណ៍អាចនឹងនៅសេសសល់។
ដំបូង សូមបិទកម្មវិធីទាំងអស់ដែលបានដំណើរការដោយឧបករណ៍នេះ រួចដំណើរការពាក្យបញ្ជាខាងក្រោម៖
sudo mudfish-exclude --cleanup
ប្រសិនបើអ្នកប្រើ
--cleanupខណៈពេលដែលមានកម្មវិធីលើកលែងកំពុងដំណើរការ ការវាងផ្លូវនៃកម្មវិធីនោះអាចនឹងត្រូវបញ្ឈប់ភ្លាមៗ។
ជម្រើសពាក្យបញ្ជា
ការប្រើប្រាស់: mudfish-exclude [ជម្រើស] កម្មវិធី [ជម្រើសកម្មវិធី...]
| ជម្រើស | ការពិពណ៌នា |
|---|---|
-h, --help | បង្ហាញជំនួយ។ |
--setup | កំណត់តែគោលការណ៍បណ្តាញសម្រាប់ការលើកលែង រួចចាកចេញ។ មិនអាចបញ្ជាក់កម្មវិធីជាមួយគ្នាបានទេ។ |
--cleanup | ដកចេញគោលការណ៍បណ្តាញសម្រាប់ការលើកលែង រួចចាកចេញ។ មិនអាចបញ្ជាក់កម្មវិធីជាមួយគ្នាបានទេ។ |
--no-setup | ចូលទៅកាន់ cgroup ដែលបានបញ្ជាក់ ហើយដំណើរការកម្មវិធីដោយមិនកំណត់គោលការណ៍ឡើងវិញ។ |
--cgroup NAME | បញ្ជាក់ឈ្មោះ cgroup v2 ដែលត្រូវប្រើ។ តម្លៃលំនាំដើមគឺ mudfish-exclude។ |
--mark VALUE | បញ្ជាក់ firewall 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
វិធីសាស្ត្រដោយដៃមិនធ្វើការសម្អាតដោយស្វ័យប្រវត្តិទេ។ លើសពីនេះ កម្មវិធីលើតុមួយចំនួនអាចផ្លាស់ទីទៅកាន់ cgroup ផ្សេងទៀតរបស់ systemd ក្នុងអំឡុងពេលដំណើរការ ដូច្នេះសម្រាប់កម្មវិធីទាំងនេះ វិធីដំណើរការតែម្តងតាមលំនាំដើមដែលតាមដានការផ្លាស់ទី cgroup និងសម្អាតដោយស្វ័យប្រវត្តិនឹងសមស្របជាង។
ប្រសិនបើអ្នកបានផ្លាស់ប្តូរតម្លៃ --cgroup, --mark, --priority, --table អ្នកត្រូវតែប្រើតម្លៃដូចគ្នានៅក្នុង --setup, --no-setup និង --cleanup។ តម្លៃដែលបានបញ្ជាក់ដោយអ្នកប្រើប្រាស់មិនត្រូវប៉ះទង្គិចជាមួយ firewall 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 សម្រាប់ការចែកចាយ (distribution) របស់អ្នក។
iptables rule add failed ឬកំហុស cgroup match
សូមពិនិត្យមើលថាតើ iptables ត្រូវបានដំឡើងដែរឬទេ ហើយថាតើខឺណែល និង iptables គាំទ្រ cgroup match ដែរឬទេ។ ទោះបីជានៅលើការចែកចាយដែលផ្អែកលើ nftables ក៏ដោយ ឧបករណ៍នេះប្រើប្រាស់ពាក្យបញ្ជាដែលត្រូវគ្នាជាមួយ iptables ដោយផ្ទាល់ ដូច្នេះស្រទាប់ភាពឆបគ្នាជាមួយ iptables ត្រឹមត្រូវគឺចាំបាច់។
failed to find the IPv4 default route
មិនអាចរកឃើញផ្លូវលំនាំដើម IPv4 នៃខ្សែអ៊ីនធឺណិតដើមនៅក្នុងតារាងបញ្ជូន main ទេ។ សូមពិនិត្យមើលថាតើមានផ្លូវ default នៅក្នុងលទ្ធផលនៃពាក្យបញ្ជាខាងក្រោមដែរឬទេ៖
ip -4 route show default table main
ប្រសិនបើគ្មានផ្លូវលំនាំដើម ឬវាចង្អុលទៅកាន់ចំណុចប្រទាក់ VPN ផ្សេងទៀតរួចហើយនោះ mudfish-exclude មិនអាចកំណត់រចនាសម្ព័ន្ធផ្លូវអ៊ីនធឺណិតដើមបានទេ។
បានលើកលែងហើយ ប៉ុន្តែ IP សាធារណៈនៅតែមិនផ្លាស់ប្តូរ
សូមពិនិត្យមើលចំណុចខាងក្រោមតាមលំដាប់លំដោយ៖
- ពិនិត្យមើលថាតើរបៀប Full VPN ត្រូវបានភ្ជាប់ពិតប្រាកដ និងបង្ហាញ IP របស់ម៉ាស៊ីនមេបញ្ជូនបន្តនៅពេលដំណើរការធម្មតាដែរឬទេ។
- បិទដំណើរការដែលមានស្រាប់ និងដំណើរការផ្ទៃខាងក្រោយទាំងអស់នៃកម្មវិធីគោលដៅ រួចដំណើរការម្តងទៀត។
- ប្រើ
curl -4ឬវិធីពិនិត្យ IPv4 ដើម្បីកុំឱ្យច្រឡំជាមួយលទ្ធផល IPv6។ - ពិនិត្យមើលថាតើកម្មវិធីគោលដៅជាទម្រង់ដែលបញ្ជូនបន្តពាក្យបញ្ជាទៅកាន់សេវាកម្មដាច់ដោយឡែក ឬ launcher ដែលកំពុងដំណើរការស្រាប់ដែរឬទេ។ គោលការណ៍លើកលែងត្រូវបានអនុវត្តចំពោះតែដំណើរការដែលបង្កើតថ្មីដោយ
mudfish-excludeប៉ុណ្ណោះ។ - ពិនិត្យមើលថាតើផ្លូវលំនាំដើមនៃ
ip -4 route show default table mainចង្អុលទៅកាន់ចំណុចប្រទាក់អ៊ីនធឺណិតពិតប្រាកដដែរឬទេ។
បានបិទកម្មវិធីហើយ ប៉ុន្តែពាក្យបញ្ជា Terminal មិនទាន់បញ្ចប់
ដំណើរការរង ឬដំណើរការផ្ទៃខាងក្រោយអាចនឹងនៅតែដំណើរការនៅក្នុង cgroup លើកលែង។ សូមបិទរូបតំណាងថាសប្រព័ន្ធ launcher និងដំណើរការអាប់ដេតពាក់ព័ន្ធទាំងអស់។ របៀបដំណើរការលំនាំដើមនឹងរង់ចាំរហូតដល់ដំណើរការរងទាំងអស់ត្រូវបានបញ្ចប់ទើបសម្អាតគោលការណ៍។
បណ្តាញមានភាពមិនធម្មតាបន្ទាប់ពីការបិទមិនប្រក្រតី
បិទកម្មវិធីទាំងអស់ដែលបានដំណើរការដោយឧបករណ៍នេះ រួចសម្អាតគោលការណ៍ដែលនៅសេសសល់៖
sudo mudfish-exclude --cleanup
ប្រសិនបើបញ្ហានៅតែបន្តកើតមាន សូមបិទ Mudfish ពិនិត្យមើលផ្លូវលំនាំដើមរបស់ប្រព័ន្ធ និងវិធាន iptables រួចភ្ជាប់ឡើងវិញ។
គោលការណ៍នៃប្រតិបត្តិការ
mudfish-exclude ដាក់កម្មវិធីដែលត្រូវដំណើរការទៅក្នុង cgroup v2 ដាច់ដោយឡែកមួយ ហើយកំណត់ iptables mark លើកញ្ចប់ទិន្នន័យ IPv4 ដែលកើតចេញពី cgroup នោះ។ កញ្ចប់ទិន្នន័យដែលមាន mark នោះត្រូវបានបញ្ជូនទៅកាន់ផ្លូវលំនាំដើមដែលបានរកឃើញនៅក្នុងតារាងបញ្ជូន main របស់ Linux តាមរយៈតារាង policy routing ដាច់ដោយឡែកមួយ ហើយ NAT MASQUERADE ដែលចាំបាច់ត្រូវបានអនុវត្ត។
ដំណើរការនេះមិនកែប្រែការកំណត់ ឬស្ថានភាពអង្គចងចាំរួម (shared memory) របស់ mudrun, mudflow, mudfish, ឬ mudwfp_proxy ឡើយ។ គោលការណ៍លើកលែងដំណើរការតែនៅក្នុងស្រទាប់ cgroup, iptables និង IPv4 policy routing នៃប្រព័ន្ធប្រតិបត្តិការប៉ុណ្ណោះ។