• 12-10-2026, 00:08:20
    #1
    Merhaba arkadaşlar,
    Ekim 2024'ten beri Discord Türkiye'de erişime kapalı. Çoğumuz VPN denedik; yavaş, paralı ve çoğu da zamanla engelleniyor. GoodbyeDPI gibi araçlar ise sadece Windows'ta çalışıyor, yönetici izni ve sürücü istiyor, antivirüse takılıyor; .bat dosyalarıyla uğraşmak da cabası. Bu yüzden **Shroudly**'yi geliştirdik. Ücretsiz, açık kaynak (MIT) ve tek tuşla çalışıyor.

    Tanıtım videosu (2 dk)

    https://www.youtube.com/watch?v=Mb4Zkq1din8


    Nasıl çalışıyor?
    Operatör, bağlantının ilk paketindeki site adını (SNI) okuyup engelliyor. Shroudly bu paketi parçalara bölüyor; filtre site adını okuyamıyor, gerçek sunucu ise sorunsuz birleştiriyor. Trafiğin arada başka bir sunucuya uğramadan doğrudan siteye gidiyor. Yani VPN gibi hız kaybı yok.

    Özellikler
    • Tek tuşla aç/kapat
    • Windows, macOS ve Linux (x64 + ARM) için yerel uygulama
    • Varsayılan modda yönetici izni ve sürücü gerektirmez
    • Engelli siteleri kendisi test eder, çalışan yöntemi kendisi bulur
    • Sahte DNS yanıtlarını eleyen DNS koruması
    • Kapatınca, çökünce ya da elektrik gidince ağ ayarların eski haline döner
    • Daha sert filtreler için Advanced mode (Windows ve Linux)
    • Otomatik güncelleme, 15 dil desteği (Türkçe dahil)
    • Kodun tamamı GitHub'da
    İndir
    https://github.com/umutxyp/Shroudly/releases/latest

    Kaynak kod
    https://github.com/umutxyp/Shroudly

    Bilmeniz gerekenler Shroudly bir VPN değil; IP adresinizi gizlemez, sizi anonim yapmaz. Türkiye'deki gibi site adını okuyan ya da DNS ile yapılan engelleri aşar. Sürümler henüz kod imzalı olmadığı için Windows'ta "Windows kişisel bilgisayarınızı korudu" uyarısı çıkarsa Ek bilgi → Yine de çalıştır deyin.

    Deneyen arkadaşlar operatörünü (Türk Telekom, Superonline, Vodafone, TurkNet…) ve sonucu yazarsa çok sevinirim. Öneri ve hata bildirimlerine açığım.
  • 12-10-2026, 00:31:24
    #2
    Denemedim, kaynak kodları inceleyip derleyince bakacağım, ilk izlenim için güzel, elinize sağlık.
  • 12-10-2026, 00:38:19
    #3
    bnsware adlı üyeden alıntı: mesajı görüntüle
    Denemedim, kaynak kodları inceleyip derleyince bakacağım, ilk izlenim için güzel, elinize sağlık.
    teşekkürler denemeniz sonrası yorumlarını bekleriz.
  • 12-10-2026, 00:42:40
    #4
    Teşekkürler elinize sağlık.
  • 12-10-2026, 00:44:50
    #5
    SEOKOZ adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler elinize sağlık.
    Desteğiniz için teşekkürler.
  • 12-10-2026, 01:02:44
    #6
    umutbayraktar adlı üyeden alıntı: mesajı görüntüle
    teşekkürler denemeniz sonrası yorumlarını bekleriz.
    Maalesef hocam, hiç bir şekilde açmıyor, yönetici yetkisi ile de denedim yok.



    EDİT: DNS zehirlenme koruması ile açınca açılıyor ama, "Discord sesli sohbet çalışmıyor. Motor sadece TCP bağlantılarını aktarıyor anladığım kadarıyla, sesin kullandığı UDP'yi aktarmıyor (koddaki SOCKS5 sunucusu yalnızca CONNECT destekliyor). Yazışma, görsel ve web tarafı çalışır."

    EDİT 2: ""RTC Bağlanıyor"da takılıyor ya da "Rota Yok" uyarısı veriyor bazen, kontrol sağladım ses altyapısı (discord.media) bu bağlantıda engelli değil. Ama arada bir sorun çıkarıyor.
  • 12-10-2026, 01:50:59
    #7
    @umutbayraktar;
    Hocam, kaynak kodu inceleyip Türk Telekom altyapısı üzerinde test ettim. Bulduklarım ve önerilerim, önem sırasına göre:

    1. Sertifika hatasının sebebi: DNS koruması varsayılan olarak kapalı
    Türk Telekom DNS'i discord.com, discord.gg, roblox.com, wattpad.com ve pastebin.com için engelleme sunucusu olan 195.175.254.2'yi döndürüyor. ERR_CERT_AUTHORITY_INVALID hatası oradan geliyor. Bu hatta SNI engeli yok: gerçek IP'ye motor olmadan bağlanınca discord.com 200 dönüyor. Yani Türkiye'de asıl gereken DNS koruması. Ama electron/engine-manager.js'de useDoh: s.dnsProtection === true yazıyor ve arayüzde de varsayılan değer false. Varsayılan olarak açık gelmeli.

    2. "DoH" aslında şifresiz DNS
    core/src/doh.c, 1.1.1.1 ve 8.8.8.8 gibi sunuculara düz UDP/53 ile soruyor. doh.h'deki "TLS üzerinden DoH" açıklaması kodla uyuşmuyor. Operatör UDP/53'ü ele geçirirse koruma çöker (2014'te 8.8.8.8 için yapılmıştı). Önerim: Electron ana sürecinde 127.0.0.1 üzerinde çalışan küçük bir UDP→DoH yönlendirici (RFC 8484, https://1.1.1.1/dns-query ve https://8.8.8.8/dns-query). Sunuculara IP ile bağlanınca SNI gönderilmiyor. Sertifikalar bu IP'leri içerdiği için doğrulama da eksiksiz yapılıyor. Motor önce bu yönlendiriciye sorar, cevap gelmezse mevcut UDP çözücülere düşer. Denedim, çalışıyor.

    3. Engelleme sayfası filtresi yok
    CAPABILITIES.md "bilinen engelleme sayfası adreslerini eliyoruz" diyor, ama doh.c sadece özel ve ayrılmış IP'leri eliyor. 195.175.254.2 listeye eklenmeli. Ayrıca en sondaki getaddrinfo yedeği bu adresi döndürürse reddedilmeli, yoksa yine sertifika hatası çıkıyor.

    4. Bütün trafik proxy'den geçiyor; e-Devlet ve banka sitelerinde sorun çıkabiliyor
    PAC her şeyi SOCKS'a gönderiyor, ayrıca ProxyServer=socks=... da ayarlanıyor. Önerim "sadece listedeki siteler" modunun varsayılan olması: PAC'teki alan adı listesi (alt alan adları dahil) SOCKS'a, geri kalan her şey DIRECT. Bu modda ProxyServer ve ProxyEnable'a hiç dokunmadan sadece AutoConfigURL ayarlanır. Liste kullanıcı tarafından düzenlenebilmeli, "tüm trafik" de seçenek olarak kalabilir.

    5. Sesli sohbet: önceki EDİT'teki "UDP desteği" yorumumu düzeltiyorum
    SOCKS5'e UDP ASSOCIATE eklemek işe yaramaz. Discord (Chromium/WebRTC) ses UDP'sini proxy'den geçirmiyor, Shroudly açık da olsa kapalı da olsa doğrudan gönderiyor. discord.media bu hatta DNS'te engelli değil ve doğrudan açılıyor. Arada çıkan "RTC Bağlanıyor" ve "Rota Yok" sorununun sebebi henüz belli değil, araştırılması gerekiyor. Ayırt etmek için şöyle denenebilir: Shroudly kapalıyken Windows'un kendi DNS şifrelemesini açıp (Ayarlar → Ağ → DNS over HTTPS, 1.1.1.1) Discord'da sesi denemek. Orada da oluyorsa sorun operatörün UDP tarafındadır. Olmuyorsa Shroudly tarafındadır, örneğin ses sunucusunun WebSocket bağlantısı motordan geçerken.

    6. Otomatik güncelleme imzasız exe'yi kendiliğinden kuruyor
    updater.js güncellemeyi indirip 60 saniye sonra kendisi kuruyor. Kod imzası olmadığı için electron-updater Windows'ta imza doğrulaması yapamıyor. Elinde sadece latest.yml'deki SHA-512 var, o da güncellemeyle aynı yerden geliyor. GitHub hesabı ele geçirilirse bütün kullanıcıların bilgisayarında otomatik olarak kod çalıştırılabilir. Önerim: varsayılan olarak "sadece bildir" (yeni sürümün kod değişikliklerine giden linkle birlikte) ya da kod imzalama. SignPath Foundation açık kaynak projelere ücretsiz imza veriyor, SmartScreen uyarısını da çözüyor.

    7. Electron 33 artık güvenlik güncellemesi almıyor
    Electron 43.7.5 ve electron-builder 26.15.3 ile denedim. Pencere, proxy, bildirim ve kurulum sorunsuz çalıştı. Ayrıca electron-store → ajv → fast-uri zincirinde yüksek seviyeli bir açık var, npm audit fix ile kapanıyor.

    8. Site testi DNS engelini görmüyor
    DNS koruması açıkken test, adı DoH ile çözdüğü için DNS ile engellenen sitelere "burada engelli değil" diyor. Test, sistem DNS'inin cevabını şifreli cevapla karşılaştırmalı (ya da engelleme sayfası IP'sine bakmalı) ve "DNS ile engelli" diye ayrı bir sonuç vermeli.

    9. Küçük öneriler
    • İlk açılışta kısa bir açıklama ve "Discord'u test et" butonu, kullanıcıların sorularının çoğunu çözer. Buton sistem proxy ayarıyla gerçek bir istek atıp sonucu göstermeli.
    • Portable sürüm eklenirse: electron-builder'ın varsayılan unpackDirName ayarıyla, ikinci açılış çalışan kopyanın klasörünü silmeye çalışıyor. portable.unpackDirName: true gerekli. Otomatik başlatma ve RunOnce yolu için de process.env.PORTABLE_EXECUTABLE_FILE kullanılmalı.
  • 12-10-2026, 11:13:49
    #8
    bnsware adlı üyeden alıntı: mesajı görüntüle
    @umutbayraktar;
    Hocam, kaynak kodu inceleyip Türk Telekom altyapısı üzerinde test ettim. Bulduklarım ve önerilerim, önem sırasına göre:

    1. Sertifika hatasının sebebi: DNS koruması varsayılan olarak kapalı
    Türk Telekom DNS'i discord.com, discord.gg, roblox.com, wattpad.com ve pastebin.com için engelleme sunucusu olan 195.175.254.2'yi döndürüyor. ERR_CERT_AUTHORITY_INVALID hatası oradan geliyor. Bu hatta SNI engeli yok: gerçek IP'ye motor olmadan bağlanınca discord.com 200 dönüyor. Yani Türkiye'de asıl gereken DNS koruması. Ama electron/engine-manager.js'de useDoh: s.dnsProtection === true yazıyor ve arayüzde de varsayılan değer false. Varsayılan olarak açık gelmeli.

    2. "DoH" aslında şifresiz DNS
    core/src/doh.c, 1.1.1.1 ve 8.8.8.8 gibi sunuculara düz UDP/53 ile soruyor. doh.h'deki "TLS üzerinden DoH" açıklaması kodla uyuşmuyor. Operatör UDP/53'ü ele geçirirse koruma çöker (2014'te 8.8.8.8 için yapılmıştı). Önerim: Electron ana sürecinde 127.0.0.1 üzerinde çalışan küçük bir UDP→DoH yönlendirici (RFC 8484, https://1.1.1.1/dns-query ve https://8.8.8.8/dns-query). Sunuculara IP ile bağlanınca SNI gönderilmiyor. Sertifikalar bu IP'leri içerdiği için doğrulama da eksiksiz yapılıyor. Motor önce bu yönlendiriciye sorar, cevap gelmezse mevcut UDP çözücülere düşer. Denedim, çalışıyor.

    3. Engelleme sayfası filtresi yok
    CAPABILITIES.md "bilinen engelleme sayfası adreslerini eliyoruz" diyor, ama doh.c sadece özel ve ayrılmış IP'leri eliyor. 195.175.254.2 listeye eklenmeli. Ayrıca en sondaki getaddrinfo yedeği bu adresi döndürürse reddedilmeli, yoksa yine sertifika hatası çıkıyor.

    4. Bütün trafik proxy'den geçiyor; e-Devlet ve banka sitelerinde sorun çıkabiliyor
    PAC her şeyi SOCKS'a gönderiyor, ayrıca ProxyServer=socks=... da ayarlanıyor. Önerim "sadece listedeki siteler" modunun varsayılan olması: PAC'teki alan adı listesi (alt alan adları dahil) SOCKS'a, geri kalan her şey DIRECT. Bu modda ProxyServer ve ProxyEnable'a hiç dokunmadan sadece AutoConfigURL ayarlanır. Liste kullanıcı tarafından düzenlenebilmeli, "tüm trafik" de seçenek olarak kalabilir.

    5. Sesli sohbet: önceki EDİT'teki "UDP desteği" yorumumu düzeltiyorum
    SOCKS5'e UDP ASSOCIATE eklemek işe yaramaz. Discord (Chromium/WebRTC) ses UDP'sini proxy'den geçirmiyor, Shroudly açık da olsa kapalı da olsa doğrudan gönderiyor. discord.media bu hatta DNS'te engelli değil ve doğrudan açılıyor. Arada çıkan "RTC Bağlanıyor" ve "Rota Yok" sorununun sebebi henüz belli değil, araştırılması gerekiyor. Ayırt etmek için şöyle denenebilir: Shroudly kapalıyken Windows'un kendi DNS şifrelemesini açıp (Ayarlar → Ağ → DNS over HTTPS, 1.1.1.1) Discord'da sesi denemek. Orada da oluyorsa sorun operatörün UDP tarafındadır. Olmuyorsa Shroudly tarafındadır, örneğin ses sunucusunun WebSocket bağlantısı motordan geçerken.

    6. Otomatik güncelleme imzasız exe'yi kendiliğinden kuruyor
    updater.js güncellemeyi indirip 60 saniye sonra kendisi kuruyor. Kod imzası olmadığı için electron-updater Windows'ta imza doğrulaması yapamıyor. Elinde sadece latest.yml'deki SHA-512 var, o da güncellemeyle aynı yerden geliyor. GitHub hesabı ele geçirilirse bütün kullanıcıların bilgisayarında otomatik olarak kod çalıştırılabilir. Önerim: varsayılan olarak "sadece bildir" (yeni sürümün kod değişikliklerine giden linkle birlikte) ya da kod imzalama. SignPath Foundation açık kaynak projelere ücretsiz imza veriyor, SmartScreen uyarısını da çözüyor.

    7. Electron 33 artık güvenlik güncellemesi almıyor
    Electron 43.7.5 ve electron-builder 26.15.3 ile denedim. Pencere, proxy, bildirim ve kurulum sorunsuz çalıştı. Ayrıca electron-store → ajv → fast-uri zincirinde yüksek seviyeli bir açık var, npm audit fix ile kapanıyor.

    8. Site testi DNS engelini görmüyor
    DNS koruması açıkken test, adı DoH ile çözdüğü için DNS ile engellenen sitelere "burada engelli değil" diyor. Test, sistem DNS'inin cevabını şifreli cevapla karşılaştırmalı (ya da engelleme sayfası IP'sine bakmalı) ve "DNS ile engelli" diye ayrı bir sonuç vermeli.

    9. Küçük öneriler
    • İlk açılışta kısa bir açıklama ve "Discord'u test et" butonu, kullanıcıların sorularının çoğunu çözer. Buton sistem proxy ayarıyla gerçek bir istek atıp sonucu göstermeli.
    • Portable sürüm eklenirse: electron-builder'ın varsayılan unpackDirName ayarıyla, ikinci açılış çalışan kopyanın klasörünü silmeye çalışıyor. portable.unpackDirName: true gerekli. Otomatik başlatma ve RunOnce yolu için de process.env.PORTABLE_EXECUTABLE_FILE kullanılmalı.
    @bnsware; eline sağlık hocam, kodu bu kadar ciddiye alıp TT üzerinde test etmen çok değerli. Çoğunu haklı buldum, hepsini elden geçirdim; yeni sürümde (v2.2.1) şöyle:
    1 — DNS koruması artık varsayılan açık. Zaten asıl mesele buymuş, teşhisin doğru.
    2 — Haklısın, "DoH" düz UDP'ydi. Tam senin önerdiğin gibi yaptım: ana süreçte 127.0.0.1'de bir DoH yönlendirici, IP ile ve SNI'siz, sertifika doğrulamalı (RFC 8484). Motor önce ona soruyor, cevap gelmezse eski UDP çözücülere düşüyor.
    3 — 195.175.254.2 artık eleniyor, en sondaki getaddrinfo yedeğinde de reddediliyor. Doc'taki yanlış ifadeyi de düzelttim.
    4 — "Sadece listedeki siteler" modunu ekledim ve varsayılan yaptım; listedekiler (alt alan adları dahil) proxy'den, gerisi DIRECT. Liste düzenlenebiliyor, "tüm trafik" seçeneği duruyor. Windows'ta bu modda ProxyServer'a dokunmuyor, sadece AutoConfigURL.
    5 — Düzeltmen doğru, UDP ASSOCIATE işe yaramaz, ses zaten proxy'den geçmiyor. "RTC Bağlanıyor" olayını deneyenlerle ayrıca kovalayacağız; senin DNS-over-HTTPS'le ayırma yöntemini deneyeceğim.
    7 — Electron 43'e geçtim, fast-uri açığı kapandı. (Bir de electron-updater'ın js-yaml'ini güncelledim, audit artık temiz.)
    8 — Site testi artık sistem DNS'i engelleme IP'si döndürüyorsa "DNS ile engelli ama çözüldü" diyor.
    9 — İlk açılışta kısa açıklama notu ekledim; site testi zaten vardı.
    6 — En kritik uyarın bu, haklısın. Kalıcı çözüm kod imzalama; SignPath Foundation'a başvuruyorum, kabul edilince Windows derlemeleri imzalı çıkacak (CI'ı da ona göre kurdum). O gelene kadar davranışı değiştirmedim ama akılda.
    Tekrar sağ ol, bu seviyede inceleme az bulunur. Takıldığın başka yer olursa yaz.
  • 12-10-2026, 13:46:35
    #9
    umutbayraktar adlı üyeden alıntı: mesajı görüntüle
    @bnsware; eline sağlık hocam, kodu bu kadar ciddiye alıp TT üzerinde test etmen çok değerli. Çoğunu haklı buldum, hepsini elden geçirdim; yeni sürümde (v2.2.1) şöyle:
    1 — DNS koruması artık varsayılan açık. Zaten asıl mesele buymuş, teşhisin doğru.
    2 — Haklısın, "DoH" düz UDP'ydi. Tam senin önerdiğin gibi yaptım: ana süreçte 127.0.0.1'de bir DoH yönlendirici, IP ile ve SNI'siz, sertifika doğrulamalı (RFC 8484). Motor önce ona soruyor, cevap gelmezse eski UDP çözücülere düşüyor.
    3 — 195.175.254.2 artık eleniyor, en sondaki getaddrinfo yedeğinde de reddediliyor. Doc'taki yanlış ifadeyi de düzelttim.
    4 — "Sadece listedeki siteler" modunu ekledim ve varsayılan yaptım; listedekiler (alt alan adları dahil) proxy'den, gerisi DIRECT. Liste düzenlenebiliyor, "tüm trafik" seçeneği duruyor. Windows'ta bu modda ProxyServer'a dokunmuyor, sadece AutoConfigURL.
    5 — Düzeltmen doğru, UDP ASSOCIATE işe yaramaz, ses zaten proxy'den geçmiyor. "RTC Bağlanıyor" olayını deneyenlerle ayrıca kovalayacağız; senin DNS-over-HTTPS'le ayırma yöntemini deneyeceğim.
    7 — Electron 43'e geçtim, fast-uri açığı kapandı. (Bir de electron-updater'ın js-yaml'ini güncelledim, audit artık temiz.)
    8 — Site testi artık sistem DNS'i engelleme IP'si döndürüyorsa "DNS ile engelli ama çözüldü" diyor.
    9 — İlk açılışta kısa açıklama notu ekledim; site testi zaten vardı.
    6 — En kritik uyarın bu, haklısın. Kalıcı çözüm kod imzalama; SignPath Foundation'a başvuruyorum, kabul edilince Windows derlemeleri imzalı çıkacak (CI'ı da ona göre kurdum). O gelene kadar davranışı değiştirmedim ama akılda.
    Tekrar sağ ol, bu seviyede inceleme az bulunur. Takıldığın başka yer olursa yaz.
    Yardımım dokunduysa ne mutlu bana. Başarılarınızın devamını diliyorum. Verdiğim önerileri kendime düzeltilmiş ve gelişmiş sürüm olarak kendim kodladım. UI değişikliği ve Android uygulamasına kadar hazırladım (android de güzel tasarımlı oldu tabii). İncelemek isterseniz eğer alt domaine kurduğum sistem:

    https://ugipass.ugilabs.com
    (MIT Lisansına göre değişim ve düzenleme yapıldı. Reklam ve duyuru yok sadece sistemi oturtmak için testler için yaptım şu an kullanıyorum.)