2 puan yazan GN⁺ 2025-04-04 | 1 yorum | WhatsApp'ta paylaş
  • Headscale, Tailscale’in kontrol sunucusu işlevini self-hosted olarak çalıştırabilmek için oluşturulmuş açık kaynak bir alternatif proje
  • Tailscale, WireGuard tabanlı modern bir VPN çözümü olup NAT ortamlarında da çalışan bir overlay ağ kurmayı mümkün kılar
  • Orijinal Tailscale Control sunucusu kapalı kaynak bir yazılımken, Headscale bunun yerine geçebilecek özgürce kurulabilen bir sunucu yazılımı olarak geliştirildi
  • Windows, macOS ve iOS istemcileri hâlâ Tailscale’in GUI’sine ihtiyaç duyar

Headscale’in amacı ve özellikleri

  • Headscale, bireysel kullanıcılar ve küçük açık kaynak organizasyonları için tek bir tailnet’i (sanal özel ağ) destekler
  • Kendi sunucusunu işletmek isteyen kullanıcılar ve özgür yazılım meraklıları için uygun bir çözüm
  • Tasarım kapsamı dar tutulduğu için bakım ve yönetim kolaydır

Başlıca özellikler

  • İstemci düğümleri arasında WireGuard açık anahtarı değişimi
  • Her düğüm için IP adresi atama ve sınırların belirlenmesi
  • Kullanıcılar arasında makine paylaşımı
  • Düğümlerin route advertisement yönetimi
  • Resmî özellik listesine buradan ulaşılabilir

Desteklenen istemci işletim sistemleri

  • Headscale ile uyumlu işletim sistemleri ve istemci listesini resmî belgelerde bulabilirsiniz

Kurulum ve çalıştırmaya dair notlar

  • Reverse proxy veya container tabanlı çalıştırma resmî olarak önerilmez
  • Çalıştırma yöntemi ve yapılandırma için resmî belgelere bakın

Topluluk ve katkı

Geliştirme ortamı ve kod stili

  • Geliştirme için gerekli başlıca araçlar:
    • Go’nun en güncel sürümü
    • Buf (Protobuf üreticisi)
    • Nix ile geliştirme ortamı kurulabilir (nix develop komutu)
  • Kod stili:
    • Go kodu: golangci-lint, golines, gofumpt kullanılır
    • Proto kodu: buf, clang-format kullanılır
    • Diğer dosyalar: prettier ile biçimlendirilir
  • Commit öncesinde kodun make lint ve make fmt ile düzenlenmesi gerekir

Derleme ve test

  • Protobuf kodu değiştirildiğinde Go kodunun yeniden üretilmesi gerekir: make generate
  • Testleri çalıştırma: make test
  • Derleme:
    • nix build
    • veya make build komutu

Diğer bilgiler

  • 2023 FOSDEM’de Headscale ile ilgili bir sunum yapıldı: Videoyu izle
  • Proje Tailscale Inc. ile doğrudan ilişkili değildir; ancak Tailscale’den katkı verenler projede yer almakta ve kod incelemesi ile yön belirleme bağımsız biçimde yürütülmektedir

1 yorum

 
GN⁺ 2025-04-04
Hacker News görüşleri
  • Bu depoya birkaç ayda bir geri dönüp Tailnet lock çalışıyor mu veya bir güvenlik denetimi yapıldı mı diye bakıyorum. Ne yazık ki ikisinde de ilerleme yok; bu yüzden bu sisteme altyapının kritik bir parçası olarak güvenip güvenemeyeceğimden emin değilim

    • Tailscale SaaS’in tüm önermesi, güvenlik duvarlarının etrafında tüneller oluşturmayı ve kullanıcıların bu tüneller üzerinden yönlendirme yapmasını sezgisel ve entegre bir şekilde yönetebilmeyi sağlamasıdır
    • Headscale, güvenlik duvarını aşma ve NAT traversal kısmını iyi çözmüş gibi görünüyor. Ancak aştıkları şeyi telafi edecek kadar güvenlik sağlayıp sağlayamayacağı ya da sadece yerel ağ yöneticisini zorlayan bir araca dönüşüp dönüşmeyeceği soru işareti
    • Tailscale implementasyonu için, kontrol sunucusunun istemcilere ne söylediğini kullanıcıların anlayabileceği veya reddedebileceği bir yöntem sunmadan sunucu kodunun hiç denetlenmemesi cesur bir tercih gibi görünüyor
  • Orkestrasyon sunucusunu self-host etmekle ilgileniyorsanız Netbird’e bakabilirsiniz. Bu araç çok benzer, ancak sunucusu açık kaynak olarak sunuluyor. Dolayısıyla ücretli sürümdeki tüm özelliklere sahip self-host bir kontrol sunucusu ve hoş bir GUI elde edebilirsiniz

  • Headscale’in instance’lar arasında peering/federation’a izin vermesi güzel olurdu (gerekirse ACL yeniden çalışmasından sonra bile). Başlıca sorunlardan biri adres çakışması

    • Öneri: ULA aralığında IPv6-only bir overlay ağa odaklanmak ve kalan 121 biti 20 bit cihaz adresi (~1 milyon) ve 101 bit sunucunun açık anahtar hash’i olarak bölmek. Başka instance’ların açık anahtarlarını ekleyip politika ve ACL kullanarak düğümler arası iletişimi yönetmek
    • Bu fikrin iyi olduğunu düşünüyorum, ancak bu konuyu 2023’te gündeme getirdiğimde bakımcı kradalby bunun kapsam dışı olduğunu söylemişti GitHub issue bağlantısı
  • Proje adı olan Headscale başlığa eklenmeli

    • Headscale HN’de birkaç kez yer aldı
  • Plan 9 üzerinde çalışıp çalışmadığını merak ediyorum

  • Headscale’i seviyorum. Bunu prodüksiyonda devreye aldık ve çok iyi oldu

  • Tailscale koordinasyon sunucusu ele geçirilirse ve tailnet lock etkinse cihazlarımın ne kadar risk altında olacağını merak ediyorum

  • Birçok kullanım senaryosunda (mobil erişim, macOS’te GUI) resmi Tailscale istemcisi, kontrol sunucusunu yapılandırabilme yeteneğine dayanıyor

    • Tailscale’de kaçınılmaz özellik kısıtlaması başlarsa bu yetenek ortadan kalkacaktır
    • Bunu, geçmişte başka şirketler satıldığı veya VC fonu tükendiği için birçok kez hayal kırıklığına uğramış ama şu anda Tailscale’den çok memnun bir müşteri olarak söylüyorum
  • Bu kurulumun wireguard + openwrt kurulumuna kıyasla ne ek değer sunduğunu merak ediyorum

  • "Tailscale implementasyonu için, kontrol sunucusunun istemcilere ne söylediğini kullanıcıların anlayabileceği veya reddedebileceği bir yöntem sunmadan sunucu kodunun hiç denetlenmemesi cesur bir tercih gibi görünüyor" ifadesi, Headscale kontrol sunucusunun kaynak kodunu yayımlamanın tek başına kullanıcıların "kontrol sunucusunun istemcilere ne söylediğini anlayabilmesi veya reddedebilmesi" için yeterli olmadığını ima ediyor

    • Headscale kontrol sunucusunu kullanıyorsanız kullanıcılar, "kontrol sunucusunun istemcilere söylediği her şeyi anlayabilir veya reddedebilir". Bu, kaynak kodunu okuyarak, düzenleyerek ve derleyerek sağlanabilir
    • Tailscale kontrol sunucusunu kullanıyorsanız kullanıcılar, yalnızca Tailscale şirketinin izin verdiği ölçüde "kontrol sunucusunun istemcilere ne söylediğini anlayabilir veya reddedebilir". Kullanıcıların kaynak kodunu düzenlemesi veya derlemesi yasaktır
    • Her kullanıcı, kullandığı üçüncü taraf yazılımı okuyup düzenleme ve derleme seçeneğini istemez. Bazı kullanıcılar, Silikon Vadisi VC fonlarıyla yürüyen bir şirketin sürekli güvencesine bel bağlamaktan memnun olabilir. %100 açık kaynak bir proje isteyen kullanıcılar için Headscale faydalı olabilir
    • Headscale’in yazarı, Tailscale koordinasyon sunucusunu "özünde açık anahtarlar için paylaşımlı bir Dropbox" olarak adlandırıyor