Руководство пользователя mudfish-exclude
Эта программа доступна только в Mudfish Cloud VPN 6.5.4 и новее.
mudfish-exclude — утилита командной строки для Linux, позволяющая запускать отдельные программы вне маршрутов Mudfish. Она особенно полезна в режиме Full VPN, когда трафик браузера, мессенджера, видеоплеера или загрузчика нужно направить напрямую через обычное интернет-соединение.
일반 프로그램 -> 미꾸라지 경로 -> 중계 서버
mudfish-exclude 앱 -> 기존 기본 경로 -> 인터넷
Утилита не добавляет настройки на панель управления Mudfish. Запускайте нужную программу через mudfish-exclude вместо обычной команды.
Область поддержки: Сейчас поддерживаются только Linux и IPv4. Утилита недоступна в Windows, macOS и Android и не применяет отдельную политику обхода к IPv6-трафику.
Требования к среде
Необходимо выполнить все следующие условия.
- Установлен Mudfish для Linux.
- cgroup v2 смонтирован в
/sys/fs/cgroup. - Доступны команды
ipиiptables, а также сопоставление cgroup в iptables. - Есть права
sudoдля настройки маршрутизации по политикам и правил межсетевого экрана. - В таблице маршрутизации main Linux есть рабочий маршрут IPv4 по умолчанию.
Установленный исполняемый файл обычно находится здесь.
/opt/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.
- Если исключаемая программа уже работает, полностью закройте её, включая значки в трее и фоновые процессы.
- Запустите программу заново из терминала в следующем формате.
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, домашним каталогом и окружением рабочего стола исходного пользователя, вызвавшего sudo.
Что нужно учитывать
- Политика исключения применяется к новому процессу, запущенному через
mudfish-exclude, и его дочерним процессам. - Нельзя применить политику задним числом к уже работающей программе. Сначала полностью закройте приложение, чтобы программа с одним экземпляром не использовала прежний процесс.
- При обычном запуске одной командой политика автоматически удаляется после завершения программы и всех её дочерних процессов.
- Можно одновременно выполнять несколько команд
mudfish-exclude. Общая политика удаляется после завершения последней исключённой программы. - IPv4-трафик исключённой программы не использует релейные серверы Mudfish, ускорение и публичный IP-адрес этого маршрута.
Проверка работы
Проверять проще всего, когда публичный 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 может немедленно прекратиться.
Параметры команды
사용법: mudfish-exclude [옵션] 프로그램 [프로그램 옵션...]
| Параметр | Описание |
|---|---|
-h, --help | Выводит справку. |
--setup | Только создаёт сетевую политику исключения и завершает работу. Указывать программу одновременно нельзя. |
--cleanup | Удаляет сетевую политику исключения и завершает работу. Указывать программу одновременно нельзя. |
--no-setup | Входит в заданный cgroup и запускает программу, не создавая политику заново. |
--cgroup NAME | Задаёт имя cgroup v2. По умолчанию: mudfish-exclude. |
--mark VALUE | Задаёт метку межсетевого экрана для пакетов. По умолчанию: 0x6d660001. |
--priority VALUE | Задаёт приоритет правила политики IPv4. По умолчанию: 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. Пользовательские значения не должны конфликтовать с существующими метками межсетевого экрана или правилами маршрутизации по политикам.
Решение проблем
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 в вашем дистрибутиве.
Ошибка iptables rule add failed или сопоставления cgroup
Убедитесь, что iptables установлен, а ядро и iptables поддерживают сопоставление cgroup. Даже в дистрибутивах на базе 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 релейного сервера.
- Полностью завершите прежние и фоновые процессы целевой программы, затем запустите её заново.
- Используйте
curl -4или другой способ проверки IPv4, чтобы не спутать результат с IPv6. - Проверьте, не передаёт ли программа команды отдельной службе или уже работающему лаунчеру. Политика исключения действует только на дерево процессов, созданное заново через
mudfish-exclude. - Убедитесь, что маршрут по умолчанию в
ip -4 route show default table mainуказывает на реальный интернет-интерфейс.