Ana içeriğe atla

mudfish-exclude kullanıcı kılavuzu

Bilgi

Bu program yalnızca Mudfish Cloud VPN 6.5.4 veya üzeri sürümlerde kullanılabilir.

mudfish-exclude, Linux için Mudfish'te belirli programları Mudfish rotasından hariç tutarak çalıştıran bir komut satırı aracıdır. Özellikle Full VPN kullanırken tarayıcı, mesajlaşma uygulaması, video oynatıcı veya indirme aracının trafiğini mevcut internet hattından doğrudan göndermek istediğinizde kullanılabilir.

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

Kaynak şemada normal program Mudfish rotası üzerinden aktarma sunucusuna, mudfish-exclude uygulaması ise mevcut varsayılan rota üzerinden internete gider.

Bu araç Mudfish panosuna ayar eklemez. Hariç tutacağınız programı normal komutu yerine mudfish-exclude ile başlatın.

Destek kapsamı: Şu anda yalnızca Linux ve IPv4 desteklenir. Windows, macOS ve Android'de kullanılamaz; IPv6 trafiğine ayrı bir atlama politikası uygulanmaz.

Gerekli ortam​

Aşağıdaki koşulların tümü sağlanmalıdır.

  • Linux için Mudfish kurulu olmalıdır.
  • cgroup v2, /sys/fs/cgroup konumuna bağlanmış olmalıdır.
  • ip, iptables ve iptables'ın cgroup eşleştirme özelliği kullanılabilir olmalıdır.
  • Politika yönlendirmesini ve güvenlik duvarı kurallarını ayarlamak için sudo yetkisi gerekir.
  • Linux main yönlendirme tablosunda geçerli bir IPv4 varsayılan rotası bulunmalıdır.

Kurulan çalıştırılabilir dosya genellikle şuradadır. Korece yer tutucu Mudfish sürümünü belirtir.

/opt/mudfish/<미꾸라지 버전>/bin/mudfish-exclude

Mevcut kurulum yolunu şu komutla bulabilirsiniz.

ls /opt/mudfish/*/bin/mudfish-exclude

Dosya PATH içinde değilse aşağıdaki örneklerdeki mudfish-exclude yerine bulduğunuz tam yolu kullanın. Örneğin 6.5.4 sürümünün varsayılan yolu /opt/mudfish/6.5.4/bin/mudfish-exclude şeklindedir.

Temel kullanım​

  1. Mudfish'i çalıştırıp istediğiniz öğeyi veya Full VPN modunu normal şekilde bağlayın.
  2. Hariç tutulacak program çalışıyorsa sistem tepsisi ve arka plan işlemleri dahil tamamen kapatın.
  3. Terminalden programı şu biçimde yeniden çalıştırın. Korece yer tutucular programı ve program seçeneklerini belirtir.
sudo mudfish-exclude <프로그램> [프로그램 옵션...]

Örneğin Discord'u Mudfish'ten hariç tutmak için:

sudo mudfish-exclude discord

Firefox'u hariç tutup özel pencere açmak için:

sudo mudfish-exclude firefox --private-window

Çalıştırılabilir dosyanın yolunda boşluk varsa tırnak içine alın.

sudo mudfish-exclude "/path/to/My Program" --option

sudo, ağ politikasını ayarlamak için kullanılır. sudo mudfish-exclude ... ile başlatılan programın kendisi, mümkün olduğunda sudo çağrısını yapan asıl kullanıcının UID, GID, ev dizini ve masaüstü oturumu ortamıyla çalıştırılır.

Bilmeniz gerekenler​

  • Hariç tutma politikası mudfish-exclude ile yeni başlatılan işleme ve alt işlemlerine uygulanır.
  • Zaten çalışan bir programa sonradan politika eklenemez. Tek örnekli programın mevcut işlemi yeniden kullanmaması için önce tamamen kapatılmalıdır.
  • Normal tek çalıştırma yönteminde program ve tüm alt işlemleri bittiğinde politika otomatik temizlenir.
  • Birden fazla mudfish-exclude komutunu aynı anda çalıştırabilirsiniz. Ortak politika son hariç tutulan program kapandıktan sonra temizlenir.
  • Hariç tutulan programın IPv4 trafiği Mudfish aktarma sunucularını, hızlandırma işlevlerini ve bu rotanın genel IP adresini kullanmaz.

Çalıştığını doğrulama​

Full VPN bağlantısından önceki genel IPv4 adresi ile Full VPN aktarma sunucusunun genel IPv4 adresi farklıysa doğrulama en kolay şekilde yapılır.

Önce Full VPN bağlıyken normal terminalde adresi kontrol edin.

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

Aynı komutu mudfish-exclude ile çalıştırın.

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

İlk sonuç Mudfish aktarma sunucusu tarafındaki adresi, ikinci sonuç mevcut internet hattının adresini göstermelidir. -4, aracın destek kapsamına uygun olarak yalnızca IPv4 ile test etmek içindir.

Tarayıcıyla kontrol ederken tarayıcıyı tamamen kapatın, aşağıdaki gibi çalıştırın ve https://myip.mudfish.net adresine gidin.

sudo mudfish-exclude firefox

Çıkış ve politika temizliği​

Normal çıkışta ayrı bir temizleme komutu gerekmez. Ancak mudfish-exclude işlemi zorla sonlandırılırsa, terminal beklenmedik şekilde kapanırsa veya sistem durursa politika kalabilir.

Önce bu araçla başlattığınız tüm programları kapatın, ardından şu komutu çalıştırın.

sudo mudfish-exclude --cleanup

Hariç tutulan programlar çalışırken --cleanup kullanmak, bu programların atlama işlevini hemen durdurabilir.

Komut seçenekleri​

Aşağıdaki kaynak sözdizimi, seçeneklerden sonra programın ve program seçeneklerinin yazılacağını belirtir.

사용법: mudfish-exclude [옵션] 프로그램 [프로그램 옵션...]
SeçenekAçıklama
-h, --helpYardımı yazdırır.
--setupYalnızca hariç tutma ağ politikasını ayarlar ve çıkar. Bir programla birlikte belirtilemez.
--cleanupHariç tutma ağ politikasını kaldırır ve çıkar. Bir programla birlikte belirtilemez.
--no-setupMevcut politikayı yeniden ayarlamadan belirtilen cgroup'a girip programı çalıştırır.
--cgroup NAMEKullanılacak cgroup v2 adını belirler. Varsayılan mudfish-exclude değeridir.
--mark VALUEPaketlerin güvenlik duvarı mark değerini belirler. Varsayılan 0x6d660001 değeridir.
--priority VALUEIPv4 politika kuralı önceliğini belirler. Varsayılan 8252 değeridir.
--table VALUEMevcut varsayılan rotayı tutacak yönlendirme tablosunun numarasını belirler. Varsayılan 8252 değeridir.

Seçeneklerin yorumlanmasını açıkça bitirmek için programı -- sonrasına yazabilirsiniz.

sudo mudfish-exclude -- firefox --private-window

Politikayı birden fazla programda yeniden kullanma​

Normal kullanıcılar için her programı tek seferde başlatma yöntemi önerilir. Politikayı elle bir kez ayarlayıp birden fazla komutta kullanmanız gerekiyorsa şu sırayı izleyebilirsiniz.

sudo mudfish-exclude --setup
sudo mudfish-exclude --no-setup discord
sudo mudfish-exclude --no-setup firefox

Tüm programları kapattıktan sonra politikayı mutlaka temizleyin.

sudo mudfish-exclude --cleanup

Elle yöntemde otomatik temizlik yapılmaz. Ayrıca bazı masaüstü programları çalışırken systemd'nin başka bir cgroup'una geçebilir. Bu programlarda cgroup geçişini izleyen ve otomatik temizlik yapan varsayılan tek çalıştırma yöntemi daha uygundur.

--cgroup, --mark, --priority veya --table değerlerini değiştirdiyseniz --setup, --no-setup ve --cleanup için aynı değerleri kullanmalısınız. Özel değerler mevcut güvenlik duvarı mark değerleriyle veya politika yönlendirme kurallarıyla çakışmamalıdır.

Sorun giderme​

mudfish-exclude: command not found​

Çalıştırılabilir dosya PATH içinde değildir. Şu komutla konumunu bulun ve tam yoluyla çalıştırın.

ls /opt/mudfish/*/bin/mudfish-exclude
sudo /opt/mudfish/6.5.4/bin/mudfish-exclude discord

İkinci komuttaki sürüm numarasını kurulu sürüme göre değiştirin.

network policy setup requires root​

Ağ politikasını ayarlama yetkiniz yoktur. Komutun başına sudo ekleyerek tekrar çalıştırın.

sudo mudfish-exclude discord

cgroup v2 is required at /sys/fs/cgroup​

Sistem cgroup v2 kullanmıyor veya belirtilen konuma bağlamamış. Şu komutla kontrol edebilirsiniz. Komuttaki Korece mesaj “cgroup v2 kullanılabilir” anlamındadır.

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

Hiçbir çıktı yoksa dağıtımınızda cgroup v2'yi etkinleştirme yöntemini kontrol etmelisiniz.

iptables rule add failed veya cgroup eşleştirme hatası​

iptables kurulu mu ve çekirdek ile iptables cgroup eşleştirmeyi destekliyor mu kontrol edin. nftables tabanlı dağıtımlarda bile araç doğrudan iptables uyumluluk komutlarını kullandığından çalışan bir iptables uyumluluk katmanı gerekir.

failed to find the IPv4 default route​

main yönlendirme tablosunda mevcut internet hattının IPv4 varsayılan rotası bulunamadı. Şu komutun çıktısında default rotası olup olmadığını kontrol edin.

ip -4 route show default table main

Varsayılan rota yoksa veya zaten başka bir VPN arayüzünü gösteriyorsa mudfish-exclude asıl internet yolunu yapılandıramaz.

Hariç tutulmasına rağmen genel IP değişmiyor​

Şu sırayla kontrol edin.

  1. Full VPN'in gerçekten bağlı olduğunu ve normal çalıştırmada aktarma sunucusunun IP'sinin göründüğünü doğrulayın.
  2. Hedef programın mevcut ve arka plan işlemlerini tamamen kapatıp yeniden çalıştırın.
  3. IPv6 sonuçlarıyla karıştırmamak için curl -4 veya başka bir IPv4 kontrol yöntemi kullanın.
  4. Hedef programın komutları ayrı bir hizmete veya zaten çalışan bir başlatıcıya aktarıp aktarmadığını kontrol edin. Politika yalnızca mudfish-exclude tarafından yeni oluşturulan işlem ağacına uygulanır.
  5. ip -4 route show default table main çıktısındaki varsayılan rotanın gerçek internet arayüzünü gösterdiğini kontrol edin.

Program kapandı ama terminal komutu bitmiyor​

Alt veya arka plan işlemleri hariç tutma cgroup'unda hâlâ çalışıyor olabilir. İlgili sistem tepsisi simgelerini, başlatıcıları ve güncelleme işlemlerini de kapatın. Varsayılan yöntem tüm alt işlemler bitene kadar bekler, sonra politikayı temizler.

Beklenmedik kapanmadan sonra ağda sorun var​

Bu araçla başlattığınız tüm programları kapatıp kalan politikayı temizleyin.

sudo mudfish-exclude --cleanup

Sorun sürerse Mudfish'i kapatın, sistemin varsayılan rotasını ve iptables kurallarını kontrol edin, ardından yeniden bağlanın.

Çalışma ilkesi​

mudfish-exclude, çalıştırılacak programı ayrı bir cgroup v2'ye yerleştirir ve bu cgroup'un IPv4 paketlerine iptables mark değeri ekler. Bu işareti taşıyan paketler ayrı bir politika yönlendirme tablosuyla Linux main tablosunda bulunan varsayılan rotaya iletilir ve gerekli NAT MASQUERADE uygulanır.

Bu işlem mudrun, mudflow, mudfish veya mudwfp_proxy ayarlarını ya da paylaşılan bellek durumunu değiştirmez. Hariç tutma politikası yalnızca işletim sisteminin cgroup, iptables ve IPv4 politika yönlendirme katmanlarında çalışır.