Пређи на главни садржај

Корисничко упутство за mudfish-exclude

Информације

Овај програм доступан је само у Mudfish Cloud VPN 6.5.4 или новијем.

mudfish-exclude је алатка командне линије за Linux која покреће одређени програм изузимајући га из путање Mudfish-а. Посебно је корисна када користите Full VPN, али желите да саобраћај прегледача, месинџера, видео-плејера или алатке за преузимање иде директно преко постојеће интернет везе.

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

Изворни дијаграм приказује да обични програми иду путањом Mudfish-а до посредничког сервера, а апликација покренута преко mudfish-exclude користи постојећу подразумевану путању до интернета.

Алатка не додаје подешавања у контролну таблу Mudfish-а. Програм који желите да изузмете једноставно покрените преко mudfish-exclude уместо уобичајеном командом.

Подршка: тренутно су подржани само Linux и IPv4. Алатка није доступна за Windows, macOS или Android и не примењује засебну политику заобилажења на IPv6 саобраћај.

Потребно окружење​

Сви следећи услови морају бити испуњени:

  • Mudfish за Linux мора бити инсталиран.
  • cgroup v2 мора бити монтиран на /sys/fs/cgroup.
  • Команде ip и iptables и функција cgroup match у iptables-у морају бити доступне.
  • Потребна су 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.

Основна употреба​

  1. Покрените Mudfish и успешно повежите жељене ставке или Full VPN.
  2. Ако програм који изузимате већ ради, потпуно га затворите, укључујући системску палету и позадинске процесе.
  3. У терминалу га поново покрените у следећем облику.
sudo mudfish-exclude <프로그램> [프로그램 옵션...]

Корејски параметри означавају програм и његове опције. На пример, за изузимање Discord-а:

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-ом, личним директоријумом и окружењем радне сесије првобитног корисника који је позвао sudo.

Важно је знати​

  • Политика изузимања важи за нови процес покренут преко mudfish-exclude и његове потомке.
  • Не може се накнадно придружити већ покренутом програму. Потпуно затворите програм који дозвољава само једну инстанцу како не би поново користио постојећи процес.
  • При уобичајеном једнократном покретању политика се аутоматски уклања када се програм и сви његови потомци заврше.
  • Можете истовремено покренути више команди mudfish-exclude. Заједничка политика уклања се након завршетка последњег изузетог програма.
  • IPv4 саобраћај изузетог програма не користи посредничке сервере Mudfish-а, убрзавање нити јавну IP адресу те путање.

Провера исправног рада​

Најлакше је проверити када се јавна IPv4 адреса пре Full VPN повезивања разликује од јавне IPv4 адресе Full VPN посредничког сервера.

Најпре проверите адресу у обичном терминалу док је 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Ознака заштитног зида за пакете; подразумевано 0x6d660001.
--priority VALUEПриоритет IPv4 policy правила; подразумевано 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. Прилагођене вредности не смеју бити у сукобу са постојећим ознакама заштитног зида или правилима рутирања система.

Решавање проблема​

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 команде, па је потребан исправан слој компатибилности.

failed to find the IPv4 default route​

У табели main није пронађена подразумевана IPv4 путања постојеће интернет везе. Проверите да ли резултат следеће команде садржи путању default.

ip -4 route show default table main

Ако подразумевана путања не постоји или већ показује на други VPN интерфејс, mudfish-exclude не може подесити првобитну интернет путању.

Јавна IP адреса се не мења ни после изузимања​

Проверите редом:

  1. Да ли је Full VPN заиста повезан и да ли обично покретање приказује IP адресу посредничког сервера.
  2. Затворите све постојеће и позадинске процесе циљног програма, па га поново покрените.
  3. Користите curl -4 или другу IPv4 проверу да не помешате резултат са IPv6 адресом.
  4. Проверите да ли програм прослеђује команду засебној услузи или већ покренутом покретачу. Политика важи само за стабло нових процеса које направи mudfish-exclude.
  5. Проверите да ли подразумевана путања из ip -4 route show default table main показује на стварни интернет интерфејс.

Програм је затворен, али терминалска команда не завршава рад​

Потомак или позадински процес можда још ради у изузетом cgroup-у. Затворите све повезане иконе у системској палети, покретаче и процесе ажурирања. Подразумевани поступак чека завршетак свих потомака пре уклањања политике.

Мрежа не ради правилно после неочекиваног завршетка​

Затворите све програме покренуте алатком и уклоните преосталу политику.

sudo mudfish-exclude --cleanup

Ако проблем траје, затворите Mudfish, проверите системску подразумевану путању и iptables правила, па се поново повежите.

Начин рада​

mudfish-exclude смешта програм у засебан cgroup v2 и поставља iptables ознаку на IPv4 пакете из те групе. Пакети са том ознаком преко засебне табеле рутирања по правилима иду подразумеваном путањом пронађеном у Linux табели main, уз потребан NAT MASQUERADE.

Поступак не мења подешавања нити стање дељене меморије процеса mudrun, mudflow, mudfish и mudwfp_proxy. Политика изузимања ради само у слојевима cgroup, iptables и IPv4 рутирања по правилима оперативног система.