Lewati ke konten utama

Panduan pengguna mudfish-exclude

info

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 sudo tersedia 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​

  1. Jalankan Mudfish dan hubungkan item yang diinginkan atau mode Full VPN dengan normal.
  2. Jika program yang ingin dikecualikan sudah berjalan, tutup sepenuhnya termasuk proses di baki sistem atau latar belakang.
  3. 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-exclude dan 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-exclude dapat 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 --cleanup ketika program yang dikecualikan masih berjalan dapat langsung menghentikan bypass program tersebut.

Opsi perintah​

Penggunaan: mudfish-exclude [opsi] program [opsi program...]
OpsiPenjelasan
-h, --helpMenampilkan bantuan.
--setupHanya mengatur kebijakan jaringan pengecualian, lalu keluar. Tidak boleh disertai program.
--cleanupMenghapus kebijakan jaringan pengecualian, lalu keluar. Tidak boleh disertai program.
--no-setupMemasuki cgroup yang ditentukan dan menjalankan program tanpa mengatur ulang kebijakan yang ada.
--cgroup NAMEMenentukan nama cgroup v2. Default: mudfish-exclude.
--mark VALUEMenentukan mark firewall untuk paket. Default: 0x6d660001.
--priority VALUEMenentukan prioritas aturan policy IPv4. Default: 8252.
--table VALUEMenentukan 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.

  1. Pastikan mode Full VPN benar-benar terhubung dan program yang dijalankan biasa menampilkan IP simpul.
  2. Tutup semua proses lama dan latar belakang program tujuan, lalu jalankan kembali.
  3. Gunakan curl -4 atau pemeriksaan IPv4 agar tidak tertukar dengan hasil IPv6.
  4. 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.
  5. Pastikan rute default dari ip -4 route show default table main menunjuk 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.