SSD Nodes Learn Hosting plans →
Rehberler Matt ConnorYazan Matt Connor · Güncellendi 2026-08-27

NetBird VPN Sunucusu Kendi VPS Üzerinde Nasıl Kurulur?

NetBird mesh VPN altyapısını kendi VPS sunucunuzda barındırın. DNS, TLS yapılandırması, kurulum anahtarları ve Headscale ile karşılaştırmalı kurulum rehberine göz atın.

NetBird VPN sunucusunu kendi sunucunuzda barındırmanın sağladıkları

NetBird VPN sunucusunu kendi altyapınızda barındırmak, kontrol düzlemini (control plane) sahip olduğunuz bir VPS üzerine taşır: Bu katman, eş (peer) listesini tutar, hangi makinenin hangisine erişebileceğine karar verir ve iki eşin NAT (ağ adresi çevirisi) arkasında birbirini bulmasına yardımcı olur. Tünellerin kendisi yine WireGuard tabanlıdır ve doğrudan makineleriniz arasında şifrelenir. Değişen şey, cihaz envanterinizi veya giriş akışınızı hiçbir dış şirketin tutmuyor olmasıdır. Bunun size ne kazandırdığını net bir şekilde anlamalısınız; çünkü barındırılan bir kontrol düzlemi de trafiğinizi şifreleyen anahtarları asla tutmaz ve bir koordinasyon sunucusunun ele geçirilmesi durumunda aslında neler yapabileceği, çoğu insanın okumadan önce varsaydığından çok daha sınırlı bir listedir.

NetBird, halihazırda bildiğiniz iki şeyin arasında yer alır. Bir mesh overlay yapısıdır; yani eşler, her şeyi tek bir ağ geçidi üzerinden göndermek yerine birbirlerine doğrudan bağlanırlar. Aynı zamanda uçtan uca kendi sunucunuzda barındırılabilir; bu da onu Headscale, kendi sunucunuzda barındırılan Tailscale kontrol sunucusu ile karşı karşıya getirir. Eğer şimdiye kadar yalnızca tek bir ağ geçidi olan bir tünel çalıştırdıysanız, önce standart WireGuard ile mesh overlay arasındaki fark konusunu okuyun; çünkü bu sayfanın geri kalanını anlamlı kılan zihinsel model budur.

Eğer aslında istediğiniz, tüm trafiğinizin çıkış yaptığı tek bir sunucu ise, bir mesh yapısı bu iş için gerekenden daha fazla karmaşıklık içerir. Tek bir VPS üzerinde standart bir WireGuard VPN veya bir Tailscale çıkış düğümü (exit node), bu işi çok daha az operasyonel yükle yapar. Eğer hedefiniz makineleri birbirine bağlamak yerine tek bir özel ağa erişmekse, bir VPS üzerindeki Tailscale alt ağ yönlendiricisi (subnet router), aşağıdaki yığının hiçbirine ihtiyaç duymadan bu IP aralığını mevcut tailnet ağınıza duyurur.

Stack içerisinde gerçekte neler çalışıyor

Düzen yakın zamanda değiştiği için eski dokümanların çoğu eski yapıyı tarif etmektedir. Ağustos 2026 itibarıyla v0.76.2 sürümünde, hızlı başlangıç betiği varsayılan olarak üç servis içeren bir Compose dosyası oluşturur.

  • netbird-server yönetim API'sini, sinyal servisini, gömülü bir STUN dinleyicisine sahip relay servisini ve gömülü bir kimlik sağlayıcıyı barındırır. Eski sürümlerde bunlar ayrı container'lardı ve kimlik sağlayıcı, önceden kurmanız gereken ayrı bir Zitadel kurulumuydu.
  • dashboard yönetici web konsoludur.
  • traefik TLS (transport layer security) sonlandırmasını yapar ve ilk başlatmada Let's Encrypt üzerinden sertifika talep eder.

Siz bir komut isteminde onay vermediğiniz sürece kapalı kalan iki servis daha mevcuttur. NetBird Proxy servisi, iç servisleri genel ana bilgisayar adları üzerinden yayınlar. CrowdSec ise kötü niyetli trafiği filtreler. Çalışan bir mesh yapısı oluşturmak için bunların hiçbirine gerek yoktur ve her ikisi de küçük bir sunucuda bellek tüketir.

Eğer tek bir Docker container içerisinde wg-easy yapısından geliyorsanız, bu geçiş parça sayısında bir artış anlamına gelir. Bu yapının size sağladığı avantajlar; erişim politikaları, kullanıcı bazlı hesaplar ve trafiği tek bir ağ geçidi üzerinden geçirmek yerine doğrudan birbirine bağlanan eşlerdir.

Başlamadan önce gereksinimler

Halka açık bir alan adı zorunludur. Dashboard, API ve relay servislerinin tamamı 443 numaralı port üzerinden HTTPS kullanır. Traefik, sertifikasını Let's Encrypt üzerinden HTTP challenge yöntemiyle alır; bu işlem için internetten VPS adresinize yönlenen bir alan adı gerekir. Salt IP adresi bu akışta çalışmaz.

netbird.example.com adresini VPS'in genel IPv4 adresine yönlendiren bir A kaydı oluşturun ve herhangi bir işlem yapmadan önce kaydın yayılmasını bekleyin.

dig +short netbird.example.com

Bu komut sunucunuzun adresini döndürmelidir. DNS yayılımı tamamlanmadan yükleyiciyi çalıştırmak, ilk başlatmada sertifika isteğinin başarısız olmasına neden olur. Tekrarlanan başarısız doğrulamalar Let's Encrypt hız sınırlarına (rate limits) takılır ve tekrar denemek için bir saat beklemeniz gerekir.

İnternetten üç portun erişilebilir olması gerekir: Sertifika doğrulaması ve HTTPS yönlendirmesi için TCP 80, dashboard, API, signal ve relay trafiği için TCP 443 ve STUN için UDP 3478.

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 3478/udp
sudo ufw reload
sudo ufw status

Bu portları servis sağlayıcınızın ağ güvenlik duvarında da açın. Bu ayar çoğu VPS panelinde ayrı bir kontrol panelindedir ve sunucunun kendi ufw status ayarları doğru görünmesine rağmen bağlantıların reddedilmesinin temel sebebidir.

STUN (session traversal utilities for NAT), bir eşin (peer) kendi NAT'ı tarafından atanan genel adres ve portu öğrenmesini sağlar; böylece iki eş doğrudan bir tünel kurmayı deneyebilir. UDP 3478 portunu engellerseniz eşler yine de TCP 443 üzerinden relay aracılığıyla bağlanır, dolayısıyla hiçbir şey bozuk görünmez. Ancak bunun yerine her eşte Connection type: Relayed görürsünüz ve tüm trafik eşler arası yerine VPS'iniz üzerinden geçer.

Yazılım tarafında, Compose v2 eklentisiyle birlikte Docker ve ayrıca jq ile curl gereklidir. Betik bunların hepsini kontrol eder ve biri eksikse durur. Eğer Docker bu sunucuda yeniyse, önce VPS üzerinde Docker Compose kurulumunu tamamlayın.

Dahili reverse proxy kullanmazsanız gereken portlar

Traefik olmadan çalıştırmak, bireysel servislerin doğrudan dışarıya açılması anlamına gelir ve port listesi şu şekilde genişler:

  • TCP 80, HTTP yönlendirmeleri
  • TCP 443, HTTPS
  • TCP 33073, yönetim gRPC
  • TCP 10000, signal gRPC
  • TCP 33080, WebSocket veya QUIC üzerinden relay
  • UDP 3478, STUN

Bu yöntemi yalnızca sunucuda halihazırda başka bir servis için TLS termination yapılıyorsa seçin. Aksi takdirde, dahili Traefik kullanımı daha az kural ve daha az hata demektir.

NetBird sunucusunu hızlı başlangıç betiği ile kurun

Belgelenen tek satırlık komut, en güncel sürümü doğrudan bir kabuğa aktarır:

curl -fsSL https://github.com/netbirdio/netbird/releases/latest/download/getting-started.sh | bash

Bunun yerine sürümü sabitleyin. latest değiştiği için, iki hafta arayla çalıştırılan aynı komut iki farklı kurulum oluşturur ve disk üzerinde hangisinin yapılandırmanızı yazdığına dair hiçbir kayıt tutulmaz. Etiketli bir sürümü indirin, inceleyin ve ardından çalıştırın.

mkdir -p ~/netbird
cd ~/netbird
curl -fsSL -o getting-started.sh \
  https://github.com/netbirdio/netbird/releases/download/v0.76.2/getting-started.sh
less getting-started.sh
bash getting-started.sh

Betik ilk olarak alan adını sorar:

Enter the domain you want to use for NetBird (e.g. netbird.my-domain.com):

Ardından TLS'nin nasıl yönetileceğini sorar:

Which reverse proxy will you use?
  [0] Traefik (recommended - automatic TLS, included in Docker Compose)
  [1] Existing Traefik (labels for external Traefik instance)
  [2] Nginx (generates config template)
  [3] Nginx Proxy Manager (generates config + instructions)
  [4] External Caddy (generates Caddyfile snippet)
  [5] Other/Manual (displays setup documentation)
Enter choice [0-5] (default: 0):

[0] seçeneğini kullanın. 2'den 5'e kadar olan seçenekler bir yapılandırma parçası yazar ve bağlantı işini size bırakır; bu, halihazırda bir proxy çalıştıran sunucularda doğru, temiz bir sunucuda ise yanlıştır. 0 seçeneği daha sonra, süre sonu bildirimleri için kullanılacak bir Let's Encrypt e-posta adresi ister.

İlk kurulumda NetBird Proxy servisine hayır deyin. Bu servis iki ek DNS kaydı, proxy.netbird.example.com ve joker karakterli *.proxy.netbird.example.com kaydını gerektirir ve basit bir mesh yapısı için bir işlevi yoktur. CrowdSec seçeneğine de hayır deyin. Her ikisi de daha sonra eklenebilir.

Betik, mevcut dizine yazar: docker-compose.yml, 600 modunda config.yaml, dashboard.env ve Traefik paketini seçtiğinizde traefik-dynamic.yaml. Bu dizini korumanız gereken durum verisi olarak kabul edin, çünkü config.yaml, depodaki verileri şifreleyen anahtarı tutar. Bu anahtarın kaybedilmesi, yeniden kurulumla düzeltilebilecek bir durum değildir.

docker compose ps
docker compose logs -f netbird-server

Her servis running dosyasını okumalı ve sunucu günlüğü bir döngü içinde yeniden başlamak yerine kararlı hale gelmelidir. Sertifikayı ayrıca izleyin:

docker compose logs traefik | grep -i acme

ACME (otomatik sertifika yönetimi ortamı), Traefik'in sertifika almak için kullandığı protokoldür. Buradaki hatalar neredeyse her zaman DNS veya kapalı olan 80 numaralı port kaynaklıdır.

İlk yönetici hesabını oluşturma

https://netbird.example.com adresini açın. Yeni bir kurulumda, giriş formu yerine bir kurulum sayfası görüntülenir. Bir e-posta adresi, isim ve parola girin, ardından Create Account butonuna tıklayın. Bu hesap ilk yönetici hesabı olur ve sayfa giriş formuna yönlendirilir.

Bu hesap, netbird-server container içerisinde yerleşik olarak bulunan bir kimlik sağlayıcısı tarafından desteklenen NetBird'ün kendi kullanıcı deposunda tutulur. Dışarıdan herhangi bir bağımlılık yoktur. Bu durum, bir yıl önceki self-hosted NetBird kurulumuna kıyasla en büyük değişikliktir; o dönemde çalışan bir kurulum için önce Zitadel veya Keycloak'un ayağa kaldırılması ve herhangi bir işlem başlamadan önce dört adet OIDC (OpenID Connect) değerinin setup.env dosyasına kopyalanması gerekiyordu.

Kurulum sayfası yerine bir tarayıcı sertifika uyarısı alırsanız, sertifika düzenlenmemiş demektir. Devam etmeden önce bu sorunu giderin; çünkü dashboard, API ile aynı hostname üzerinden iletişim kurar ve hatalı bir sertifika arkasında kafa karıştırıcı şekillerde başarısız olur.

İlk eşinizi (peer) bağlayın

Mesh ağına dahil etmek isterseniz, VPS'in kendisi de dahil olmak üzere herhangi bir Linux makinesine istemciyi kurun:

curl -fsSL https://pkgs.netbird.io/install.sh | sh

Debian ve Ubuntu üzerinde bu betik, NetBird paket deposunu yapılandırır ve ardından istemciyi apt aracılığıyla kurar; böylece paket yöneticisi her iki durumda da kurulumun yönetimini üstlenir. Bir betiği doğrudan shell'e yönlendirmek (piping) sizi rahatsız ediyorsa, önce curl -fsSL -o install.sh https://pkgs.netbird.io/install.sh ile kaydedin ve sh install.sh ile çalıştırmadan önce içeriğini okuyun. Her iki durumda da neyin kurulduğunu doğrulayın:

apt-cache policy netbird

netbird komut satırı istemcisi ve daemon'dır. netbird-ui masaüstü tepsi uygulamasıdır ve başsız (headless) bir sunucuda buna ihtiyaç duyulmaz.

Şimdi istemciyi sunucunuza yönlendirin:

sudo netbird up --management-url https://netbird.example.com

--management-url parametresini atlarsanız istemci, derleme varsayılanı olduğu için NetBird'ün barındırılan hizmetine kaydolur. Komut yine de başarılı olur, makine bir adres alır ancak kendi barındırdığınız (self-hosted) paneliniz boş kalır. Bu durum neredeyse herkesin bir kez düştüğü bir tuzaktır.

Komut, oturum açma işlemini tamamlamak için tarayıcıda açmanız gereken bir URL yazdırır. Sonrasında:

netbird status
ip addr show wt0

netbird status çıktısından dört satır okuyun: Management: Connected, Signal: Connected, mevcut her relay'i bildiren bir Relays: satırı ve overlay aralığında bir NetBird IP:. wt0, NetBird'ün oluşturduğu WireGuard arayüzüdür ve aynı adresi taşıması gerekir.

İkinci bir makineyi kurulum anahtarı ile katılımsız olarak ekleme

Tarayıcısı olmayan ve başında kimsenin bulunmadığı bir makinede tarayıcı üzerinden giriş yapmak mümkün değildir. Kurulum anahtarı (setup key), etkileşimli adım gerektirmeden bir makineyi kaydeden bir ön kimlik doğrulama belirtecidir. Dashboard üzerinde Setup Keys bölümünden bir tane oluşturun.

İki tür anahtar vardır. Tek kullanımlık anahtar tam olarak bir makinenin kimliğini doğrular ve ardından geçerliliğini yitirir. Yeniden kullanılabilir anahtar ise isteğe bağlı bir sınır ile birçok makineyi kaydeder. Her ikisinin de bir son kullanma tarihi vardır ve her ikisi de yeni eşi (peer) otomatik olarak bir gruba atayabilir; böylece o grup üzerindeki erişim kuralları makine görünür olduğu anda uygulanır.

sudo netbird up --setup-key <SETUP-KEY> \
  --management-url https://netbird.example.com \
  --hostname build-runner-01

--hostname, dashboard üzerinde gösterilen ismi belirler. Bu parametre kullanılmadığında eş, makinenin kendi kendine verdiği ismi kullanır; ubuntu ismine sahip bir dizi girdi ise kimseye yardımcı olmaz.

Konteynerler ve kısa ömürlü derleme aracıları (build agents) için anahtarı oluştururken ephemeral (geçici) olarak işaretleyin. Ephemeral anahtar ile kaydedilen eşler, 10 dakikadan uzun süre çevrimdışı kaldıklarında otomatik olarak kaldırılır; bu da eş listesinde ölü girdilerin birikmesini önler.

Kurulum anahtarlarıyla ilgili planlama yapmadan önce anlaşılması gereken bir sınır vardır: Bir anahtarın süresinin dolması veya silinmesi yeni kayıtları durdurur, ancak bu anahtarla zaten kayıt olmuş makinelerin bağlantısını kesmez. Bir makinenin erişimini kaldırmak, o eşi silmek anlamına gelir.

Hala ayrı bir kimlik sağlayıcısına ihtiyacınız var mı?

Küçük bir kurulum için hayır. Dahili kullanıcı deposu, panel üzerinden oluşturulan hesapları yönetir ve bu, az sayıda kişi için yeterlidir.

Halihazırda bir kimlik sağlayıcınız varsa ve ikinci bir kullanıcı listesiyle uğraşmak istemiyorsanız harici bir kimlik sağlayıcısına ihtiyaç duyarsınız. NetBird, OIDC protokolünü destekleyen tüm sağlayıcıları kabul eder. Sağlayıcınızda gizli bir OIDC istemcisi kaydedin, ardından NetBird panelinde dört değer girerek ekleyin: ad, client ID, client secret ve issuer. NetBird size, sağlayıcınıza geri yapıştırmanız gereken bir yönlendirme URL'si verir. Google, Microsoft Entra ID, Okta, Zitadel, Keycloak, Authentik ve Pocket ID için hazır entegrasyonlar mevcuttur; diğer tüm sağlayıcılar genel OIDC olarak eklenebilir. Eğer halihazırda kendi sunucunuzda barındırdığınız bir tek oturum açma (SSO) çözümü olarak Authentik kullanıyorsanız, iki ayrı hesap listesi yerine tek bir liste tutmanızı sağlayacak yöntem budur.

Bir sağlayıcı ekledikten sonra yerel giriş seçeneği kullanılabilir kalmaya devam eder ve yapılandırılan tüm sağlayıcılar giriş sayfasında görünür. Güçlü bir parolaya sahip bir yerel yönetici hesabı tutmaya devam edin. Böylece, hatalı bir OIDC yapılandırması durumunda sisteme erişim yolunuz açık kalır.

NetBird mü Headscale mi: hangi kontrol düzlemini çalıştırmalısınız?

Her ikisi de aynı bağımlılığı, yani istemcilerinizin aksi takdirde bağlanacağı barındırılan kontrol sunucusunu ortadan kaldırır. Ancak bunlar aynı yapıda projeler değildir.

Headscale, Tailscale kontrol sunucusunu yeniden uygular ve siz resmi Tailscale istemcilerini kullanmaya devam edersiniz. Resmi bir web konsolu bulunmamaktadır. Kullanıcıları ve ön kimlik doğrulama anahtarlarını bir yapılandırma dosyası üzerinden headscale komutuyla yönetirsiniz. Topluluk tarafından geliştirilen web arayüzleri mevcuttur ancak bunlar projenin bir parçası değildir. Bu durum, durum bilgisini dosyalarda tutmak ve değişikliklerini sürüm kontrol sisteminde yönetmek isteyenler için uygundur.

NetBird ise ürünün tamamını sunar: kendi istemcisi, kendi paneli, gömülü bir kimlik sağlayıcısı ve tarayıcı üzerinden düzenlenen erişim politikaları. Bu, VPS üzerinde daha fazla hareketli parça anlamına gelir ancak terminal açmayacak bir iş arkadaşına devretmek için çok daha az iş yükü gerektirir.

Hali hazırda Tailscale istemcilerine yatırım yaptıysanız veya mümkün olan en küçük kontrol düzlemini istiyorsanız Headscale çalıştırın. Eğer birden fazla kişinin eşleri (peers) yönetmesi gerekiyorsa ve bir araya getirmekle uğraşmadan bir konsol ile SSO istiyorsanız NetBird çalıştırın. Her ikisine de karar vermeden önce Tailscale ücretsiz planının neleri kapsadığına göz atın; çünkü sınırsız cihazla altı kullanıcıya kadar olan bir grup, barındırılan bir kontrol düzlemi için hiçbir ücret ödemez ve bunu çalıştırmak için hiçbir nedeni olmayabilir. Bu sınır aşıldığında fatura makine sayısından ziyade kişi sayısına göre arttığından, Tailscale'in grubunuza ne kadar ücret yansıtacağını hesaplamak, bu yığının size maliyeti olan VPS ve harcayacağınız saatlerle kıyaslayabileceğiniz bir rakam sunar.

Bu kurulumu çalıştırmak için ne kadar küçük bir VPS yeterlidir?

Belgelenen minimum gereksinim 1 CPU ve 2 GB bellektir. Kullanıcı yönetimi yerel hale getirildiğinden, NetBird'ün kendi notları mevcut alt sınırı 1 GB RAM civarına çekmiştir; oysa eski yapıda tam bir Zitadel dağıtımı yığının bir parçasıyken 2 GB ile 4 GB arası bellek gerekiyordu. 2 GB RAM'li bir sunucu satın alın. Ekstra boş alan, eski imajlar diskte dururken yükseltme işleminin yeni imajları çekmesine olanak tanır.

Küçük bir sunucuda üç şeyi devre dışı bırakmak güvenlidir. Dahili servisleri genel ana bilgisayar adlarında yayınlamak için kullanılan ve eşlerin (peers) bağlanmasıyla ilgisi olmayan NetBird Proxy servisini reddedin. İlk günden ziyade, daha sonra dışa açık bir sunucuya eklenmesi daha mantıklı olan CrowdSec'i reddedin. Varsayılan SQLite deposunu netbird_data biriminde tutun; PostgreSQL'e yalnızca dağıtımı makineler arasında böldüğünüzde veya gerçek bir eşzamanlılık yüküne ulaştığınızda geçin; bu, daha sonra yapabileceğiniz belgelenmiş bir geçiş işlemidir.

Relay (aktarıcı), vazgeçemeyeceğiniz tek bileşendir. NAT yapılandırması her hedef için farklı bir port atayan iki eş, asla doğrudan bir tünel kuramaz; bu nedenle relay, bağlantı kurmalarını sağlayan tek yoldur. Devre dışı bırakmak çok az bellek tasarrufu sağlar ancak bağlantıları izlenmesi zor bir şekilde koparır.

Tek bir sunucu yeterli gelmediğinde, taşınacak ilk bileşen relay'lerdir. Bağımsız bir relay, NB_LISTEN_ADDRESS, NB_EXPOSED_ADDRESS, NB_AUTH_SECRET ve NB_ENABLE_STUN ile çalışır. Paylaşılan gizli anahtar (shared secret), relay üzerinde ve ana sunucuda aynı olmalıdır; aksi takdirde istemciler kimlik doğrulaması yapamaz.

Hata modları ve karşılaşacaklarınız

Dashboard bir sertifika uyarısı gösteriyor. Traefik bir sertifika alamadı. docker compose logs traefik | grep -i acme komutunu çalıştırın. Bunun iki nedeni olabilir. Ya dig +short netbird.example.com henüz bu VPS'i döndürmüyordur ya da TCP 80 portu Let's Encrypt ile container arasında bir yerde kapalıdır; bu durum genellikle ufw üzerindeki güvenlik duvarından ziyade sağlayıcının ağ güvenlik duvarında yaşanır. Yeniden denemeden önce sorunu giderin, çünkü başarısız doğrulamalar hız sınırına (rate limit) tabidir ve kendinizi bir saat boyunca deneme yapmaktan mahrum bırakabilirsiniz.

İstemci bağlandığını söylüyor ancak dashboard boş. İstemci, --management-url eksik olduğu için NetBird'ün barındırılan servisine kayıt oldu. netbird status --detail komutunu çalıştırın ve aslında hangi sunucuyla konuştuğunu belirten Management: satırını okuyun. Management: Connected to https://api.netbird.io:443 ifadesini görmek, istemcinin buluta gittiği anlamına gelir. sudo netbird down komutunu çalıştırın, ardından tekrar sudo netbird up --management-url https://netbird.example.com komutunu uygulayın.

Her eş (peer) Connection type: Relayed durumunu gösteriyor. Doğrudan tüneller kurulmuyor, bu nedenle tüm trafik VPS'iniz üzerinden geçiyor ve gecikmeye bir sekme daha ekliyor. VPS güvenlik duvarında ve sağlayıcı güvenlik duvarında UDP 3478 portunu kontrol edin; çünkü STUN, bir eşin kendi genel IP adresini ve portunu öğrenmesini sağlayan mekanizmadır. netbird status --detail ayrıca Direct: false ifadesini ve her eş için ICE (interactive connectivity establishment) aday türlerini yazdırır; bu, bağlantı girişiminin ne kadar ilerlediğini gösterir. Bazı ağlarda yalnızca "relayed" (aktarılan) sonucu alınabilir ve bu durum bir hata olduğu anlamına gelmez.

Bir eş katılıyor ancak hiçbir yere erişemiyor. Mesh ağına dahil olmak, iki eşin birbiriyle konuşabileceği anlamına gelmez. Erişim politikaları bunu belirler ve hiçbir politikanın atanmadığı bir grup hiçbir yere erişemez. Rotaları ve güvenlik duvarlarını hata ayıklamaya başlamadan önce dashboard üzerindeki politikayı kontrol edin.

netbird status bir daemon sorunu bildiriyor. Servis çalışmıyor. sudo netbird service status ve sudo netbird service start komutlarını kullanın. İstemci günlükleri /var/log/netbird/client.log konumundadır. Yerini tespit edemediğiniz durumlar için netbird debug bundle --anonymize --system-info komutu; günlükleri, durumu, rotaları, DNS ayarlarını ve güvenlik duvarı durumunu tek bir arşivde toplar.

Yedekleme ve yükseltmeler

Tüm kurulumu iki unsur ayakta tutar: docker-compose.yml ve config.yaml dosyalarını barındıran dizin ile veritabanı ve şifreleme anahtarlarını tutan Docker volume. Bunları birlikte yedekleyin. config.yaml, depodaki verileri şifreleyen anahtarı tutar; dolayısıyla bu anahtar olmadan alınan bir veritabanı kopyası, okunabilir hiçbir veriye dönüştürülemez.

docker volume ls
docker compose down
sudo tar czf netbird-config.tgz -C ~ netbird
docker run --rm -v netbird_netbird_data:/data -v "$PWD":/backup \
  alpine tar czf /backup/netbird-data.tgz -C /data .
docker compose up -d

Compose, volume isimlerinin başına proje dizinini ekler; bu nedenle netbird_data olarak belgelenen volume genellikle netbird_netbird_data olarak görünür. Önce docker volume ls komutunu çalıştırın ve çıktıda verilen ismi kullanın; aksi takdirde yukarıdaki docker run komutu sessizce boş bir volume oluşturur ve hiçbir şeyi arşivlemeden başarısız olur. Arşivleri VPS üzerinde tutmayın. Halihazırda bir yedekleme aracınız varsa, restic veya BorgBackup uzak sunucuya yedekleme kısmını yönetebilir.

Sunucuyu yükseltmek, imajı çekmek ve yeniden oluşturmaktan ibarettir:

docker compose pull
docker compose up -d
docker compose ps

Buna güvenmeden önce docker compose config | grep image: komutunu çalıştırın. latest ibaresini içeren tüm etiketler belirli bir sürüme sabitlenmelidir; kurulum betiğini sabitlemenizle aynı nedenden ötürü: neyin çalıştığını bilmek istersiniz ve bir yükseltme hatalı çalıştığında geri dönebileceğiniz bir sürümünüzün olmasını istersiniz. İstemciler, kendilerini kuran paket yöneticisi aracılığıyla yükseltilir.

FAQ

NetBird'i kendi sunucumda barındırmak için kendi kimlik sağlayıcıma ihtiyacım var mı?

Hayır. Mevcut sürümler yerleşik bir kullanıcı deposu içerir; bu sayede ilk yönetici hesabını https://netbird.example.com adresindeki tarayıcı üzerinden oluşturabilir ve sonrasında kullanıcıları panelden ekleyebilirsiniz. Harici bir OIDC sağlayıcısı isteğe bağlıdır ve daha sonra isim, istemci kimliği (client ID), istemci gizli anahtarı (client secret) ve sağlayıcı (issuer) olmak üzere dört değerle eklenebilir. NetBird'den önce Zitadel veya Keycloak kurmanızı öneren kılavuzlar artık gerekli olmayan bir kurulumu tarif etmektedir; bu kılavuzları takip etmek, fazladan bir servis çalıştırmanıza neden olur.

Neden tüm eşlerim (peers) Connection type: Relayed durumunda görünüyor?

Doğrudan bağlantılar kurulamadığı için trafik, VPS'niz üzerindeki aktarıcı (relay) üzerinden geçmektedir. Bunun yaygın nedeni, eşlerin kendi genel adreslerini ve portlarını keşfetmek için kullandıkları STUN portu olan UDP 3478'in engellenmiş olmasıdır. Bu portu VPS güvenlik duvarında ve sağlayıcınızın ağ güvenlik duvarında açın, ardından netbird status --detail komutunu tekrar çalıştırın ve Direct: satırını inceleyin. NAT'ın her hedef için farklı bir port atadığı bir ağda, aktarılan (relayed) bağlantı tek olası sonuçtur ve herhangi bir yanlış yapılandırma yoktur.

İstemcim bağlandı ancak panelde hiçbir eş görünmüyor. Ne oldu?

İstemci, --management-url parametresi belirtilmediğinde gerçekleştiği üzere, sunucunuz yerine NetBird'ün barındırdığı servise kayıt oldu. netbird status --detail komutu, bağlantı kurulan sunucuyu Management: satırında gösterir; dolayısıyla https://api.netbird.io:443 gibi bir değer, sunucunun yanlış olduğunu doğrular. sudo netbird down komutunu çalıştırın, ardından sudo netbird up --management-url https://netbird.example.com komutunu uygulayın; eş, panelinizde görünecektir.

Kendi sunucumda barındırdığım NetBird, Headscale'den nasıl farklıdır?

Her ikisi de barındırılan bir kontrol sunucusunun yerini sizin çalıştırdığınız bir sunucuyla değiştirir. Headscale yalnızca bir kontrol düzlemidir: onu headscale komutu ve bir yapılandırma dosyası ile yönetirsiniz, resmi bir web konsolu yoktur ve resmi Tailscale istemcilerini kullanır. NetBird ise kendi istemcisini, yönetici panelini ve kimlik sağlayıcı entegrasyonunu aynı yığın içerisinde sunar. Headscale'i çalıştırmak daha az kaynak gerektirir ve durumunu dosyalarda tutar. NetBird ise terminal kullanmayacak kişilere teslim etmek için daha kolaydır.

Kendi sunucumda barındırdığım NetBird için ne boyutlu bir VPS gerekir?

Belgelenen minimum gereksinim 1 CPU ve 2 GB bellektir; satın almanız gereken değer 2 GB'tır. Kimlik sağlayıcısı artık ayrı bir kurulum yerine gömülü olarak geldiği için, güncel sürümlerde pratik alt sınır 1 GB civarına düşmüştür. Kurulum sırasında isteğe bağlı proxy ve CrowdSec servislerini devre dışı bırakın ve gerçekten PostgreSQL'e ihtiyaç duyana kadar varsayılan SQLite deposunda kalın.