Pereiti prie pagrindinio turinio

mudfish-exclude naudotojo vadovas

Informacija

Ši programa galima tik Mudfish Cloud VPN 6.5.4 arba naujesnėje versijoje.

mudfish-exclude yra Linux skirtos Mudfish komandų eilutės įrankis, leidžiantis paleisti konkrečią programą išskiriant ją iš Mudfish maršruto. Jis ypač naudingas naudojant Full VPN, kai norite naršyklės, susirašinėjimo programos, vaizdo leistuvo ar atsisiuntimo įrankio srautą siųsti tiesiogiai per įprastą interneto ryšį.

일반 프로그램       -> 미꾸라지 경로 -> 중계 서버
mudfish-exclude 앱 -> 기존 기본 경로 -> 인터넷

Originalioje schemoje įprasta programa keliauja per Mudfish maršrutą į tarpinį serverį, o su mudfish-exclude paleista programa – per esamą numatytąjį maršrutą į internetą.

Įrankis neprideda nustatymų Mudfish valdymo skyde. Tiesiog paleiskite išskiriamą programą per mudfish-exclude, o ne įprasta jos paleidimo komanda.

Palaikymo ribos: šiuo metu palaikomi tik Linux ir IPv4. Įrankis neveikia Windows, macOS ar Android ir netaiko atskiros apėjimo politikos IPv6 srautui.

Būtina aplinka​

Turi būti tenkinamos visos šios sąlygos:

  • Įdiegta Linux skirta Mudfish.
  • cgroup v2 prijungta prie /sys/fs/cgroup.
  • Galimos komandos ip, iptables ir iptables cgroup match funkcija.
  • Turite sudo teises politikos maršrutizavimui ir užkardos taisyklėms nustatyti.
  • Linux main maršrutizavimo lentelėje yra veikiantis IPv4 numatytasis maršrutas.

Įdiegtas vykdomasis failas paprastai yra čia:

/opt/mudfish/<미꾸라지 버전>/bin/mudfish-exclude

Originaliame kelio pavyzdyje korėjietiškas vietaženklis reiškia Mudfish versiją.

Dabartinę diegimo vietą galite rasti komanda:

ls /opt/mudfish/*/bin/mudfish-exclude

Jei vykdomasis failas neįtrauktas į PATH, tolesniuose pavyzdžiuose pakeiskite mudfish-exclude rastu visu keliu. Pavyzdžiui, 6.5.4 versijos numatytasis kelias yra /opt/mudfish/6.5.4/bin/mudfish-exclude.

Pagrindinis naudojimas​

  1. Paleiskite Mudfish ir įprastai prisijunkite naudodami norimą elementą arba Full VPN režimą.
  2. Jei norima išskirti programa jau veikia, visiškai ją uždarykite, įskaitant dėklo ir foninius procesus.
  3. Terminale paleiskite programą iš naujo tokiu formatu:
sudo mudfish-exclude <프로그램> [프로그램 옵션...]

Originaliuose vietaženkliuose nurodykite programą ir jos parinktis.

Pavyzdžiui, norėdami išskirti Discord iš Mudfish, paleiskite:

sudo mudfish-exclude discord

Norėdami išskirti Firefox ir atverti privatų langą:

sudo mudfish-exclude firefox --private-window

Jei vykdomojo failo kelyje yra tarpų, apgaubkite jį kabutėmis.

sudo mudfish-exclude "/path/to/My Program" --option

sudo naudojama tinklo politikai nustatyti. Pati su sudo mudfish-exclude ... paleista programa, kai įmanoma, vykdoma su pradinio sudo iškvietusio naudotojo UID, GID, namų aplanku ir darbalaukio sesijos aplinka.

Svarbu žinoti​

  • Išskyrimo politika taikoma naujai per mudfish-exclude paleistam procesui ir jo antriniams procesams.
  • Negalima vėliau pritaikyti politikos jau veikiančiai programai. Vieną egzempliorių naudojančią programą pirmiausia visiškai uždarykite, kad ji nepanaudotų esamo proceso.
  • Įprastu vienkartinio paleidimo būdu politika automatiškai pašalinama, kai baigiasi programa ir visi jos antriniai procesai.
  • Galima vienu metu paleisti kelias mudfish-exclude komandas. Bendra politika pašalinama pasibaigus paskutinei išskirtai programai.
  • Išskirtos programos IPv4 srautas nenaudoja Mudfish tarpinio serverio, spartinimo funkcijų ar to maršruto viešojo IP.

Veikimo patikrinimas​

Lengviausia patikrinti, kai viešasis IPv4 adresas prieš Full VPN prisijungimą skiriasi nuo Full VPN tarpinio serverio viešojo IPv4 adreso.

Pirmiausia, prisijungę per Full VPN, patikrinkite adresą įprastame terminale:

curl -4 https://myip.mudfish.net

Tą pačią komandą paleiskite per mudfish-exclude:

sudo mudfish-exclude curl -4 https://myip.mudfish.net

Pirmasis rezultatas turėtų būti Mudfish tarpinio serverio pusės adresas, antrasis – įprasto interneto ryšio adresas. Parinktis -4 apriboja patikrinimą IPv4 pagal šio įrankio palaikymo ribas.

Jei tikrinate naršyklėje, visiškai ją uždarykite, paleiskite taip ir apsilankykite https://myip.mudfish.net:

sudo mudfish-exclude firefox

Uždarymas ir politikos pašalinimas​

Įprastai uždarius atskiros valymo komandos nereikia. Tačiau politika gali likti, jei mudfish-exclude procesas užbaigtas priverstinai, terminalas netikėtai užsidarė arba sistema sustojo.

Pirmiausia uždarykite visas šiuo įrankiu paleistas programas, tada vykdykite:

sudo mudfish-exclude --cleanup

Jei --cleanup naudojate dar veikiant išskirtai programai, jos apėjimas gali būti nedelsiant nutrauktas.

Komandos parinktys​

사용법: mudfish-exclude [옵션] 프로그램 [프로그램 옵션...]

Originali naudojimo eilutė reiškia: mudfish-exclude parinktys, programa ir programos parinktys.

ParinktisAprašymas
-h, --helpParodo pagalbą.
--setupTik nustato išskyrimo tinklo politiką ir baigia darbą. Kartu programos nurodyti negalima.
--cleanupPašalina išskyrimo tinklo politiką ir baigia darbą. Kartu programos nurodyti negalima.
--no-setupNekeisdama esamos politikos pereina į nurodytą cgroup ir paleidžia programą.
--cgroup NAMENurodo naudojamą cgroup v2 pavadinimą. Numatytoji reikšmė – mudfish-exclude.
--mark VALUENurodo paketų užkardos žymą. Numatytoji reikšmė – 0x6d660001.
--priority VALUENurodo IPv4 politikos taisyklės prioritetą. Numatytoji reikšmė – 8252.
--table VALUENurodo maršrutizavimo lentelės, kurioje laikomas ankstesnis numatytasis maršrutas, numerį. Numatytoji reikšmė – 8252.

Norėdami aiškiai užbaigti parinkčių interpretavimą, programą galite rašyti po --:

sudo mudfish-exclude -- firefox --private-window

Politikos pakartotinis naudojimas kelioms programoms​

Įprastiems naudotojams rekomenduojamas atskiras vienkartinis kiekvienos programos paleidimas. Jei reikia politiką rankiniu būdu nustatyti vieną kartą ir naudoti kelioms komandoms, galite vykdyti:

sudo mudfish-exclude --setup
sudo mudfish-exclude --no-setup discord
sudo mudfish-exclude --no-setup firefox

Uždarę visas programas, būtinai pašalinkite politiką:

sudo mudfish-exclude --cleanup

Rankiniu būdu politika automatiškai nepašalinama. Be to, kai kurios darbalaukio programos veikdamos gali pereiti į kitą systemd cgroup. Joms geriau tinka numatytasis vienkartinio paleidimo būdas, kuris seka cgroup pasikeitimą ir automatiškai pašalina politiką.

Jei pakeitėte --cgroup, --mark, --priority ar --table, visose --setup, --no-setup ir --cleanup komandose naudokite tas pačias reikšmes. Pasirinktinės reikšmės neturi konfliktuoti su esamomis sistemos užkardos žymomis ar politikos maršrutizavimo taisyklėmis.

Problemų sprendimas​

mudfish-exclude: command not found​

Vykdomasis failas neįtrauktas į PATH. Raskite diegimo vietą šiomis komandomis ir paleiskite naudodami visą kelią:

ls /opt/mudfish/*/bin/mudfish-exclude
sudo /opt/mudfish/6.5.4/bin/mudfish-exclude discord

Antroje komandoje versijos numerį pakeiskite į įdiegtą versiją.

network policy setup requires root​

Neturite tinklo politikos nustatymo teisių. Pridėkite sudo komandos pradžioje ir paleiskite iš naujo:

sudo mudfish-exclude discord

cgroup v2 is required at /sys/fs/cgroup​

Sistema nenaudoja cgroup v2 arba ji neprijungta nurodytoje vietoje. Patikrinkite šia komanda:

test -f /sys/fs/cgroup/cgroup.controllers && echo "cgroup v2 사용 가능"

Originalus korėjietiškas išvesties tekstas reiškia „cgroup v2 prieinama“. Jei nieko nerodoma, pasidomėkite, kaip jūsų distributyve įjungti cgroup v2.

iptables rule add failed arba cgroup match klaida​

Patikrinkite, ar įdiegta iptables ir ar branduolys bei iptables palaiko cgroup match. Net nftables pagrįstame distributyve šis įrankis tiesiogiai naudoja iptables suderinamas komandas, todėl būtinas veikiantis iptables suderinamumo sluoksnis.

failed to find the IPv4 default route​

Main maršrutizavimo lentelėje nerastas įprasto interneto ryšio IPv4 numatytasis maršrutas. Patikrinkite, ar šios komandos rezultate yra maršrutas default:

ip -4 route show default table main

Jei numatytojo maršruto nėra arba jis jau nukreiptas į kito VPN sąsają, mudfish-exclude negali sukonfigūruoti pradinio interneto maršruto.

Viešasis IP nepasikeičia net išskyrus programą​

Patikrinkite tokia tvarka:

  1. Ar Full VPN iš tiesų prijungtas ir įprastai paleidus rodomas tarpinio serverio IP.
  2. Visiškai uždarykite esamus tikslinės programos ir foninius procesus, tada paleiskite iš naujo.
  3. Naudokite curl -4 arba kitą IPv4 tikrinimo būdą, kad nesupainiotumėte su IPv6 rezultatais.
  4. Patikrinkite, ar tikslinė programa neperduoda komandų atskirai paslaugai arba jau veikiančiai paleidimo programai. Išskyrimo politika taikoma tik naujai mudfish-exclude sukurto proceso šakai.
  5. Patikrinkite, ar ip -4 route show default table main numatytasis maršrutas nukreiptas į tikrąją interneto sąsają.

Programa uždaryta, bet terminalo komanda nesibaigia​

Išskyrimo cgroup vis dar gali veikti antrinis arba foninis procesas. Uždarykite susijusias dėklo programas, paleidimo ir atnaujinimo procesus. Numatytoji paleidimo eiga laukia, kol baigsis visi antriniai procesai, ir tada pašalina politiką.

Po netikėto uždarymo tinklas veikia netinkamai​

Uždarykite visas šiuo įrankiu paleistas programas ir pašalinkite likusią politiką:

sudo mudfish-exclude --cleanup

Jei problema išlieka, uždarykite Mudfish, patikrinkite sistemos numatytąjį maršrutą bei iptables taisykles ir prisijunkite iš naujo.

Veikimo principas​

mudfish-exclude perkelia paleidžiamą programą į atskirą cgroup v2 ir tos cgroup IPv4 paketams nustato iptables žymą. Pažymėti paketai per atskirą politikos maršrutizavimo lentelę nukreipiami į Linux main lentelėje rastą numatytąjį maršrutą, pritaikant reikalingą NAT MASQUERADE.

Šis procesas nekeičia mudrun, mudflow, mudfish ar mudwfp_proxy nustatymų arba bendrosios atminties būsenos. Išskyrimo politika veikia tik operacinės sistemos cgroup, iptables ir IPv4 politikos maršrutizavimo sluoksniuose.