Gabay sa User ng mudfish-exclude
Ang programang ito ay magagamit lamang sa Mudfish Cloud VPN 6.5.4 o mas bagong bersyon.
Ang mudfish-exclude ay isang command-line tool sa Mudfish para sa Linux na nagpapatakbo ng mga partikular na programa nang naka-exclude mula sa path ng Mudfish. Magagamit ito lalo na kapag gumagamit ng Full VPN mode habang nais mong direktang ipadala ang trapiko ng mga browser, messenger, video player, download tool, at iba pa sa pamamagitan ng iyong umiiral na linya ng internet.
Karaniwang programa -> Path ng Mudfish -> Relay Server (Node)
mudfish-exclude app -> Umiiral na default -> Internet
Ang tool na ito ay hindi nagdaragdag ng mga setting sa Mudfish Dashboard. Simulan lamang ang programang nais mong i-exclude gamit ang mudfish-exclude sa halip na ang karaniwang command sa pagpapatakbo nito.
Saklaw ng Suporta: Sa kasalukuyan, Linux at IPv4 lamang ang sinusuportahan. Hindi ito magagamit sa Windows, macOS, o Android, at hindi ito naglalapat ng hiwalay na patakaran sa pag-bypass para sa trapiko ng IPv6.
Kinakailangang Kapaligiran
Kinakailangan ang lahat ng sumusunod na kondisyon:
- Dapat ay naka-install ang Mudfish para sa Linux.
- Ang cgroup v2 ay dapat naka-mount sa
/sys/fs/cgroup. - Dapat ay magagamit ang mga command na
ipatiptables, pati na rin ang tampok na cgroup match ng iptables. - Dapat ay may pahintulot na
sudoupang makapagtakda ng policy routing at mga panuntunan sa firewall. - Dapat ay may normal na IPv4 default route sa main routing table ng Linux.
Ang naka-install na executable file ay karaniwang matatagpuan sa sumusunod na lokasyon:
/opt/mudfish/<bersyon ng Mudfish>/bin/mudfish-exclude
Maaaring mahanap ang kasalukuyang path ng instalasyon gamit ang sumusunod na command:
ls /opt/mudfish/*/bin/mudfish-exclude
Kung ang executable file ay hindi nakarehistro sa PATH, palitan ang mudfish-exclude sa mga halimbawa sa ibaba ng buong path na nahanap sa itaas. Halimbawa, ang default na path ng instalasyon para sa bersyon 6.5.4 ay /opt/mudfish/6.5.4/bin/mudfish-exclude.
Pangunahing Paraan ng Paggamit
- Patakbuhin ang Mudfish at ikonekta nang normal ang nais na item o ang Full VPN mode.
- Kung tumatakbo na ang programang nais i-exclude, ganap itong isara kasama na ang tray o mga background process nito.
- Sa terminal, patakbuhin muli ang programa gamit ang sumusunod na format:
sudo mudfish-exclude <program> [options...]
Halimbawa, upang i-exclude ang Discord mula sa Mudfish, patakbuhin ito gaya ng sumusunod:
sudo mudfish-exclude discord
Upang magbukas ng private window habang naka-exclude ang Firefox, patakbuhin ito gaya ng sumusunod:
sudo mudfish-exclude firefox --private-window
Kung may espasyo sa path ng executable file, ipaloob ito sa mga panipi:
sudo mudfish-exclude "/path/to/My Program" --option
Ginagamit ang sudo upang itakda ang patakaran sa network. Ang mismong programang pinatakbo gamit ang sudo mudfish-exclude ... ay tatakbo, hangga't maaari, gamit ang UID, GID, home directory, at desktop session environment ng orihinal na user na tumawag sa sudo.
Mga Dapat Tandaan
- Ang patakaran sa pag-exclude ay inilalapat sa prosesong bagong sinimulan gamit ang
mudfish-excludeat sa mga child process nito. - Hindi maaaring ikabit ang patakaran sa isang programang tumatakbo na. Upang hindi magamit muli ng isang single-instance na programa ang umiiral nitong proseso, dapat mo muna itong isara nang tuluyan.
- Sa karaniwang one-shot na paraan ng pagpapatakbo, awtomatikong nililinis ang patakaran kapag ang programa at ang lahat ng child process nito ay nagtapos na.
- Maaaring magpatakbo ng maraming command na
mudfish-excludenang sabay-sabay. Ang karaniwang patakaran ay nililinis pagkatapos magsara ng huling naka-exclude na programa. - Ang trapiko ng IPv4 ng naka-exclude na programa ay hindi gumagamit ng Mudfish node, mga tampok sa pagpapabilis, o ng public IP ng nasabing path.
Pagsusuri ng Normal na Operasyon
Pinakamadali itong masusuri kapag ang public IPv4 address bago kumonekta sa Full VPN at ang public IPv4 address ng Full VPN node ay magkaiba.
Una, suriin ang address sa isang karaniwang terminal habang nakakonekta ang Full VPN:
curl -4 https://myip.mudfish.net
Patakbuhin ang parehong command gamit ang mudfish-exclude:
sudo mudfish-exclude curl -4 https://myip.mudfish.net
Ang unang resulta ay dapat magpakita ng address sa panig ng Mudfish node, at ang pangalawang resulta ay dapat magpakita ng address ng iyong umiiral na linya ng internet. Ang -4 ay isang opsyon upang suriin lamang sa pamamagitan ng IPv4 alinsunod sa saklaw ng suporta ng tool na ito.
Kapag sinusuri gamit ang browser, ganap munang isara ang browser, pagkatapos ay patakbuhin ito gaya ng sumusunod at pumunta sa https://myip.mudfish.net:
sudo mudfish-exclude firefox
Pagsasara at Paglilinis ng Patakaran
Sa normal na pagsasara, hindi kailangan ng hiwalay na command sa paglilinis. Gayunpaman, kung sapilitang tinapos ang proseso ng mudfish-exclude, hindi normal na nagsara ang terminal, o naputol ang sistema, maaaring maiwan ang patakaran.
Una, isara ang lahat ng programang pinatakbo gamit ang tool na ito, pagkatapos ay patakbuhin ang sumusunod na command:
sudo mudfish-exclude --cleanup
Kung gagamitin mo ang
--cleanuphabang may tumatakbo pang naka-exclude na programa, maaaring agad na maputol ang pag-bypass ng programang iyon.
Mga Opsyon sa Command
Usage: mudfish-exclude [options] program [program options...]
| Opsyon | Paliwanag |
|---|---|
-h, --help | Nagpi-print ng mensahe ng tulong. |
--setup | Itinatakda lamang ang patakaran sa network para sa pag-exclude at magsasara. Hindi maaaring tukuyin kasama ng isang programa. |
--cleanup | Inaalis ang patakaran sa network para sa pag-exclude at magsasara. Hindi maaaring tukuyin kasama ng isang programa. |
--no-setup | Pumapasok sa tinukoy na cgroup at pinapatakbo ang programa nang hindi muling itinatakda ang umiiral na patakaran. |
--cgroup NAME | Tinutukoy ang pangalan ng cgroup v2 na gagamitin. Ang default ay mudfish-exclude. |
--mark VALUE | Tinutukoy ang firewall mark na gagamitin para sa mga packet. Ang default ay 0x6d660001. |
--priority VALUE | Tinutukoy ang prayoridad ng IPv4 policy rule. Ang default ay 8252. |
--table VALUE | Tinutukoy ang numero ng routing table na maglalaman ng umiiral na default route. Ang default ay 8252. |
Upang malinaw na tapusin ang pag-parse ng mga opsyon, maaari mong isulat ang programa pagkatapos ng --:
sudo mudfish-exclude -- firefox --private-window
Muling Paggamit ng Patakaran sa Maraming Programa
Para sa mga karaniwang user, inirerekomenda ang one-shot na paraan ng pagpapatakbo sa bawat programa. Kung kailangan mong manu-manong itakda ang patakaran nang isang beses at gamitin ito nang paulit-ulit sa maraming command, maaari mo itong patakbuhin sa sumusunod na pagkakasunod-sunod:
sudo mudfish-exclude --setup
sudo mudfish-exclude --no-setup discord
sudo mudfish-exclude --no-setup firefox
Pagkatapos isara ang lahat ng programa, siguraduhing linisin ang patakaran:
sudo mudfish-exclude --cleanup
Ang manu-manong paraan ay hindi nagsasagawa ng awtomatikong paglilinis. Bukod dito, ang ilang desktop program ay maaaring lumipat sa ibang cgroup ng systemd habang tumatakbo; para sa mga ganitong programa, mas angkop ang default na one-shot na paraan ng pagpapatakbo na sumusubaybay sa paglipat ng cgroup at awtomatikong naglilinis.
Kung binago mo ang mga halaga ng --cgroup, --mark, --priority, o --table, dapat mong gamitin ang parehong mga halaga sa --setup, --no-setup, at --cleanup. Ang mga custom na halaga ay hindi dapat sumalungat sa umiiral na firewall mark o mga panuntunan sa policy routing ng sistema.
Pag-troubleshoot
mudfish-exclude: command not found
Ang executable file ay hindi kasama sa PATH. Hanapin ang lokasyon ng instalasyon gamit ang sumusunod na command at patakbuhin ito gamit ang buong path:
ls /opt/mudfish/*/bin/mudfish-exclude
sudo /opt/mudfish/6.5.4/bin/mudfish-exclude discord
Ang numero ng bersyon sa pangalawang command ay dapat palitan upang tumugma sa naka-install na bersyon.
network policy setup requires root
Walang pahintulot upang magtakda ng patakaran sa network. Magdagdag ng sudo sa unahan ng command at patakbuhin itong muli:
sudo mudfish-exclude discord
cgroup v2 is required at /sys/fs/cgroup
Ang kasalukuyang sistema ay hindi gumagamit ng cgroup v2 o hindi ito naka-mount sa lokasyong iyon. Maaari mo itong suriin gamit ang sumusunod na command:
test -f /sys/fs/cgroup/cgroup.controllers && echo "cgroup v2 available"
Kung walang na-print, kailangan mong suriin kung paano i-enable ang cgroup v2 sa iyong distribusyon.
iptables rule add failed o Error sa cgroup match
Suriin kung naka-install ang iptables at kung sinusuportahan ng kernel at iptables ang cgroup match. Kahit sa mga distribusyong nakabatay sa nftables, direktang ginagamit ng tool na ito ang mga command na tugma sa iptables, kaya kailangan ng gumaganang compatibility layer ng iptables.
failed to find the IPv4 default route
Hindi nahanap sa main routing table ang IPv4 default route ng umiiral na linya ng internet. Suriin kung mayroong default route sa resulta ng sumusunod na command:
ip -4 route show default table main
Kung walang default route o kung nakaturo na ito sa ibang interface ng VPN, hindi mabubuo ng mudfish-exclude ang orihinal na path ng internet.
Hindi Nagbabago ang Public IP Kahit Na-exclude Na
Suriin ang mga sumusunod nang sunod-sunod:
- Suriin kung talagang nakakonekta ang Full VPN mode at kung ipinapakita ang IP ng node sa karaniwang pagpapatakbo.
- Isara ang lahat ng umiiral na proseso at background process ng target na programa, pagkatapos ay patakbuhin itong muli.
- Gumamit ng
curl -4o paraan ng pagsusuri ng IPv4 upang hindi malito sa mga resulta ng IPv6. - Suriin kung ang target na programa ay may istrukturang nagpapasa ng mga command sa isang hiwalay na serbisyo o sa isang launcher na tumatakbo na. Ang patakaran sa pag-exclude ay inilalapat lamang sa puno ng proseso (process tree) na bagong nilikha ng
mudfish-exclude. - Suriin kung ang default route ng
ip -4 route show default table mainay nakaturo sa aktwal na interface ng internet.
Isinara na ang Programa Ngunit Hindi Pa Rin Natatapos ang Command sa Terminal
Maaaring may child process o background process na tumatakbo pa rin sa exclusion cgroup. Isara ang lahat ng nauugnay na tray icon, launcher, at proseso ng pag-update. Sa default na paraan ng pagpapatakbo, naghihintay muna ito hanggang sa matapos ang lahat ng child process bago linisin ang patakaran.
Kakaiba ang Kilos ng Network Pagkatapos ng Hindi Normal na Pagsasara
Isara ang lahat ng programang pinatakbo gamit ang tool na ito at linisin ang natitirang patakaran:
sudo mudfish-exclude --cleanup
Kung magpapatuloy pa rin ang problema pagkatapos nito, isara ang Mudfish, suriin ang default route at mga panuntunan sa iptables ng sistema, at pagkatapos ay kumonektang muli.
Prinsipyo ng Operasyon
Inilalagay ng mudfish-exclude ang patatakbuhing programa sa isang hiwalay na cgroup v2 at nagtatakda ng iptables mark sa mga IPv4 packet na nagmumula sa cgroup na iyon. Ang mga packet na may ganoong mark ay ipinapasa sa pamamagitan ng isang hiwalay na policy routing table papunta sa default route na nahanap sa Linux main routing table, at inilalapat ang kinakailangang NAT MASQUERADE.
Ang prosesong ito ay hindi nagbabago sa mga setting o shared memory state ng mudrun, mudflow, mudfish, o mudwfp_proxy. Gumagana lamang ang patakaran sa pag-exclude sa antas ng cgroup, iptables, at IPv4 policy routing ng operating system.