SSD Nodes Learn Hosting plans →
Mga Gabay Matt ConnorNi Matt Connor · Na-update 2026-08-31

Paano i-self-host ang NetBird VPN server sa VPS

I-set up ang NetBird mesh VPN sa isang VPS gamit ang DNS at TLS, pinned quickstart script, setup keys para sa unattended peers, at paghahambing sa Headscale.

Ano ang nakukuha mo sa pag-self-host ng NetBird VPN server

Sa pag-self-host ng NetBird VPN server, inilalagay mo ang control plane sa VPS na pagmamay-ari mo. Ito ang bahaging naglalaman ng listahan ng mga peer, nagpapasya kung aling machine ang maaaring maka-access sa alin, at tumutulong sa dalawang peer na mahanap ang isa’t isa sa likod ng NAT (network address translation). WireGuard pa rin ang ginagamit para sa mismong tunnel, at direktang naka-encrypt ang mga ito sa pagitan ng iyong mga machine. Ang nagbabago ay wala nang external na kumpanyang may hawak ng inventory ng iyong device o ng proseso ng pag-login mo. Dapat malinaw kung ano ang naibibigay nito, dahil hindi rin hawak ng hosted control plane ang mga key na nag-e-encrypt sa traffic mo, at mas maikli ang listahan ng mga aktuwal na magagawa ng coordination server kapag na-breach ito kaysa sa karaniwang inaakala ng mga tao bago nila ito basahin.

Nasa pagitan ang NetBird ng dalawang bagay na maaaring alam mo na. Mesh overlay ito, kaya direktang kumokonekta ang mga peer sa isa’t isa sa halip na ipadala ang lahat sa isang gateway. Maaari rin itong i-self-host end to end, kaya maihahambing ito sa Headscale, ang self-hosted Tailscale control server. Kung single-gateway tunnel lamang ang dati mong pinapatakbo, basahin muna ang pagkakaiba ng plain WireGuard at mesh overlay, dahil ang modelong ito ang tutulong para maging kapaki-pakinabang ang natitirang bahagi ng page na ito.

Kung ang aktuwal mong kailangan ay isang server na doon lalabas ang lahat ng traffic mo, mas maraming component ang mesh kaysa sa kailangan ng ganitong setup. Magagawa iyon ng plain WireGuard VPN sa isang VPS o Tailscale exit node nang mas kaunti ang kailangang patakbuhin. Kung ang layunin naman ay ma-access ang isang private network sa halip na pagdugtungin ang mga machine sa isa’t isa, maaaring i-advertise ng Tailscale subnet router sa isang VPS ang range na iyon sa isang tailnet na mayroon ka na, nang hindi kailangan ang stack sa ibaba.

Ano talaga ang pinapatakbo ng stack

Kamakailan ay nagbago ang layout, kaya inilalarawan ng karamihan sa mga lumang write-up ang dating layout. Noong August 2026, sa release na v0.76.2, ang quickstart script ay gumagawa ng Compose file na may tatlong service bilang default.

  • Ang netbird-server ang naglalaman ng management API, signal service, relay na may naka-embed na STUN listener, at naka-embed na identity provider. Sa mga mas lumang release, magkakahiwalay ang mga ito na container, at hiwalay na Zitadel install ang identity provider na kailangan mo munang i-build.
  • Ang dashboard ang admin web console.
  • Ang traefik ang nagte-terminate ng TLS (transport layer security) at humihingi ng certificate sa Let's Encrypt sa unang pagsisimula.

May dalawa pang service na nananatiling naka-off maliban kung sumagot ka ng yes sa prompt. Ang NetBird Proxy service ang nagpa-publish ng mga internal service sa mga public hostname. Sinasala ng CrowdSec ang abusive traffic. Hindi kailangan ang alinman sa mga ito para makabuo ng gumaganang mesh, at parehong kumokonsumo ng memory sa maliit na server.

Kung galing ka sa wg-easy sa iisang Docker container, mas marami ang bahagi ng setup na ito. Kapalit nito, nakakakuha ka ng access policy at account para sa bawat user, pati mga peer na direktang kumokonekta sa isa't isa sa halip na dumaan sa iisang gateway.

Mga kailangan bago magsimula

Hindi opsyonal ang isang public domain name. Gumagamit ng HTTPS sa port 443 ang dashboard, API, at relay. Kinukuha naman ng Traefik ang certificate nito mula sa Let's Encrypt gamit ang HTTP challenge. Kailangan nito ng pangalan na nagre-resolve sa VPS na ito mula sa public internet. Hindi gagana ang bare IP address sa ganitong setup.

Gumawa ng isang A record, netbird.example.com na nakaturo sa public IPv4 address ng VPS, at hintaying mag-propagate ito bago ka magpatakbo ng anuman.

dig +short netbird.example.com

Dapat mai-print nito ang address ng server mo. Kapag pinatakbo ang installer bago mag-propagate ang DNS, mabibigo ang certificate request sa unang pagsisimula. Ang paulit-ulit na nabigong validation ay maaaring umabot sa rate limits ng Let's Encrypt, kaya kailangan mong maghintay ng isang oras bago muling sumubok.

Dapat maabot mula sa internet ang tatlong port: TCP 80 para sa certificate challenge at redirect sa HTTPS, TCP 443 para sa dashboard, API, signal, at relay traffic, at UDP 3478 para sa STUN.

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

Buksan din ang mga ito sa network firewall ng provider mo. Hiwalay itong control sa karamihan ng VPS panel. Ito ang dahilan kung bakit tumatanggi pa ring tumanggap ng mga connection ang isang box kahit tama ang itsura ng sarili nitong ufw status.

Ang STUN (session traversal utilities for NAT) ang ginagamit ng peer upang malaman ang public address at port na itinalaga ng sarili nitong NAT. Dahil dito, maaaring subukan ng dalawang peer na magtatag ng direktang tunnel. Kapag naka-block ang UDP 3478, nakakakonekta pa rin ang mga peer sa relay gamit ang TCP 443, kaya maaaring mukhang walang sira. Sa halip, Connection type: Relayed ang nakukuha mo sa bawat peer, at dumaraan ang lahat ng traffic sa VPS mo sa halip na direktang peer to peer.

Sa software side, kailangan mo ng Docker na may Compose v2 plugin, kasama ang jq at curl. Tinitingnan ng script ang lahat ng ito at humihinto kapag may nawawala. Kung bago pa ang Docker sa box na ito, unahin ang Pagpapatakbo ng Docker Compose sa VPS.

Mga port kapag nilaktawan ang bundled reverse proxy

Kapag tumakbo nang walang Traefik, direktang ie-expose ang mga indibidwal na serbisyo at hahaba ang listahan ng mga port:

  • TCP 80, HTTP redirects
  • TCP 443, HTTPS
  • TCP 33073, management gRPC
  • TCP 10000, signal gRPC
  • TCP 33080, relay sa WebSocket o QUIC
  • UDP 3478, STUN

Piliin lamang ito kapag may ibang system na sa box na nagte-terminate ng TLS. Kung wala, mas kaunti ang rules at mas kaunti ang pagkakamali kapag ginamit ang bundled Traefik.

I-install ang NetBird server gamit ang quickstart script

Direktang ipinapasa ng documented one-liner ang pinakabagong release sa shell:

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

I-pin ang version sa halip. Nagbabago ang latest, kaya magkaiba ang mai-install kapag parehong command ang pinatakbo makalipas ang dalawang linggo. Wala ring nire-record sa disk kung aling release ang sumulat sa iyong config. Mag-download ng tagged release, basahin ito, at saka patakbuhin.

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

Una nitong hinihingi ang domain:

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

Pagkatapos, tinatanong nito kung paano hahawakan ang TLS:

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):

Piliin ang [0]. Ang options 2 hanggang 5 ay sumusulat ng config snippet at iniiwan sa iyo ang pag-wire nito. Tama ito sa server na mayroon nang proxy, pero hindi tama sa bagong server. Pagkatapos, hihingin ng option 0 ang email address para sa Let's Encrypt. Gagamitin ito para sa mga abiso sa pag-expire.

Tumanggi sa NetBird Proxy service sa unang installation. Nangangailangan ito ng dalawa pang DNS record, proxy.netbird.example.com at ang wildcard na *.proxy.netbird.example.com, at wala itong silbi para sa plain mesh. Tumanggi rin sa CrowdSec. Maaari silang idagdag sa ibang pagkakataon.

Sa kasalukuyang directory sumusulat ang script: docker-compose.yml, config.yaml na may mode 600, dashboard.env, at traefik-dynamic.yaml kapag pinili mo ang bundled Traefik. Ituring ang directory na iyon bilang state na dapat mong itago, dahil nasa config.yaml ang key na nag-e-encrypt ng data sa store. Hindi maaayos ng reinstall ang pagkawala nito.

docker compose ps
docker compose logs -f netbird-server

Dapat basahin ng bawat service ang running, at dapat maging stable ang server log sa halip na paulit-ulit na mag-restart. I-monitor nang hiwalay ang certificate:

docker compose logs traefik | grep -i acme

Ang ACME (automatic certificate management environment) ang protocol na ginagamit ng Traefik para kunin ang certificate. Halos palaging DNS o saradong port 80 ang sanhi ng mga error dito.

Gumawa ng unang admin account

Buksan ang https://netbird.example.com. Sa bagong install, mapupunta ito sa setup page sa halip na login form. Maglagay ng email address, pangalan, at password, pagkatapos ay i-click ang Create Account. Ito ang magiging unang admin, at magre-redirect ang page sa login form.

Nasa sariling user store ng NetBird ang account na ito, na pinapagana ng identity provider na naka-embed sa netbird-server container. Walang external na component na kasali. Ito ang pinakamalaking pagbabago kumpara sa self-hosted NetBird noong nakaraang taon. Noon, kailangan munang mag-set up ng Zitadel o Keycloak at maglagay ng apat na OIDC (OpenID Connect) value sa setup.env bago pa man magsimula ang installation.

Kung browser certificate warning ang makita mo sa halip na setup page, hindi na-issue ang certificate. Ayusin muna ito bago magpatuloy. Nakikipag-ugnayan ang dashboard sa API gamit ang parehong hostname, kaya nagkakaroon ng hindi malinaw na mga error kapag may problema ang certificate.

Sumali sa iyong unang peer

I-install ang client sa anumang Linux machine, kabilang ang VPS mismo kung gusto mo itong isama sa mesh:

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

Sa Debian at Ubuntu, kino-configure ng script na iyon ang package repository ng NetBird at pagkatapos ay ini-install ang client sa pamamagitan ng apt. Kaya package manager pa rin ang namamahala rito sa alinmang paraan. Kung hindi ka komportable sa pag-pipe ng script sa shell, i-save muna ito gamit ang curl -fsSL -o install.sh https://pkgs.netbird.io/install.sh at basahin bago patakbuhin ang sh install.sh. Sa alinmang paraan, kumpirmahin kung ano ang na-install:

apt-cache policy netbird

Ang netbird ang command line client at daemon. Ang netbird-ui ang desktop tray app, at walang silbi ito sa isang headless server.

Ngayon, ituro ang client sa iyong server:

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

Alisin ang --management-url at magre-register ang client sa hosted service ng NetBird dahil iyon ang naka-compile na default. Magtatagumpay pa rin ang command, magkakaroon pa rin ng address ang machine, at mananatiling walang laman ang iyong self-hosted dashboard. Halos lahat ay nalilinlang nito kahit isang beses.

Magpi-print ang command ng URL na bubuksan sa browser upang makumpleto ang login. Pagkatapos nito:

netbird status
ip addr show wt0

Basahin ang apat na linya mula sa netbird status: Management: Connected, Signal: Connected, isang linyang Relays: na nag-uulat ng bawat available na relay, at isang NetBird IP: sa overlay range. Ang wt0 ang WireGuard interface na ginagawa ng NetBird, at dapat nitong gamitin ang parehong address.

Mag-join ng pangalawang machine nang walang umaaksyon

Hindi gumagana ang browser login sa machine na walang browser at walang taong nasa harap nito. Ang setup key ay isang pre-authentication token na nagrerehistro ng machine nang hindi kailangan ang interactive na hakbang. Gumawa nito sa dashboard sa ilalim ng Setup Keys.

May dalawang uri. Ang one-off key ay nag-a-authenticate ng eksaktong isang machine at pagkatapos ay nagagamit na. Ang reusable key ay nagrerehistro ng maraming machine, na may opsyonal na limitasyon sa bilang. Pareho silang may expiry, at pareho ring maaaring awtomatikong magtalaga ng bagong peer sa isang group. Dahil dito, agad na nalalapat ang mga access rule ng group kapag lumitaw ang machine.

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

Itinatakda ng --hostname ang pangalang ipinapakita sa dashboard. Kung wala ito, gagamitin ng peer ang pangalang itinatalaga ng machine sa sarili nito. Walang makikinabang sa fleet ng mga entry na pare-parehong pinangalanang ubuntu.

Para sa mga container at panandaliang build agent, markahan ang key bilang ephemeral kapag ginagawa ito. Awtomatikong inaalis ang mga peer na nakarehistro gamit ang ephemeral key kapag offline na sila nang mahigit 10 minutes. Nakakatulong ito upang hindi mapuno ng mga patay na entry ang peer list.

May isang limitasyong dapat maunawaan bago umasa sa setup keys: pinipigilan ng pag-expire o pag-delete ng key ang mga bagong registration, pero hindi nito dini-disconnect ang mga machine na dati nang nag-register gamit ito. Para alisin ang access ng isang machine, alisin ang peer na iyon.

Kailangan mo pa ba ng hiwalay na identity provider?

Para sa maliit na installation, hindi. Hinahawakan ng built-in user store ang mga account na ginawa mula sa dashboard, at sapat na ito para sa ilang user.

Kailangan mo ng external identity provider kung mayroon ka na nito at ayaw mong magpanatili ng pangalawang listahan ng mga user. Tumatanggap ang NetBird ng anumang provider na gumagamit ng OIDC. Mag-register ng confidential OIDC client sa iyong provider, pagkatapos ay idagdag ito sa NetBird dashboard gamit ang apat na value: name, client ID, client secret, at issuer. Bibigyan ka ng NetBird ng redirect URL na dapat mong i-paste pabalik sa provider. May mga pinangalanang integration para sa Google, Microsoft Entra ID, Okta, Zitadel, Keycloak, Authentik, at Pocket ID. Para sa iba pang provider, gamitin ang generic OIDC. Kung pinapatakbo mo na ang Authentik bilang iyong self-hosted single sign-on, ito ang paraan para iisang listahan ng account lamang ang mapanatili sa halip na dalawa.

Mananatiling available ang local login pagkatapos mong magdagdag ng provider, at lalabas sa login page ang bawat naka-configure na provider. Magpanatili ng isang local admin account na may matibay na password. Kung masira ang OIDC configuration, magkakaroon ka pa rin ng paraan para makapasok.

NetBird o Headscale: aling control plane ang dapat mong patakbuhin?

Pareho nilang inaalis ang parehong dependency: ang hosted control server na kung hindi ay tatawagan ng iyong mga client para kumonekta. Magkaiba ang anyo at saklaw ng mga proyekto.

Muling ipinapatupad ng Headscale ang Tailscale control server, at patuloy mong ginagamit ang official Tailscale clients. Walang official web console. Pinamamahalaan mo ang mga user at pre-authentication key gamit ang headscale command laban sa isang config file. May mga community web interface, pero hindi bahagi ng proyekto ang mga ito. Angkop ito sa mga gustong nasa files ang kanilang state at nasa version control ang kanilang mga pagbabago.

Ipinapadala ng NetBird ang buong produkto: sarili nitong client, dashboard, embedded identity provider, at access policies na ine-edit sa browser. Mas marami itong component sa iyong VPS, pero mas kaunti ang trabahong kailangan para ipahawak ito sa isang kasamahang hindi kailanman gagamit ng terminal.

Patakbuhin ang Headscale kung gumagamit ka na ng Tailscale clients o gusto mo ng pinakamaliit na posibleng control plane. Patakbuhin ang NetBird kung kailangang mamahala ng mga peer ang ilang tao at gusto mo ng console at SSO nang hindi ka bubuo ng sarili nito. Bago ka pumili ng alinman sa mga ito, tingnan kung ano talaga ang saklaw ng libreng plan ng Tailscale, dahil kung kasya ang isang grupo sa anim na user na may unlimited devices, wala itong babayaran para sa hosted control plane at maaaring wala itong dahilan para magpatakbo nito. Kapag lumampas sa limitasyong iyon, lumalaki ang bayarin batay sa dami ng tao, hindi sa dami ng machine. Kaya makatutulong ang pagkalkula kung magkano ang sisingilin ng Tailscale sa iyong grupo upang maihambing mo ito sa gastos ng VPS at sa oras na gugugulin mo sa stack na ito.

Gaano kaliit ang VPS na kayang magpatakbo nito?

Ang nakadokumentong minimum ay 1 CPU at 2 GB na memory. Ayon sa sariling notes ng NetBird, nasa 1 GB ng RAM na ngayon ang kasalukuyang minimum dahil local na ang user management. Mas mataas ito sa 2 GB hanggang 4 GB na kailangan ng dating layout noong kasama pa sa stack ang buong Zitadel deployment. Bumili ng 2 GB. Ang dagdag na headroom ang nagbibigay-daan sa pag-download ng upgrade ng mga bagong image habang nasa disk pa ang mga lumang image.

May tatlong bagay na ligtas alisin sa maliit na server. Huwag paganahin ang NetBird Proxy service. Ginagamit ito para i-publish ang mga internal service sa mga public hostname at walang kaugnayan sa pagkonekta ng mga peer. Huwag paganahin ang CrowdSec. Mas mainam itong idagdag sa exposed server sa susunod kaysa i-deploy sa unang araw. Panatilihin ang default na SQLite store sa netbird_data volume. Lumipat lamang sa PostgreSQL kapag hinati mo ang deployment sa maraming machine o nakaranas ka ng aktuwal na concurrency. Nakadokumento ang migration na ito bilang isang hakbang na maaaring gawin sa susunod.

Ang relay ang isang component na hindi maaaring alisin. Kapag ibang port ang itinalaga ng NAT ng dalawang peer para sa bawat destination, hindi sila kailanman makapagtatatag ng direktang tunnel. Samakatuwid, ang relay lamang ang paraan para gumana ang koneksyon nila. Kaunti lamang ang matitipid na memory kapag pinatay ito, ngunit masisira ang mga koneksyon sa paraang mahirap i-troubleshoot.

Kapag hindi na sapat ang isang server, ang relay ang unang dapat ilipat dito. Gumagana ang standalone relay gamit ang NB_LISTEN_ADDRESS, NB_EXPOSED_ADDRESS, NB_AUTH_SECRET at NB_ENABLE_STUN. Dapat magkapareho ang shared secret sa relay at sa main server. Kung hindi, mabibigo ang mga client na mag-authenticate dito.

Mga failure mode at kung ano ang makikita mo

May certificate warning sa dashboard. Hindi nakakuha ng certificate ang Traefik. Patakbuhin ang docker compose logs traefik | grep -i acme. May dalawang posibleng sanhi. Maaaring hindi pa bumabalik sa VPS na ito ang dig +short netbird.example.com, o nakasara ang TCP 80 sa pagitan ng Let's Encrypt at ng container, karaniwan sa network firewall ng provider at hindi sa ufw. Ayusin muna ang sanhi bago paulit-ulit na mag-retry, dahil may rate limit ang mga nabigong validation at mai-lock out ka sa pag-retry nang isang oras.

Sinasabi ng client na nakakonekta ito pero walang laman ang dashboard. Nag-register ang client sa hosted service ng NetBird dahil nawawala ang --management-url. Patakbuhin ang netbird status --detail at basahin ang linyang Management:, na nagsasaad kung aling server talaga ang kausap nito. Kapag nakita ang Management: Connected to https://api.netbird.io:443, ibig sabihin ay kumonekta ito sa cloud. Patakbuhin ang sudo netbird down, pagkatapos ay ang sudo netbird up --management-url https://netbird.example.com muli.

Lahat ng peer ay nagpapakita ng Connection type: Relayed. Walang nabubuong direct tunnel, kaya dumadaan ang lahat ng traffic sa iyong VPS at nadaragdagan ang latency ng isang hop. Suriin ang UDP 3478 sa firewall ng VPS at sa firewall ng provider, dahil STUN ang tumutulong sa peer na malaman ang sarili nitong public address at port. Ipinapakita rin ng netbird status --detail ang Direct: false at ang mga ICE (interactive connectivity establishment) candidate type ng bawat peer, kaya makikita kung gaano kalayo ang naging progreso ng pagtatangka. Sa ilang network, relayed lang ang posibleng resulta at walang mali sa configuration.

Sumasali ang isang peer pero wala itong naaabot. Hindi nangangahulugang maaaring mag-usap ang dalawang peer dahil nasa mesh sila. Access policy ang nagpapasya nito, at walang maaabot ang group na walang nakakabit na policy. Suriin ang policy sa dashboard bago mag-debug ng mga route at firewall.

Nag-uulat ang netbird status ng problema sa daemon. Hindi tumatakbo ang service. Gamitin ang sudo netbird service status at sudo netbird service start. Nasa /var/log/netbird/client.log ang mga client log. Para sa anumang problemang hindi mo matukoy, kinokolekta ng netbird debug bundle --anonymize --system-info ang mga log, status, route, DNS setting, at firewall state sa isang archive.

Mga backup at upgrade

Dalawang bagay ang bumubuo sa buong installation: ang directory na naglalaman ng docker-compose.yml at config.yaml, at ang Docker volume na naglalaman ng database at encryption keys. I-back up ang mga ito nang magkasama. Nasa config.yaml ang key na nag-e-encrypt ng data sa store, kaya walang mababasang data kapag database copy lang ang ni-restore nang wala ito.

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

Nilalagyan ng Compose ng project directory prefix ang mga pangalan ng volume, kaya ang volume na nakadokumento bilang netbird_data ay karaniwang lumilitaw bilang netbird_netbird_data. Patakbuhin muna ang docker volume ls at gamitin ang pangalang ipinapakita nito. Kung hindi, tahimik na gagawa ang docker run ng walang-lamang volume at walang ia-archive. Itago ang mga archive sa labas ng VPS. Kung mayroon ka nang backup tool, magagamit ang restic o BorgBackup para sa offsite backup.

Ang pag-upgrade ng server ay binubuo ng pull at recreate:

docker compose pull
docker compose up -d
docker compose ps

Bago mo ito pagkatiwalaan, patakbuhin ang docker compose config | grep image:. Dapat i-pin sa isang version ang anumang tag na may halagang latest, sa parehong dahilan kung bakit mo pinin ang install script: kailangan mong malaman kung ano ang tumatakbo, at kailangan mong magkaroon ng version na maaari mong balikan kapag nagkaproblema ang upgrade. Nag-a-upgrade ang mga client gamit ang package manager na nag-install sa mga ito.

FAQ

Kailangan ko ba ng sarili kong identity provider para mag-self-host ng NetBird?

Hindi. May built-in user store ang mga kasalukuyang release, kaya maaari mong gawin ang unang admin account sa browser sa https://netbird.example.com at pagkatapos ay magdagdag ng mga user mula sa dashboard. Optional ang external OIDC provider at maaari itong idagdag sa ibang pagkakataon gamit ang apat na value: name, client ID, client secret, at issuer. Ang mga guide na nagsasabing i-deploy muna ang Zitadel o Keycloak bago ang NetBird ay naglalarawan ng setup na hindi na kailangan. Kapag sinunod ang mga ito, madaragdagan ka ng isang buong service na kailangan mong patakbuhin.

Bakit Connection type: Relayed ang ipinapakita para sa lahat ng peer ko?

Hindi nabubuo ang mga direct connection, kaya dumadaan ang traffic sa relay sa iyong VPS. Karaniwang sanhi nito ang pag-block sa UDP 3478. Ito ang STUN port na ginagamit ng mga peer para tuklasin ang sarili nilang public address at port. Buksan ito sa VPS firewall at sa hiwalay na network firewall ng iyong provider. Pagkatapos, patakbuhin muli ang netbird status --detail at basahin ang linyang Direct:. Sa network na nag-a-assign ng ibang port para sa bawat destination dahil sa NAT, relayed lang ang posibleng resulta at walang maling configuration.

Nakakonekta ang client ko pero walang peer na ipinapakita ang dashboard. Ano ang nangyari?

Nag-register ang client sa hosted service ng NetBird sa halip na sa iyong server. Nangyayari ito kapag hindi itinakda ang --management-url. Ipinapakita ng netbird status --detail ang server na kinakausap nito sa linyang Management:, kaya kinukumpirma ito ng value na gaya ng https://api.netbird.io:443. Patakbuhin ang sudo netbird down, pagkatapos ay ang sudo netbird up --management-url https://netbird.example.com, at lalabas ang peer sa iyong dashboard.

Paano naiiba ang self-hosted NetBird sa Headscale?

Pareho nilang pinapalitan ang hosted control server ng server na ikaw ang nagpapatakbo. Control plane lamang ang Headscale. Pinamamahalaan mo ito gamit ang command na headscale at isang config file. Wala itong official web console, at pinapatakbo nito ang official Tailscale clients. May sarili namang client ang NetBird, pati admin dashboard at integration sa identity provider, sa iisang stack. Mas maliit patakbuhin ang Headscale at files ang ginagamit nito para sa state. Mas madaling ipagamit ang NetBird sa mga taong hindi gagamit ng terminal.

Anong laki ng VPS ang kailangan ng self-hosted NetBird server?

Ang documented minimum ay 1 CPU at 2 GB memory, at 2 GB ang dapat mong kunin. Bumaba sa humigit-kumulang 1 GB ang praktikal na minimum sa mga kamakailang release dahil naka-embed na ang identity provider sa halip na hiwalay na deployment. Huwag piliin ang optional na proxy at CrowdSec services habang nag-i-install. Gamitin muna ang default na SQLite store hanggang sa talagang kailanganin mo ang PostgreSQL.