Langkau ke kandungan utama

Panduan pengguna mudfish-exclude

Maklumat

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 ip dan iptables serta fungsi cgroup match iptables mesti tersedia.
  • Keizinan sudo diperlukan 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​

  1. Jalankan Mudfish dan sambungkan item yang dikehendaki atau Full VPN dengan betul.
  2. Jika program sasaran sudah berjalan, tutup sepenuhnya, termasuk ikon dulang dan proses latar belakang.
  3. 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-exclude dan 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-exclude boleh 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 --cleanup ketika program yang dikecualikan masih berjalan boleh menghentikan pintasannya serta-merta.

Pilihan arahan​

사용법: mudfish-exclude [옵션] 프로그램 [프로그램 옵션...]
PilihanPenerangan
-h, --helpMemaparkan bantuan.
--setupMenetapkan dasar rangkaian pengecualian sahaja, kemudian keluar. Program tidak boleh ditentukan bersama pilihan ini.
--cleanupMembuang dasar rangkaian pengecualian, kemudian keluar. Program tidak boleh ditentukan bersama pilihan ini.
--no-setupMemasuki cgroup yang ditentukan dan menjalankan program tanpa menetapkan semula dasar sedia ada.
--cgroup NAMEMenentukan nama cgroup v2. Lalainya ialah mudfish-exclude.
--mark VALUEMenentukan mark tembok api untuk paket. Lalainya ialah 0x6d660001.
--priority VALUEMenentukan keutamaan peraturan dasar IPv4. Lalainya ialah 8252.
--table VALUEMenentukan 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.

  1. Pastikan Full VPN benar-benar tersambung dan pelancaran biasa memaparkan IP pelayan perantara.
  2. Tutup semua proses sedia ada dan proses latar belakang program sasaran, kemudian jalankan semula.
  3. Gunakan curl -4 atau kaedah semakan IPv4 supaya tidak terkeliru dengan hasil IPv6.
  4. 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.
  5. Pastikan laluan lalai ip -4 route show default table main menunjuk 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.