Panduan pengguna mudfish-exclude
Alat ini hanya tersedia dalam Mudfish Cloud VPN 6.5.4 atau lebih baharu.
mudfish-exclude ialah alat baris perintah Mudfish untuk Linux yang menjalankan program tertentu di luar laluan Mudfish. Ia berguna dalam Full VPN apabila trafik pelayar, pemesejan, pemain video atau alat muat turun perlu menggunakan sambungan Internet asal secara terus.
일반 프로그램 -> 미꾸라지 경로 -> 중계 서버
mudfish-exclude 앱 -> 기존 기본 경로 -> 인터넷
Alat ini tidak menambah tetapan pada papan pemuka Mudfish. Mulakan program yang hendak dikecualikan dengan mudfish-exclude menggantikan arahan pelancaran biasa.
Skop sokongan: Pada masa ini, hanya Linux dan IPv4 disokong. Alat ini tidak tersedia pada Windows, macOS atau Android, dan tidak menerapkan dasar pintasan berasingan untuk IPv6.
Keperluan persekitaran
Semua syarat berikut diperlukan.
- Mudfish untuk Linux mesti dipasang.
- cgroup v2 mesti dilekapkan pada
/sys/fs/cgroup. - Arahan
ipdaniptablesserta fungsi cgroup match iptables mesti tersedia. - Keizinan
sudodiperlukan untuk menetapkan penghalaan dasar dan peraturan tembok api. - Jadual penghalaan main Linux mesti mempunyai laluan lalai IPv4 yang berfungsi.
Fail boleh laksana biasanya dipasang di lokasi berikut.
/opt/mudfish/<미꾸라지 버전>/bin/mudfish-exclude
Cari lokasi pemasangan semasa dengan arahan berikut.
ls /opt/mudfish/*/bin/mudfish-exclude
Jika fail boleh laksana tiada dalam PATH, gantikan mudfish-exclude dalam contoh dengan laluan penuh yang ditemui. Contohnya, lokasi lalai versi 6.5.4 ialah /opt/mudfish/6.5.4/bin/mudfish-exclude.
Penggunaan asas
- Jalankan Mudfish dan sambungkan item yang dikehendaki atau Full VPN dengan betul.
- Jika program sasaran sudah berjalan, tutup sepenuhnya, termasuk ikon dulang dan proses latar belakang.
- Jalankan semula program dalam terminal menggunakan format berikut.
sudo mudfish-exclude <프로그램> [프로그램 옵션...]
Contohnya, untuk mengecualikan Discord daripada Mudfish:
sudo mudfish-exclude discord
Untuk mengecualikan Firefox dan membuka tetingkap peribadi:
sudo mudfish-exclude firefox --private-window
Jika laluan fail mengandungi ruang, apit dengan tanda petikan.
sudo mudfish-exclude "/path/to/My Program" --option
sudo digunakan untuk menetapkan dasar rangkaian. Program yang dilancarkan melalui sudo mudfish-exclude ... sendiri, jika boleh, berjalan menggunakan UID, GID, direktori rumah dan persekitaran sesi desktop pengguna asal yang memanggil sudo.
Perkara yang perlu diketahui
- Dasar pengecualian terpakai pada proses baharu yang dimulakan oleh
mudfish-excludedan semua proses anaknya. - Dasar tidak boleh dilekatkan kemudian pada program yang sudah berjalan. Tutup sepenuhnya terlebih dahulu supaya program satu tika tidak menggunakan semula proses sedia ada.
- Dalam kaedah pelancaran biasa, dasar dibersihkan secara automatik selepas program dan semua proses anak tamat.
- Beberapa arahan
mudfish-excludeboleh dijalankan serentak. Dasar bersama dibersihkan selepas program terakhir yang dikecualikan tamat. - Trafik IPv4 program yang dikecualikan tidak menggunakan pelayan perantara, pecutan Mudfish atau IP awam laluan tersebut.
Mengesahkan operasi
Pemeriksaan paling mudah apabila IPv4 awam sambungan asal berbeza daripada IPv4 awam pelayan Full VPN.
Mula-mula, semak alamat dalam terminal biasa ketika Full VPN tersambung.
curl -4 https://myip.mudfish.net
Jalankan arahan yang sama melalui mudfish-exclude.
sudo mudfish-exclude curl -4 https://myip.mudfish.net
Hasil pertama sepatutnya alamat pelayan perantara Mudfish dan hasil kedua alamat sambungan Internet asal. Pilihan -4 mengehadkan semakan kepada IPv4, sepadan dengan sokongan alat ini.
Untuk menyemak melalui pelayar, tutup pelayar sepenuhnya, jalankan seperti berikut dan buka https://myip.mudfish.net.
sudo mudfish-exclude firefox
Penutupan dan pembersihan dasar
Penutupan biasa tidak memerlukan arahan pembersihan. Namun, dasar mungkin tertinggal jika proses mudfish-exclude ditamatkan secara paksa, terminal ditutup secara tidak normal atau sistem terhenti.
Tutup semua program yang dijalankan melalui alat ini, kemudian jalankan arahan berikut.
sudo mudfish-exclude --cleanup
Menggunakan
--cleanupketika program yang dikecualikan masih berjalan boleh menghentikan pintasannya serta-merta.
Pilihan arahan
사용법: mudfish-exclude [옵션] 프로그램 [프로그램 옵션...]
| Pilihan | Penerangan |
|---|---|
-h, --help | Memaparkan bantuan. |
--setup | Menetapkan dasar rangkaian pengecualian sahaja, kemudian keluar. Program tidak boleh ditentukan bersama pilihan ini. |
--cleanup | Membuang dasar rangkaian pengecualian, kemudian keluar. Program tidak boleh ditentukan bersama pilihan ini. |
--no-setup | Memasuki cgroup yang ditentukan dan menjalankan program tanpa menetapkan semula dasar sedia ada. |
--cgroup NAME | Menentukan nama cgroup v2. Lalainya ialah mudfish-exclude. |
--mark VALUE | Menentukan mark tembok api untuk paket. Lalainya ialah 0x6d660001. |
--priority VALUE | Menentukan keutamaan peraturan dasar IPv4. Lalainya ialah 8252. |
--table VALUE | Menentukan nombor jadual penghalaan untuk menyimpan laluan lalai asal. Lalainya ialah 8252. |
Letakkan program selepas -- untuk menamatkan penghuraian pilihan secara jelas.
sudo mudfish-exclude -- firefox --private-window
Menggunakan semula dasar untuk beberapa program
Pengguna biasa disarankan menjalankan setiap program melalui kaedah sekali jalan. Jika perlu menetapkan dasar secara manual sekali dan menggunakannya semula untuk beberapa arahan, gunakan urutan berikut.
sudo mudfish-exclude --setup
sudo mudfish-exclude --no-setup discord
sudo mudfish-exclude --no-setup firefox
Selepas semua program ditutup, pastikan dasar dibersihkan.
sudo mudfish-exclude --cleanup
Kaedah manual tidak membersihkan dasar secara automatik. Sesetengah program desktop juga boleh berpindah ke cgroup systemd lain semasa berjalan. Untuk program sedemikian, kaedah lalai lebih sesuai kerana ia menjejaki perpindahan cgroup dan melakukan pembersihan automatik.
Jika nilai --cgroup, --mark, --priority atau --table diubah, gunakan nilai yang sama dalam --setup, --no-setup dan --cleanup. Nilai tersuai tidak boleh bercanggah dengan mark tembok api atau peraturan penghalaan dasar sedia ada.
Penyelesaian masalah
mudfish-exclude: command not found
Fail boleh laksana tiada dalam PATH. Cari lokasi pemasangan dengan arahan berikut, kemudian jalankan menggunakan laluan penuh.
ls /opt/mudfish/*/bin/mudfish-exclude
sudo /opt/mudfish/6.5.4/bin/mudfish-exclude discord
Gantikan nombor versi dalam arahan kedua dengan versi yang dipasang.
network policy setup requires root
Tiada keizinan untuk menetapkan dasar rangkaian. Tambah sudo di hadapan arahan dan cuba semula.
sudo mudfish-exclude discord
cgroup v2 is required at /sys/fs/cgroup
Sistem tidak menggunakan cgroup v2 atau tidak melekapkannya di lokasi tersebut. Semak dengan arahan berikut.
test -f /sys/fs/cgroup/cgroup.controllers && echo "cgroup v2 사용 가능"
Jika tiada output, semak cara mengaktifkan cgroup v2 untuk pengedaran anda.
Ralat iptables rule add failed atau cgroup match
Pastikan iptables dipasang dan kernel serta iptables menyokong cgroup match. Pada pengedaran berasaskan nftables juga, alat ini menggunakan arahan keserasian iptables secara terus, jadi lapisan keserasian iptables yang berfungsi diperlukan.
failed to find the IPv4 default route
Laluan lalai IPv4 sambungan asal tidak ditemui dalam jadual main. Semak sama ada output berikut mengandungi laluan default.
ip -4 route show default table main
Jika tiada laluan lalai atau ia sudah menunjuk ke antara muka VPN lain, mudfish-exclude tidak dapat mengkonfigurasi laluan Internet asal.
IP awam tidak berubah walaupun program dikecualikan
Semak perkara berikut mengikut urutan.
- Pastikan Full VPN benar-benar tersambung dan pelancaran biasa memaparkan IP pelayan perantara.
- Tutup semua proses sedia ada dan proses latar belakang program sasaran, kemudian jalankan semula.
- Gunakan
curl -4atau kaedah semakan IPv4 supaya tidak terkeliru dengan hasil IPv6. - Semak sama ada program menyerahkan arahan kepada perkhidmatan berasingan atau launcher yang sudah berjalan. Dasar hanya terpakai pada rantaian proses baharu yang dicipta oleh
mudfish-exclude. - Pastikan laluan lalai
ip -4 route show default table mainmenunjuk ke antara muka Internet sebenar.
Arahan terminal tidak tamat selepas program ditutup
Proses anak atau latar belakang mungkin masih berjalan dalam cgroup pengecualian. Tutup ikon dulang, launcher dan proses kemas kini yang berkaitan. Kaedah lalai menunggu semua proses anak tamat sebelum membersihkan dasar.
Rangkaian bermasalah selepas penutupan tidak normal
Tutup semua program yang dilancarkan melalui alat ini, kemudian bersihkan dasar yang tertinggal.
sudo mudfish-exclude --cleanup
Jika masalah berterusan, tutup Mudfish, semak laluan lalai sistem dan peraturan iptables, kemudian sambungkan semula.
Cara ia berfungsi
mudfish-exclude meletakkan program dalam cgroup v2 berasingan dan memberikan mark iptables kepada paket IPv4 daripada cgroup itu. Paket bertanda dihantar melalui jadual penghalaan dasar berasingan ke laluan lalai yang ditemui dalam jadual main Linux, dengan NAT MASQUERADE digunakan apabila diperlukan.
Proses ini tidak mengubah tetapan atau keadaan memori kongsi mudrun, mudflow, mudfish atau mudwfp_proxy. Dasar pengecualian hanya berfungsi pada lapisan cgroup, iptables dan penghalaan dasar IPv4 sistem pengendalian.