Zum Hauptinhalt springen

mudfish-exclude-Benutzerhandbuch

info

Dieses Programm ist nur in der Version Mudfish Cloud VPN 6.5.4 oder höher verfügbar.

mudfish-exclude ist ein Befehlszeilentool, das nur bestimmte Programme auf Mudfish für Linux ausführt, indem es sie aus dem Mudfish-Pfad ausschließt. Insbesondere können Sie den Full VPN-Modus verwenden, wenn Sie Datenverkehr von Browsern, Messengern, Videoplayern, Download-Tools usw. direkt an die bestehende Internetleitung senden möchten.

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

Dieses Tool fügt keine Einstellungen zum Mudfish-Dashboard hinzu. Starten Sie einfach das Programm, das Sie ausschließen möchten, mit mudfish-exclude anstelle des üblichen Ausführungsbefehls.

Unterstützungsbereich: Derzeit werden nur Linux und IPv4 unterstützt. Es kann nicht in Windows, macOS und Android verwendet werden, und auf den IPv6-Verkehr wird keine separate Umgehungsrichtlinie angewendet.

erforderliche Umgebung​

Alle folgenden Bedingungen sind erforderlich:

  • Mudfish für Linux muss installiert sein.
  • cgroup v2 muss auf /sys/fs/cgroup montiert werden.
  • Die Anweisungen ip und iptables sowie die Funktion cgroup match von iptables müssen verfügbar sein.
  • Sie müssen über die Berechtigung sudo verfügen, um Richtlinienrouting und Firewallregeln einzurichten.
  • Die Routing-Tabelle main von Linux muss eine fehlerfreie Standardroute IPv4 haben.

Installierte ausführbare Dateien befinden sich normalerweise in:

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

Den aktuellen Installationspfad finden Sie mit folgendem Befehl:

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

Wenn die ausführbare Datei nicht unter PATH registriert ist, ersetzen Sie mudfish-exclude im Beispiel unten durch den vollständigen Pfad, den Sie oben gesehen haben. Der Standardinstallationspfad für die Version 6.5.4 lautet beispielsweise /opt/mudfish/6.5.4/bin/mudfish-exclude.

Grundlegende Verwendung​

  1. Führen Sie Mudfish aus und schließen Sie das gewünschte Element oder den Full VPN-Mod normal an.
  2. Wenn das Programm, das Sie ausschließen möchten, bereits läuft, beenden Sie den Taskleisten- oder Hintergrundprozess vollständig.
  3. Führen Sie das Programm im Terminal erneut mit dem folgenden Format aus:
sudo mudfish-exclude <프로그램> [프로그램 옵션...]

Um beispielsweise Discord von Mudfish auszuschließen, führen Sie Folgendes aus:

sudo mudfish-exclude discord

Um ein privates Fenster zu öffnen und gleichzeitig Firefox auszuschließen, führen Sie Folgendes aus:

sudo mudfish-exclude firefox --private-window

Wenn der ausführbare Pfad Leerzeichen enthält, schließen Sie ihn in Anführungszeichen ein.

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

sudo wird zum Festlegen von Netzwerkrichtlinien verwendet. Das als sudo mudfish-exclude ... ausgeführte Programm selbst wird nach Möglichkeit als UID, GID, Home-Verzeichnis und Desktop-Sitzungsumgebung des ursprünglichen Benutzers ausgeführt, der sudo aufgerufen hat.

Wissenswertes​

  • Die Ausschlussrichtlinie gilt für neu gestartete Prozesse mit mudfish-exclude und deren untergeordnete Prozesse.
  • Sie können später keine Richtlinie an ein Programm anhängen, das bereits ausgeführt wird. Einzelinstanzprogramme müssen zunächst sauber beendet werden, um eine Wiederverwendung vorhandener Prozesse zu vermeiden.
  • Bei einem typischen Ansatz mit einmaliger Ausführung wird die Richtlinie automatisch bereinigt, wenn sowohl das Programm als auch seine untergeordneten Prozesse beendet werden.
  • Es können mehrere mudfish-exclude-Befehle gleichzeitig ausgeführt werden. Gemeinsame Richtlinien werden nach dem Ende des letzten Ausschlussprogramms bereinigt.
  • Der IPv4-Verkehr von ausgeschlossenen Programmen nutzt auf dieser Route nicht den Mudfish-Relay-Server, die Beschleunigungsfunktionen und das öffentliche IP.

Überprüfen Sie den Normalbetrieb​

Dies kann am einfachsten bestätigt werden, wenn die öffentliche IPv4-Adresse vor der Verbindung mit Full VPN sich von der öffentlichen IPv4-Adresse des Full VPN-Relay-Servers unterscheidet.

Überprüfen Sie zunächst die Adresse des allgemeinen Terminals, an das Full VPN angeschlossen ist.

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

Führen Sie den gleichen Befehl wie mudfish-exclude aus.

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

Das erste Ergebnis sollte die Adresse von Mudfish auf der Relay-Server-Seite sein und das zweite Ergebnis sollte die Adresse Ihrer bestehenden Internetleitung sein. -4 ist eine Option, um nur mit IPv4 zu scannen, um dem Umfang der Unterstützung für dieses Tool zu entsprechen.

Wenn Sie mit einem Browser prüfen, schließen Sie den Browser vollständig und führen Sie dann Folgendes aus, um eine Verbindung zu https://myip.mudfish.net herzustellen.

sudo mudfish-exclude firefox

Kündigung und Richtlinienfreigabe​

Während des normalen Herunterfahrens ist kein separater Bereinigungsbefehl erforderlich. Die Richtlinie kann jedoch bestehen bleiben, wenn der mudfish-exclude-Prozess gewaltsam beendet wird, das Terminal abnormal geschlossen wird oder das System unterbrochen wird.

Schließen Sie zunächst alle mit diesem Tool gestarteten Programme und führen Sie dann den folgenden Befehl aus.

sudo mudfish-exclude --cleanup

Die Verwendung von --cleanup, wenn ein ausgeschlossenes Programm ausgeführt wird, kann dazu führen, dass dieses Programm sofort umgangen wird.

Befehlsoptionen​

사용법: mudfish-exclude [옵션] 프로그램 [프로그램 옵션...]
OptionBeschreibung
-h, --helpDruckt die Hilfe.
--setupLegen Sie nur die Netzwerkrichtlinie für den Ausschluss und Beenden von fest. Programme können nicht zusammen angegeben werden.
--cleanupEntfernen Sie die Netzwerkrichtlinie für den -Ausschluss und beenden Sie den Vorgang. Programme können nicht zusammen angegeben werden.
--no-setupGibt den angegebenen cgroup ein und führt das Programm aus, ohne die bestehende Richtlinie zurückzusetzen.
--cgroup NAMEGibt den zu verwendenden Namen cgroup v2 an. Der Standardwert ist mudfish-exclude.
--mark VALUEGibt die Firewall mark an, die für -Pakete verwendet werden soll. Der Standardwert ist 0x6d660001.
--priority VALUEIPv4 policy rule Gibt die Priorität an. Der Standardwert ist 8252.
--table VALUEGibt die Routing-Tabellennummer an, die die vorhandene Standardroute enthalten wird. Der Standardwert ist 8252.

Um die Interpretation der Optionen klar zu vervollständigen, können Sie das Programm nach -- schreiben.

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

Wiederverwendung von Richtlinien in mehreren Programmen​

Für allgemeine Benutzer wird der Run-Once-Program-Ansatz empfohlen. Wenn Sie die Richtlinie einmal manuell festlegen und sie dann für mehrere Befehle wiederverwenden müssen, können Sie sie in der folgenden Reihenfolge ausführen:

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

Stellen Sie nach dem Schließen aller Programme sicher, dass Sie die Richtlinie löschen.

sudo mudfish-exclude --cleanup

Bei der manuellen Methode wird keine automatische Bereinigung durchgeführt. Darüber hinaus können sich einige Desktop-Programme während der Ausführung von systemd auf andere cgroup verschieben. Daher ist für diese Programme der Standardansatz „Einmal ausführen“, der die cgroup-Bewegung verfolgt und automatisch bereinigt, besser geeignet.

Wenn Sie die Werte von --cgroup, --mark, --priority und --table geändert haben, müssen Sie dieselben Werte in --setup, --no-setup und --cleanup verwenden. Benutzerdefinierte Werte dürfen nicht mit vorhandenen Firewall-Regeln mark oder policy routing auf Ihrem System in Konflikt stehen.

Fehlerbehebung​

mudfish-exclude: command not found​

Die ausführbare Datei ist nicht in PATH enthalten. Suchen Sie den Installationsort mit dem folgenden Befehl und führen Sie ihn mit dem vollständigen Pfad aus.

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

Die Versionsnummer im zweiten Befehl muss ersetzt werden, damit sie mit Ihrer installierten Version übereinstimmt.

network policy setup requires root​

Sie sind nicht berechtigt, Netzwerkrichtlinien festzulegen. Führen Sie es erneut aus und stellen Sie dem Befehl sudo voran.

sudo mudfish-exclude discord

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

cgroup v2 wird derzeit nicht vom System verwendet oder ist nicht an diesem Speicherort gemountet. Sie können es mit dem folgenden Befehl überprüfen:

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

Wenn nichts herauskommt, müssen Sie prüfen, wie Sie cgroup v2 für Ihre Distribution aktivieren.

Fehler iptables rule add failed oder cgroup match​

Stellen Sie sicher, dass iptables installiert ist und dass der Kernel und iptables cgroup match unterstützen. Selbst auf nftables-basierten Distributionen verwendet dieses Tool direkt iptables-kompatible Anweisungen und erfordert daher eine normale iptables-kompatible Schicht.

failed to find the IPv4 default route​

Die Standardroute für IPv4 für die vorhandene Internetleitung wurde in der Routingtabelle main nicht gefunden. Stellen Sie sicher, dass der Pfad default in den folgenden Befehlsergebnissen vorhanden ist:

ip -4 route show default table main

Wenn es keine Standardroute gibt oder diese bereits auf eine andere VPN-Schnittstelle verweist, kann mudfish-exclude die ursprüngliche Internetroute nicht konfigurieren.

Das offizielle IP ändert sich auch nach dem Ausschluss nicht​

Bitte überprüfen Sie Folgendes der Reihe nach:

  1. Stellen Sie sicher, dass der Full VPN-Modus tatsächlich verbunden ist und dass der Relay-Server IP während der normalen Ausführung sichtbar ist.
  2. Beenden Sie alle bestehenden und Hintergrundprozesse des Zielprogramms und führen Sie es erneut aus.
  3. Um Verwechslungen mit dem IPv6-Ergebnis zu vermeiden, verwenden Sie die Verifizierungsmethode curl -4 oder IPv4.
  4. Prüfen Sie, ob das Zielprogramm Befehle an einen separaten Dienst oder einen bereits laufenden Launcher übergibt. Die Ausschlussrichtlinie gilt nur für neu erstellte Prozesslinien von mudfish-exclude.
  5. Stellen Sie sicher, dass der Standardpfad für ip -4 route show default table main auf eine echte Internetschnittstelle verweist.

Der Terminalbefehl wird nicht beendet, wenn das Programm geschlossen wird​

Untergeordnete oder Hintergrundprozesse können möglicherweise noch auf dem ausgeschlossenen cgroup ausgeführt werden. Schließen Sie alle zugehörigen Taskleistensymbole, Startprogramme und sogar Aktualisierungsprozesse. Die Standardausführungsmethode besteht darin, zu warten, bis alle untergeordneten Prozesse abgeschlossen sind, und dann die Richtlinie zu bereinigen.

Das Netzwerk ist nach einem abnormalen Herunterfahren nicht normal​

Schließen Sie alle mit diesem Tool ausgeführten Programme und bereinigen Sie alle verbleibenden Richtlinien.

sudo mudfish-exclude --cleanup

Wenn das Problem danach weiterhin besteht, fahren Sie Mudfish herunter, überprüfen Sie den Standardpfad und die iptables-Regeln des Systems und stellen Sie dann die Verbindung wieder her.

Wie es funktioniert​

mudfish-exclude platziert das auszuführende Programm in einem separaten cgroup v2 und setzt iptables mark auf das aus diesem cgroup generierte IPv4-Paket. Pakete mit entsprechendem mark werden über die separate policy routing-Tabelle an die Standardroute weitergeleitet, die in der Linux main-Routing-Tabelle gefunden wird, und das erforderliche NAT MASQUERADE wird angewendet.

Durch diesen Vorgang werden die Einstellungen oder der Shared-Memory-Status von mudrun, mudflow, mudfish oder mudwfp_proxy nicht geändert. Die Ausschlussrichtlinie funktioniert nur in den Schichten cgroup, iptables und IPv4 policy routing des Betriebssystems.