- 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
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
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ı
Proje adı olan Headscale başlığa eklenmeli
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
Bu kurulumun
wireguard + openwrtkurulumuna 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