SSD Nodes Learn 🎉 VPS $5.50/aydan başlayan
Rehberler Matt ConnorYazan Matt Connor · Güncellendi 2026-08-13

Kendi VPS Sunucunuzda NetBird VPN Kurulumu

NetBird VPN sunucusunu kendi VPS ortamınızda barındırın. DNS ve TLS yapılandırması, kurulum anahtarları, otomatik eşleme ve Headscale ile temel farkları öğrenin.

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

NetBird VPN sunucusunu kendi kendine barındırmak, kontrol düzlemini sahip olduğunuz bir VPS üzerine taşır: eş listesini tutan, hangi makinenin hangisine erişebileceğine karar veren ve iki eşin NAT (ağ adresi çevirisi) arkasında birbirini bulmasına yardımcı olan kısım artık sizdedir. 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ı dışarıdan hiçbir şirketin tutmuyor olmasıdır.

NetBird, halihazırda biliyor olabileceğiniz iki kavram arasında yer alır. Bir mesh katmanıdır; bu nedenle eşler, her şeyi tek bir ağ geçidi üzerinden göndermek yerine doğrudan birbirine bağlanır. Aynı zamanda uçtan uca kendi kendine barındırılabilir bir yapıdadır, bu da onu Headscale, kendi kendine barındırılan Tailscale kontrol sunucusu ile aynı kategoriye koyar. Eğer bugüne kadar sadece tek ağ geçitli bir tünel çalıştırdıysanız, önce yalın WireGuard ile mesh katmanı arasındaki fark konusunu okuyun; çünkü bu sayfanın geri kalanının anlaşılmasını sağlayan zihinsel model budur.

Eğer asıl istediğiniz, tüm trafiğinizin çıkış yaptığı tek bir sunucu ise, mesh yapısı bu iş için gerekenden daha fazla karmaşıklık içerir. Tek bir VPS üzerinde yalın bir WireGuard VPN veya bir Tailscale çıkış düğümü (exit node) bu işi çok daha az operasyonel yükle gerçekleştirir.

Yığının gerçekte ne çalıştırdığı

Düzen yakın zamanda değişti ve eski dokümanların çoğu eski yapıyı anlatmaktadır. 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 röleyi ve gömülü bir kimlik sağlayıcısını barındırır. Eski sürümlerde bunlar ayrı container'lardı ve kimlik sağlayıcısı, önce kurmanız gereken ayrı bir Zitadel kurulumuydu.
  • dashboard yönetici web konsoludur.
  • traefik TLS (taşıma katmanı güvenliği) sonlandırmasını yapar ve ilk başlatmada Let's Encrypt'ten bir sertifika talep eder.

Bir istemde onay vermediğiniz sürece kapalı kalan iki servis daha mevcuttur. NetBird Proxy servisi, iç servisleri genel ana bilgisayar adlarında yayınlar. CrowdSec ise kötü niyetli trafiği filtreler. Bunların hiçbiri çalışan bir mesh yapısı oluşturmak için gerekli değildir ve her ikisi de küçük bir sunucuda bellek tüketir.

Eğer tek bir Docker container içinde wg-easy yapısından geliyorsanız, bu parça sayısında bir artış anlamına gelir. Bunun size sağladığı avantajlar; erişim politikaları, kullanıcı bazlı hesaplar ve trafiğin tek bir ağ geçidi yerine doğrudan birbirine bağlanan eşler (peers) üzerinden akmasıdır.

Başlamadan önce ihtiyaç duyacaklarınız

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 yöntem, internet üzerinden sunucunuza yönlenen bir alan adı gerektirir. Salt IP adresi bu akışta çalışmaz.

VPS'in genel IPv4 adresine işaret eden bir A kaydı oluşturun, netbird.example.com 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 kayıtları yayılmadan yükleyiciyi çalıştırmak, sertifika isteğinin ilk başlatmada 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; bu durumda 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 mekanizmasıdır 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 istemcinin kendi NAT'ı tarafından atanan genel adres ve portu öğrenmesini sağlar; böylece iki istemci doğrudan tünel kurmayı deneyebilir. UDP 3478 portunu engellerseniz istemciler 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 istemcide Connection type: Relayed görürsünüz ve tüm trafik, doğrudan istemciler arasında değil, VPS'iniz üzerinden geçer.

Yazılım tarafında, Compose v2 eklentisiyle birlikte Docker'a ve ayrıca jq ile curl araçlarına ihtiyacınız vardır. 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ışa 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 TLS termination yapan başka bir servis varsa tercih edin. Aksi takdirde, dahili Traefik kullanımı daha az kural ve daha az hata demektir.

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

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

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 üretir ve diskte hangisinin yapılandırmanızı oluşturduğuna dair hiçbir kayıt kalmaz. 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 önce 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 ile 5 arasındaki 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 ise 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 şunları yazar: docker-compose.yml, 600 modunda config.yaml, dashboard.env ve Traefik paketini seçtiğinizde traefik-dynamic.yaml. Bu dizini saklamanı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önetim ortamı), Traefik'in sertifika almak için kullandığı protokoldür. Buradaki hatalar neredeyse her zaman DNS kaynaklıdır veya 80 numaralı portun kapalı olmasından kaynaklanı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 tarayıcıda bir sertifika uyarısı alırsanız, sertifika düzenlenememiştir. Devam etmeden önce bu sorunu giderin; çünkü dashboard, API ile aynı ana makine adı (hostname) üzerinden iletişim kurar ve hatalı bir sertifika nedeniyle belirsiz hata mesajlarıyla başarısız olur.

İlk eşinizi (peer) ağa dahil edin

İstemciyi, mesh ağına dahil etmek istediğiniz herhangi bir Linux makinesine (VPS'in kendisi dahil) 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 kurulumun yönetimini üstlenmiş olur. Bir betiği doğrudan shell'e yönlendirmek (pipe) 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 inceleyin. Her iki durumda da kurulumun başarıyla tamamlandığını doğrulayın:

apt-cache policy netbird

netbird, komut satırı istemcisi ve arka plan servisidir (daemon). netbird-ui ise masaüstü tepsi uygulamasıdır; 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 varsayılan olarak derlenmiş ayarlar nedeniyle NetBird'ün barındırdığı hizmete kaydolur. Komut yine de başarılı olur, makine bir adres alır ancak kendi barındırdığınız (self-hosted) panel boş kalır. Bu durum neredeyse herkesin bir kez yaşadığı bir hatadır.

Komut, oturum açma işlemini tamamlamak için tarayıcıda açmanız gereken bir URL çıktısı verir. İşlem sonrasında:

netbird status
ip addr show wt0

netbird status çıktısından dört satırı okuyun: Management: Connected, Signal: Connected, mevcut tüm röleleri bildiren bir Relays: satırı ve overlay aralığında bir NetBird IP:. wt0, NetBird tarafından oluşturulan 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 mevcuttur. 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 iki tür de bir son kullanma tarihine sahiptir ve her ikisi de yeni eşi (peer) otomatik olarak bir gruba atayabilir; böylece o gruba tanımlı erişim kuralları makine sisteme dahil olduğu anda geçerli olur.

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; bu da tamamı ubuntu olarak adlandırılmış bir liste oluşturur ve 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 ölü kayıtların eş listesinde kalmasını engeller.

Kurulum anahtarlarıyla ilgili planlama yapmadan önce bilinmesi gereken bir sınırlama şudur: Bir anahtarın süresinin dolması veya silinmesi yeni kayıtları durdurur, ancak bu anahtarla halihazırda kaydedilmiş makinelerin bağlantısını kesmez. Bir makinenin erişimini kaldırmak, ilgili eşin silinmesi 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. Yerleşik 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ılarla çalışır. Sağlayıcınızda gizli bir OIDC istemcisi oluşturun ve ardından NetBird panelinde dört değer girerek ekleyin: ad, istemci kimliği (client ID), istemci gizli anahtarı (client secret) ve sağlayıcı adresi (issuer). NetBird, sağlayıcınıza geri yapıştırmanız gereken bir yönlendirme URL'si sağlar. 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 Authentik ile tek oturum açma (SSO) kullanıyorsanız, iki ayrı liste yerine tek bir hesap listesi tutmanızı sağlayan yöntem budur.

Bir sağlayıcı ekledikten sonra yerel giriş seçeneği kullanılabilir durumda kalır 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 OIDC yapılandırmasında bir sorun yaşanması durumunda sisteme giriş yapabileceğiniz bir yolunuz 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 tüm ürünü bir bütün olarak 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 harici bir yapılandırma yapmadan bir konsol ile SSO (tek oturum açma) istiyorsanız NetBird çalıştırın.

Bu iş için ne kadar küçük bir VPS yeterlidir?

Belgelenen minimum gereksinim 1 CPU ve 2 GB bellektir. Kullanıcı yönetimi artık yerel olarak yapıldığından, NetBird'ün kendi notları mevcut alt sınırı 1 GB RAM civarına çekmiştir; oysa eski yapıda tam bir Zitadel kurulumu yığının bir parçasıyken 2 GB ile 4 GB arası bellek gerekiyordu. 2 GB 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 dahil etmemek güvenlidir. Dahili servisleri genel ana bilgisayar adlarında yayınlamak için var olan ve eşlerin (peer) bağlanmasıyla ilgisi bulunmayan 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; yalnızca kurulumu makineler arasında böldüğünüzde veya gerçek bir eşzamanlılık yüküne ulaştığınızda PostgreSQL'e geçin; bu, daha sonra yapabileceğiniz bir geçiş işlemi olarak belgelenmiştir.

Relay, 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, çalışmaları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 artık yeterli olmadığında, 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

Panel 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. Tekrar denemeden önce sorunu giderin; başarısız doğrulamalar hız sınırına (rate limit) takılır ve bir saat boyunca tekrar deneme yapmanızı engeller.

İstemci bağlandığını söylüyor ancak panel 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 neden oluyor. 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ğlar. netbird status --detail komutu ayrıca Direct: false ifadesini ve her eş için ICE (etkileşimli bağlantı kurulumu) aday türlerini yazdırır; bu, bağlantı denemesinin ne kadar ilerlediğini gösterir. Bazı ağlarda yalnızca "relayed" (aktarılan) bağlantı mümkündür ve bu bir sorun olduğu anlamına gelmez.

Bir eş katılıyor ancak hiçbir yere ulaşamıyor. Ağda (mesh) bulunmak, iki eşin birbiriyle konuşabileceği anlamına gelmez. Buna erişim politikaları karar verir ve hiçbir politika atanmamış bir grup hiçbir yere ulaşamaz. Rotaları ve güvenlik duvarlarını hata ayıklamaya başlamadan önce paneldeki 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. Çözemediğ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 temel unsur oluşturur: 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ı içerir; dolayısıyla bu anahtar olmadan alınan bir veritabanı kopyası, okunabilir hiçbir veri içermeyecektir.

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 bir 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. Eğer halihazırda bir yedekleme aracınız varsa, restic veya BorgBackup uzak sunucuya aktarım kısmını yönetecektir.

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 etiketine sahip herhangi bir yapılandırma belirli bir sürüme sabitlenmelidir; kurulum betiğini sabitlemenizle aynı nedenden dolayı: neyin çalıştığını bilmek istersiniz ve bir yükseltme hatalı sonuç verdiğinde geri dönebileceğiniz bir sürümünüzün olmasını istersiniz. İstemciler, kendilerini yükleyen 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. Güncel sürümler yerleşik bir kullanıcı deposu içerir; bu sayede ilk yönetici hesabını tarayıcı üzerinden https://netbird.example.com adresinde oluşturabilir ve sonrasında panelden kullanıcı 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ğer ile 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 ü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, kendi 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, yanlış sunucuya bağlı olduğunuzu doğrular. sudo netbird down komutunu, ardından sudo netbird up --management-url https://netbird.example.com komutunu çalıştırı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 paneli yoktur ve resmi Tailscale istemcilerini kullanır. NetBird ise kendi istemcisini, yönetici panelini ve kimlik sağlayıcı entegrasyonunu aynı yığın içinde sunar. Headscale daha az kaynak tüketir 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ı artık ayrı bir dağıtım yerine gömülü olarak geldiği için, pratik alt sınır son sürümlerde 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.