Μετάβαση στο κύριο περιεχόμενο

Οδηγός χρήσης του mudfish-exclude

Πληροφορίες

Αυτό το πρόγραμμα διατίθεται μόνο στο Mudfish Cloud VPN 6.5.4 ή νεότερο.

Το mudfish-exclude είναι ένα εργαλείο γραμμής εντολών του Mudfish για Linux που εκκινεί συγκεκριμένα προγράμματα εκτός της διαδρομής Mudfish. Είναι ιδιαίτερα χρήσιμο όταν χρησιμοποιείτε Full VPN αλλά θέλετε η κίνηση του προγράμματος περιήγησης, μιας εφαρμογής μηνυμάτων, ενός προγράμματος αναπαραγωγής βίντεο ή ενός εργαλείου λήψης να περνά απευθείας από την αρχική σύνδεση Internet.

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

Το παραπάνω διάγραμμα του πρωτοτύπου δείχνει ότι τα κανονικά προγράμματα περνούν από τη διαδρομή Mudfish προς τον ενδιάμεσο διακομιστή, ενώ οι εφαρμογές του mudfish-exclude ακολουθούν την αρχική προεπιλεγμένη διαδρομή προς το Internet.

Το εργαλείο δεν προσθέτει ρυθμίσεις στον πίνακα ελέγχου του Mudfish. Απλώς εκκινήστε το πρόγραμμα που θέλετε να εξαιρέσετε με το mudfish-exclude αντί για τη συνηθισμένη εντολή του.

Υποστήριξη: Προς το παρόν υποστηρίζονται μόνο Linux και IPv4. Δεν μπορεί να χρησιμοποιηθεί σε Windows, macOS ή Android και δεν εφαρμόζει ξεχωριστή πολιτική παράκαμψης στην κίνηση IPv6.

Απαιτούμενο περιβάλλον​

Πρέπει να πληρούνται όλες οι παρακάτω προϋποθέσεις:

  • Να είναι εγκατεστημένο το Mudfish για Linux.
  • Το cgroup v2 να είναι προσαρτημένο στο /sys/fs/cgroup.
  • Να είναι διαθέσιμες οι εντολές ip και iptables και η δυνατότητα cgroup match του iptables.
  • Να έχετε δικαιώματα sudo για τη ρύθμιση δρομολόγησης βάσει πολιτικής και κανόνων τείχους προστασίας.
  • Ο πίνακας δρομολόγησης main του Linux να περιέχει μια έγκυρη προεπιλεγμένη διαδρομή IPv4.

Το εγκατεστημένο εκτελέσιμο βρίσκεται συνήθως στην παρακάτω θέση. Το κορεατικό πεδίο μέσα στις αγκύλες σημαίνει «έκδοση Mudfish».

/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.

Βασική χρήση​

  1. Εκκινήστε το Mudfish και συνδέστε κανονικά το επιθυμητό στοιχείο ή τη λειτουργία Full VPN.
  2. Αν το πρόγραμμα που θέλετε να εξαιρέσετε εκτελείται ήδη, τερματίστε το πλήρως, μαζί με τις διεργασίες παρασκηνίου και το εικονίδιο στην περιοχή ειδοποιήσεων.
  3. Εκκινήστε το ξανά από το τερματικό με την παρακάτω μορφή. Τα κορεατικά πεδία σημαίνουν «πρόγραμμα» και «επιλογές προγράμματος».
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 διαφέρει από τη δημόσια IPv4 του ενδιάμεσου διακομιστή Full VPN.

Πρώτα ελέγξτε τη διεύθυνση από ένα κανονικό τερματικό με ενεργό Full VPN:

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

Εκτελέστε την ίδια εντολή μέσω του mudfish-exclude:

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

Το πρώτο αποτέλεσμα πρέπει να είναι η διεύθυνση του διακομιστή Mudfish και το δεύτερο η διεύθυνση της αρχικής σύνδεσης Internet. Η επιλογή -4 περιορίζει τον έλεγχο σε IPv4, σύμφωνα με το πεδίο υποστήριξης του εργαλείου.

Για έλεγχο από πρόγραμμα περιήγησης, τερματίστε το πλήρως, εκκινήστε το όπως παρακάτω και ανοίξτε το https://myip.mudfish.net.

sudo mudfish-exclude firefox

Τερματισμός και αφαίρεση πολιτικής​

Με κανονικό τερματισμό δεν χρειάζεται ξεχωριστή εντολή καθαρισμού. Ωστόσο, η πολιτική μπορεί να παραμείνει αν τερματιστεί αναγκαστικά το mudfish-exclude, αν κλείσει απροσδόκητα το τερματικό ή αν διακοπεί η λειτουργία του συστήματος.

Κλείστε πρώτα όλα τα προγράμματα που εκκινήθηκαν με αυτό το εργαλείο και έπειτα εκτελέστε:

sudo mudfish-exclude --cleanup

Αν χρησιμοποιήσετε το --cleanup ενώ εκτελούνται εξαιρούμενα προγράμματα, η παράκαμψή τους μπορεί να διακοπεί αμέσως.

Επιλογές εντολής​

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

Η σύνταξη του πρωτοτύπου παραπάνω σημαίνει: mudfish-exclude, επιλογές εργαλείου, πρόγραμμα και προαιρετικές επιλογές προγράμματος.

ΕπιλογήΠεριγραφή
-h, --helpΕμφανίζει βοήθεια.
--setupΡυθμίζει μόνο την πολιτική δικτύου εξαίρεσης και τερματίζει. Δεν μπορεί να συνδυαστεί με πρόγραμμα.
--cleanupΑφαιρεί την πολιτική δικτύου εξαίρεσης και τερματίζει. Δεν μπορεί να συνδυαστεί με πρόγραμμα.
--no-setupΕισέρχεται στο καθορισμένο cgroup και εκτελεί το πρόγραμμα χωρίς να ρυθμίσει ξανά την υπάρχουσα πολιτική.
--cgroup NAMEΟρίζει το όνομα cgroup v2. Η προεπιλογή είναι mudfish-exclude.
--mark VALUEΟρίζει το mark τείχους προστασίας για τα πακέτα. Η προεπιλογή είναι 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. Οι προσαρμοσμένες τιμές δεν πρέπει να συγκρούονται με υπάρχοντα mark τείχους προστασίας ή κανόνες δρομολόγησης βάσει πολιτικής του συστήματος.

Αντιμετώπιση προβλημάτων​

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 ή δεν το έχει προσαρτήσει σε αυτή τη θέση. Ελέγξτε το με την παρακάτω εντολή. Το κορεατικό μήνυμα εξόδου σημαίνει «το cgroup v2 είναι διαθέσιμο».

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

Αν δεν εμφανιστεί τίποτα, ανατρέξτε στον τρόπο ενεργοποίησης του cgroup v2 για τη διανομή σας.

iptables rule add failed ή σφάλμα cgroup match​

Ελέγξτε ότι είναι εγκατεστημένο το iptables και ότι ο πυρήνας και το iptables υποστηρίζουν cgroup match. Ακόμη και σε διανομές που βασίζονται στο nftables, το εργαλείο καλεί απευθείας τη συμβατή εντολή iptables, οπότε απαιτείται λειτουργικό επίπεδο συμβατότητας iptables.

failed to find the IPv4 default route​

Δεν βρέθηκε η προεπιλεγμένη διαδρομή IPv4 της αρχικής σύνδεσης Internet στον πίνακα main. Ελέγξτε αν η παρακάτω εντολή εμφανίζει διαδρομή default.

ip -4 route show default table main

Αν δεν υπάρχει προεπιλεγμένη διαδρομή ή αν δείχνει ήδη σε άλλη διεπαφή VPN, το mudfish-exclude δεν μπορεί να διαμορφώσει την αρχική διαδρομή Internet.

Η δημόσια IP δεν αλλάζει παρά την εξαίρεση​

Ελέγξτε με τη σειρά τα εξής:

  1. Βεβαιωθείτε ότι το Full VPN είναι πράγματι συνδεδεμένο και ότι στην κανονική εκτέλεση εμφανίζεται η IP του ενδιάμεσου διακομιστή.
  2. Τερματίστε όλες τις υπάρχουσες και παρασκηνιακές διεργασίες του προγράμματος και εκκινήστε το ξανά.
  3. Χρησιμοποιήστε curl -4 ή άλλο έλεγχο IPv4, ώστε να μην μπερδέψετε το αποτέλεσμα με IPv6.
  4. Ελέγξτε αν το πρόγραμμα μεταβιβάζει εντολές σε ξεχωριστή υπηρεσία ή σε ήδη ενεργό launcher. Η εξαίρεση εφαρμόζεται μόνο στο δέντρο διεργασιών που δημιουργεί το mudfish-exclude.
  5. Βεβαιωθείτε ότι η προεπιλεγμένη διαδρομή του ip -4 route show default table main δείχνει στην πραγματική διεπαφή Internet.

Το πρόγραμμα έκλεισε αλλά η εντολή στο τερματικό δεν τερματίζεται​

Μπορεί να εκτελούνται ακόμη θυγατρικές ή παρασκηνιακές διεργασίες στο cgroup εξαίρεσης. Κλείστε και τα σχετικά εικονίδια της περιοχής ειδοποιήσεων, τους launchers και τις διεργασίες ενημέρωσης. Ο προεπιλεγμένος τρόπος εκτέλεσης περιμένει να τερματιστούν όλες οι θυγατρικές διεργασίες πριν αφαιρέσει την πολιτική.

Το δίκτυο δυσλειτουργεί μετά από απροσδόκητο τερματισμό​

Κλείστε όλα τα προγράμματα που εκκινήθηκαν με αυτό το εργαλείο και αφαιρέστε την πολιτική που παρέμεινε.

sudo mudfish-exclude --cleanup

Αν το πρόβλημα συνεχιστεί, κλείστε το Mudfish, ελέγξτε την προεπιλεγμένη διαδρομή και τους κανόνες iptables του συστήματος και συνδεθείτε ξανά.

Τρόπος λειτουργίας​

Το mudfish-exclude τοποθετεί το πρόγραμμα σε ξεχωριστό cgroup v2 και προσθέτει ένα mark iptables στα πακέτα IPv4 που παράγονται από αυτό το cgroup. Τα πακέτα με αυτό το mark οδηγούνται μέσω ξεχωριστού πίνακα δρομολόγησης βάσει πολιτικής στην προεπιλεγμένη διαδρομή που βρέθηκε στον πίνακα main του Linux. Εφαρμόζεται επίσης το απαραίτητο NAT MASQUERADE.

Η διαδικασία δεν τροποποιεί τις ρυθμίσεις ή την κατάσταση κοινόχρηστης μνήμης των mudrun, mudflow, mudfish και mudwfp_proxy. Η πολιτική εξαίρεσης λειτουργεί μόνο στα επίπεδα cgroup, iptables και δρομολόγησης IPv4 βάσει πολιτικής του λειτουργικού συστήματος.