Panduan pengguna mudfish-exclude
Program ini hanya tersedia pada Mudfish Cloud VPN 6.5.4 atau lebih baru.
mudfish-exclude adalah alat baris perintah Mudfish untuk Linux yang menjalankan program tertentu di luar rute Mudfish. Alat ini berguna terutama saat menggunakan mode Full VPN tetapi ingin lalu lintas browser, aplikasi pesan, pemutar video, atau alat unduhan langsung memakai koneksi internet semula.
Program biasa -> Rute Mudfish -> Simpul relay
Aplikasi mudfish-exclude -> Rute default semula -> Internet
Alat ini tidak menambahkan pengaturan ke dasbor Mudfish. Cukup mulai program yang akan dikecualikan dengan mudfish-exclude, menggantikan perintah peluncuran biasanya.
Dukungan: saat ini hanya Linux dan IPv4. Tidak tersedia untuk Windows, macOS, atau Android, dan tidak menerapkan kebijakan bypass tersendiri pada lalu lintas IPv6.
Persyaratan lingkungan
Semua kondisi berikut harus terpenuhi.
- Mudfish untuk Linux sudah terpasang.
- cgroup v2 terpasang pada
/sys/fs/cgroup. - Perintah
ip,iptables, dan fitur cgroup match iptables tersedia. - Hak
sudotersedia untuk mengatur policy routing dan aturan firewall. - Tabel routing main Linux memiliki rute default IPv4 yang berfungsi.
Executable biasanya terpasang pada lokasi berikut.
/opt/mudfish/<versi Mudfish>/bin/mudfish-exclude
Temukan lokasi pemasangan dengan perintah berikut.
ls /opt/mudfish/*/bin/mudfish-exclude
Jika executable tidak terdaftar dalam PATH, ganti mudfish-exclude pada contoh berikut dengan jalur lengkap yang ditemukan. Misalnya, lokasi default versi 6.5.4 adalah /opt/mudfish/6.5.4/bin/mudfish-exclude.
Penggunaan dasar
- Jalankan Mudfish dan hubungkan item yang diinginkan atau mode Full VPN dengan normal.
- Jika program yang ingin dikecualikan sudah berjalan, tutup sepenuhnya termasuk proses di baki sistem atau latar belakang.
- Jalankan kembali program dari terminal dengan format berikut.
sudo mudfish-exclude <program> [opsi program...]
Sebagai contoh, untuk mengecualikan Discord dari Mudfish:
sudo mudfish-exclude discord
Untuk mengecualikan Firefox dan membuka jendela privat:
sudo mudfish-exclude firefox --private-window
Jika jalur executable mengandung spasi, apit dengan tanda kutip.
sudo mudfish-exclude "/path/to/My Program" --option
sudo digunakan untuk mengatur kebijakan jaringan. Program yang diluncurkan melalui sudo mudfish-exclude ..., bila memungkinkan, berjalan dengan UID, GID, direktori home, dan lingkungan sesi desktop pengguna asli yang memanggil sudo.
Hal yang perlu diketahui
- Kebijakan pengecualian berlaku pada proses baru yang dimulai oleh
mudfish-excludedan proses turunannya. - Kebijakan tidak dapat ditambahkan belakangan pada program yang sudah berjalan. Tutup program sepenuhnya agar program satu instans tidak memakai ulang proses lama.
- Pada penggunaan sekali jalan biasa, kebijakan dibersihkan otomatis setelah program dan semua proses turunannya berakhir.
- Beberapa perintah
mudfish-excludedapat dijalankan bersamaan. Kebijakan bersama dibersihkan setelah program terakhir yang dikecualikan berakhir. - Lalu lintas IPv4 program yang dikecualikan tidak menggunakan simpul Mudfish, fitur akselerasi, atau IP publik pada rute tersebut.
Memastikan fungsi yang benar
Pemeriksaan paling mudah dilakukan ketika IP publik IPv4 sebelum Full VPN tersambung berbeda dari IP publik IPv4 simpul Full VPN.
Pertama, periksa alamat dari terminal biasa saat Full VPN terhubung.
curl -4 https://myip.mudfish.net
Jalankan perintah yang sama melalui mudfish-exclude.
sudo mudfish-exclude curl -4 https://myip.mudfish.net
Hasil pertama seharusnya menunjukkan alamat simpul Mudfish, sedangkan hasil kedua menunjukkan alamat koneksi internet semula. Opsi -4 membatasi pengujian ke IPv4 sesuai dukungan alat ini.
Untuk memeriksa melalui browser, tutup browser sepenuhnya, jalankan seperti berikut, lalu buka https://myip.mudfish.net.
sudo mudfish-exclude firefox
Mengakhiri dan membersihkan kebijakan
Tidak diperlukan perintah pembersihan saat program berakhir normal. Namun, kebijakan mungkin tertinggal jika proses mudfish-exclude dihentikan paksa, terminal tertutup secara tidak normal, atau sistem terhenti.
Tutup dahulu semua program yang dijalankan melalui alat ini, lalu jalankan:
sudo mudfish-exclude --cleanup
Menggunakan
--cleanupketika program yang dikecualikan masih berjalan dapat langsung menghentikan bypass program tersebut.
Opsi perintah
Penggunaan: mudfish-exclude [opsi] program [opsi program...]
| Opsi | Penjelasan |
|---|---|
-h, --help | Menampilkan bantuan. |
--setup | Hanya mengatur kebijakan jaringan pengecualian, lalu keluar. Tidak boleh disertai program. |
--cleanup | Menghapus kebijakan jaringan pengecualian, lalu keluar. Tidak boleh disertai program. |
--no-setup | Memasuki cgroup yang ditentukan dan menjalankan program tanpa mengatur ulang kebijakan yang ada. |
--cgroup NAME | Menentukan nama cgroup v2. Default: mudfish-exclude. |
--mark VALUE | Menentukan mark firewall untuk paket. Default: 0x6d660001. |
--priority VALUE | Menentukan prioritas aturan policy IPv4. Default: 8252. |
--table VALUE | Menentukan nomor tabel routing yang menampung rute default semula. Default: 8252. |
Untuk mengakhiri pemrosesan opsi secara eksplisit, tulis program setelah --.
sudo mudfish-exclude -- firefox --private-window
Menggunakan ulang kebijakan pada beberapa program
Pengguna biasa disarankan menggunakan cara sekali jalan untuk setiap program. Jika perlu menyiapkan kebijakan secara manual sekali lalu memakainya dalam beberapa perintah, gunakan urutan berikut.
sudo mudfish-exclude --setup
sudo mudfish-exclude --no-setup discord
sudo mudfish-exclude --no-setup firefox
Setelah semua program ditutup, pastikan kebijakan dibersihkan.
sudo mudfish-exclude --cleanup
Cara manual tidak membersihkan secara otomatis. Selain itu, sebagian program desktop dapat berpindah ke cgroup systemd lain saat berjalan. Untuk program tersebut, cara sekali jalan default lebih sesuai karena melacak perpindahan cgroup dan membersihkan secara otomatis.
Jika mengubah nilai --cgroup, --mark, --priority, atau --table, gunakan nilai yang sama pada --setup, --no-setup, dan --cleanup. Nilai kustom tidak boleh bertabrakan dengan mark firewall atau aturan policy routing yang sudah ada pada sistem.
Pemecahan masalah
mudfish-exclude: command not found
Executable tidak tercakup dalam PATH. Temukan lokasinya dengan perintah berikut, lalu jalankan menggunakan jalur lengkap.
ls /opt/mudfish/*/bin/mudfish-exclude
sudo /opt/mudfish/6.5.4/bin/mudfish-exclude discord
Sesuaikan nomor versi pada perintah kedua dengan versi terpasang.
network policy setup requires root
Anda tidak memiliki hak untuk mengatur kebijakan jaringan. Tambahkan sudo di depan perintah dan jalankan kembali.
sudo mudfish-exclude discord
cgroup v2 is required at /sys/fs/cgroup
Sistem tidak menggunakan cgroup v2 atau tidak memasangnya pada lokasi tersebut. Periksa dengan:
test -f /sys/fs/cgroup/cgroup.controllers && echo "cgroup v2 tersedia"
Jika tidak ada keluaran, periksa cara mengaktifkan cgroup v2 pada distribusi Anda.
iptables rule add failed atau kesalahan cgroup match
Pastikan iptables terpasang dan kernel serta iptables mendukung cgroup match. Bahkan pada distribusi berbasis nftables, alat ini memakai perintah kompatibilitas iptables secara langsung sehingga lapisan kompatibilitas iptables harus berfungsi.
failed to find the IPv4 default route
Rute default IPv4 koneksi internet semula tidak ditemukan pada tabel routing main. Pastikan keluaran perintah berikut memiliki rute default.
ip -4 route show default table main
Jika rute default tidak ada atau sudah menunjuk ke antarmuka VPN lain, mudfish-exclude tidak dapat membentuk rute internet semula.
IP publik tidak berubah meskipun sudah dikecualikan
Periksa hal-hal berikut secara berurutan.
- Pastikan mode Full VPN benar-benar terhubung dan program yang dijalankan biasa menampilkan IP simpul.
- Tutup semua proses lama dan latar belakang program tujuan, lalu jalankan kembali.
- Gunakan
curl -4atau pemeriksaan IPv4 agar tidak tertukar dengan hasil IPv6. - Periksa apakah program meneruskan perintah ke layanan terpisah atau launcher yang sudah berjalan. Kebijakan pengecualian hanya berlaku pada turunan proses baru yang dibuat
mudfish-exclude. - Pastikan rute default dari
ip -4 route show default table mainmenunjuk ke antarmuka internet yang sebenarnya.
Perintah terminal belum selesai setelah program ditutup
Proses anak atau latar belakang mungkin masih berjalan dalam cgroup pengecualian. Tutup semua ikon baki sistem, launcher, dan proses pembaruan terkait. Cara default menunggu semua proses anak selesai sebelum membersihkan kebijakan.
Jaringan bermasalah setelah penghentian tidak normal
Tutup semua program yang dijalankan melalui alat ini, lalu bersihkan kebijakan yang tersisa.
sudo mudfish-exclude --cleanup
Jika masalah berlanjut, tutup Mudfish, periksa rute default sistem dan aturan iptables, lalu hubungkan kembali.
Cara kerja
mudfish-exclude menempatkan program dalam cgroup v2 terpisah dan memberikan mark iptables pada paket IPv4 yang dihasilkannya. Paket dengan mark tersebut diteruskan melalui tabel policy routing tersendiri menuju rute default yang ditemukan pada tabel routing main Linux, dengan NAT MASQUERADE yang diperlukan.
Proses ini tidak mengubah pengaturan atau keadaan memori bersama mudrun, mudflow, mudfish, maupun mudwfp_proxy. Kebijakan pengecualian hanya bekerja pada lapisan cgroup, iptables, dan policy routing IPv4 sistem operasi.