SSD Nodes Learn Hosting plans →
Panduan Matt ConnorOleh Matt Connor

Cara Host Sendiri NetBird VPN Server di VPS

Panduan lengkap pasang NetBird VPN pada VPS anda. Ketahui cara konfigurasi DNS, TLS, skrip quickstart, setup keys untuk peer tanpa pengawasan serta perbandingan dengan Headscale.

Kelebihan mengendalikan sendiri pelayan VPN NetBird

Mengendalikan sendiri pelayan VPN NetBird meletakkan control plane pada VPS milik anda: bahagian yang menyimpan senarai peer, menentukan mesin mana yang boleh mencapai mesin lain, dan membantu dua peer mencari satu sama lain di sebalik NAT (network address translation). Terowong itu sendiri masih menggunakan WireGuard, yang disulitkan secara terus antara mesin anda. Perubahannya ialah tiada syarikat luar yang memegang inventori peranti atau aliran log masuk anda. Fahami dengan jelas apa yang anda peroleh, kerana control plane yang dihoskan juga tidak pernah memegang kunci yang menyulitkan trafik anda, dan apa yang boleh dilakukan oleh coordination server jika ia diceroboh adalah senarai yang lebih terhad daripada jangkaan kebanyakan orang sebelum mereka membacanya.

NetBird berada di antara dua perkara yang mungkin anda sudah ketahui. Ia adalah mesh overlay, jadi peer berhubung antara satu sama lain dan bukannya menghantar segala-galanya melalui satu gateway. Ia juga boleh dihoskan sendiri sepenuhnya, yang meletakkannya sebagai pesaing kepada Headscale, pelayan kawalan Tailscale yang dihoskan sendiri. Jika anda hanya pernah menjalankan terowong gateway tunggal, baca perbezaan antara WireGuard biasa dan mesh overlay terlebih dahulu, kerana model mental itulah yang menjadikan bahagian lain halaman ini berguna.

Jika apa yang anda sebenarnya perlukan ialah satu pelayan yang menjadi laluan keluar bagi semua trafik anda, mesh adalah lebih kompleks daripada yang diperlukan. VPN WireGuard biasa pada satu VPS atau exit node Tailscale melakukan perkara itu dengan usaha yang jauh lebih sedikit. Dan jika matlamatnya adalah untuk mencapai satu rangkaian peribadi dan bukannya menghubungkan mesin antara satu sama lain, subnet router Tailscale pada VPS mengiklankan julat tersebut kepada tailnet yang anda sudah miliki tanpa memerlukan keseluruhan stack di bawah.

Perkara yang sebenarnya dijalankan oleh stack

Susun atur ini telah berubah baru-baru ini, dan kebanyakan penulisan lama menerangkan susun atur yang terdahulu. Disemak pada Oktober 2026 terhadap v0.80.0 dan terhadap v0.76.2, iaitu release yang ditetapkan oleh panduan ini, skrip quickstart menulis fail Compose dengan tiga servis secara lalai.

  • netbird-server membawa API pengurusan, servis signal, relay dengan pendengar STUN terbenam, dan penyedia identiti terbenam. Dalam release yang lebih lama, komponen ini adalah kontena yang berasingan dan penyedia identiti merupakan pemasangan Zitadel berasingan yang perlu anda bina terlebih dahulu.
  • dashboard ialah konsol web admin.
  • traefik menamatkan TLS (transport layer security) dan meminta sijil daripada Let's Encrypt pada permulaan pertama.

Dua lagi servis wujud dan kekal dimatikan kecuali anda menyatakan ya pada gesaan. Servis NetBird Proxy menerbitkan servis dalaman pada hostname awam. CrowdSec menapis trafik yang bersifat penyalahgunaan. Kedua-duanya tidak diperlukan untuk membina mesh yang berfungsi, dan kedua-duanya menggunakan memori pada pelayan kecil.

Jika anda datang daripada wg-easy dalam satu kontena Docker, ini merupakan peningkatan dalam jumlah komponen. Apa yang anda peroleh ialah polisi akses dan akaun bagi setiap pengguna, serta peer yang bersambung terus antara satu sama lain dan bukannya melalui satu gateway.

Keperluan sebelum bermula

Nama domain awam adalah wajib. Papan pemuka, API dan relay semuanya menggunakan HTTPS pada port 443, dan Traefik mendapatkan sijil daripada Let's Encrypt menggunakan cabaran TLS-ALPN-01 yang dijawab pada port 443. Ini memerlukan nama yang diselesaikan kepada VPS ini daripada internet awam. Alamat IP sahaja tidak akan berfungsi dalam aliran ini.

Cipta satu rekod A, netbird.example.com yang menghala ke alamat IPv4 awam VPS, dan tunggu sehingga ia aktif sebelum menjalankan sebarang arahan.

dig +short netbird.example.com

Arahan tersebut mesti memaparkan alamat pelayan anda. Menjalankan pemasang sebelum DNS disebarkan bermakna permintaan sijil akan gagal pada permulaan pertama, dan percubaan pengesahan yang gagal berulang kali akan terkena had kadar Let's Encrypt. Anda kemudian perlu menunggu had tersebut ditetapkan semula sebelum boleh mencuba lagi.

Tiga port mesti boleh dicapai dari internet: TCP 80 untuk redirect ke HTTPS, TCP 443 untuk papan pemuka, API, trafik signal dan relay serta cabaran sijil, dan UDP 3478 untuk STUN.

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

Buka port tersebut pada firewall rangkaian pembekal anda juga. Ini adalah kawalan berasingan dalam kebanyakan panel VPS, dan ia merupakan sebab mengapa pelayan yang konfigurasi ufw status-nya kelihatan betul masih menolak sambungan.

STUN (session traversal utilities for NAT) ialah cara peer mengetahui alamat awam dan port yang diberikan oleh NAT sendiri, supaya dua peer boleh cuba membina terowong terus. Jika UDP 3478 disekat, peer masih boleh bersambung melalui relay pada TCP 443, jadi tiada apa yang kelihatan rosak. Anda sebaliknya akan mendapat Connection type: Relayed pada setiap peer, dan semua trafik akan melalui VPS anda dan bukannya terus antara peer.

Dari segi perisian, anda memerlukan Docker dengan pemalam Compose v2, serta jq dan curl. Skrip ini menyemak Docker, Compose dan jq, dan akan berhenti jika salah satu daripadanya tiada. Ia menggunakan curl tanpa menyemaknya, jadi pasang perisian tersebut terlebih dahulu. Jika Docker baru dipasang pada pelayan ini, pastikan Docker Compose berfungsi pada VPS terlebih dahulu.

Port jika anda melangkau reverse proxy yang disertakan

Tanpa Traefik, pelayan gabungan masih membawa pengurusan, signal dan relay pada satu backend HTTP, jadi senarai port hampir tidak berubah. Fail Compose yang dijana menerbitkan:

  • TCP 8080, papan pemuka, terikat pada 127.0.0.1
  • TCP 8081, netbird-server, terikat pada 127.0.0.1
  • UDP 3478, STUN, diterbitkan secara terus

Proksi anda sendiri menamatkan TLS pada TCP 443 dan menghantar trafik ke dua port tempatan tersebut. STUN tidak pernah melalui proksi, jadi UDP 3478 kekal dibuka pada firewall dalam apa jua keadaan. Panduan yang menyenaraikan port berasingan untuk gRPC pengurusan, gRPC signal dan relay adalah untuk susun atur berbilang kontena yang lama.

Pilih kaedah ini hanya jika pelayan tersebut sudah menamatkan TLS untuk perkhidmatan lain. Jika tidak, Traefik yang disertakan adalah lebih mudah dengan peraturan yang lebih sedikit dan kurang risiko kesilapan.

Pasang pelayan NetBird dengan skrip quickstart

Satu baris arahan yang didokumentasikan menyalurkan keluaran (release) terkini terus ke dalam shell:

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

Sebaliknya, tetapkan versi (pin) skrip tersebut. latest sentiasa berubah, jadi arahan yang sama jika dijalankan selang dua minggu akan menghasilkan dua pemasangan yang berbeza, dan tiada rekod pada cakera yang mencatatkan versi mana yang menulis konfigurasi anda. Muat turun keluaran yang bertanda (tagged release), baca kandungannya, kemudian jalankannya.

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

Skrip tersebut akan meminta domain terlebih dahulu:

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

Kemudian ia bertanya bagaimana TLS akan dikendalikan:

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

Pilih [0]. Pilihan 2 hingga 4 akan menulis cebisan konfigurasi dan menyerahkan urusan penyambungan kepada anda, manakala pilihan 5 hanya menulis fail Compose dan memaparkan dokumentasi penyediaan pada terminal. Ini adalah tindakan yang betul pada pelayan yang sudah menjalankan proksi, tetapi salah pada pelayan yang baharu. Pilihan 0 kemudian meminta alamat e-mel, yang didaftarkan oleh Traefik dengan akaun Let's Encrypt anda. Prompt tersebut masih melabelkannya sebagai alamat untuk pemberitahuan sijil, namun Let's Encrypt telah berhenti menghantar e-mel tamat tempoh pada 4 Jun 2025, jadi masalah pembaharuan akan muncul dalam log Traefik dan bukannya dalam peti masuk anda.

Tolak perkhidmatan NetBird Proxy pada pemasangan pertama. Ia memerlukan satu lagi rekod DNS, iaitu *.netbird.example.com CNAME wildcard yang menghala ke netbird.example.com, dan ia tidak memberikan sebarang fungsi untuk mesh biasa. Prompt CrowdSec hanya muncul setelah proksi diaktifkan, jadi menolak proksi juga akan melangkau prompt tersebut. Kedua-duanya boleh ditambah kemudian.

Skrip tersebut menulis ke dalam direktori semasa: docker-compose.yml, config.yaml dengan mod 600, dan dashboard.env. Dengan Traefik yang disertakan, ia menambah traefik-dynamic.yaml dan proxy.env hanya apabila anda mengaktifkan NetBird Proxy. Anggap direktori tersebut sebagai data keadaan (state) yang perlu disimpan, kerana config.yaml menyimpan kunci yang menyulitkan data dalam storan. Kehilangan kunci ini tidak dapat dipulihkan dengan pemasangan semula.

docker compose ps
docker compose logs -f netbird-server

Setiap perkhidmatan harus membaca running, dan log pelayan sepatutnya stabil dan bukannya memulakan semula dalam gelung. Pantau sijil secara berasingan:

docker compose logs traefik | grep -i acme

ACME (automatic certificate management environment) ialah protokol yang digunakan oleh Traefik untuk mendapatkan sijil. Ralat di sini hampir selalu berpunca daripada masalah DNS atau port 443 yang tertutup.

Cipta akaun pentadbir pertama

Buka https://netbird.example.com. Pada pemasangan baharu, anda akan dibawa ke halaman persediaan dan bukannya borang log masuk. Masukkan alamat e-mel, nama dan kata laluan, kemudian klik Create Account. Akaun tersebut akan menjadi pentadbir pertama, dan halaman akan mengubah hala ke borang log masuk.

Akaun itu disimpan dalam stor pengguna NetBird sendiri, yang dikuasakan oleh penyedia identiti yang terbenam di dalam kontena netbird-server. Tiada perkhidmatan luaran yang terlibat. Ini merupakan perubahan terbesar berbanding NetBird yang dihoskan sendiri setahun yang lalu, di mana pemasangan yang berfungsi memerlukan anda menyediakan Zitadel atau Keycloak terlebih dahulu dan menyalin empat nilai OIDC (OpenID Connect) ke dalam setup.env sebelum sebarang proses boleh bermula.

Jika anda menerima amaran sijil pelayar dan bukannya halaman persediaan, bermakna sijil tersebut tidak dikeluarkan. Selesaikan masalah itu sebelum meneruskan langkah seterusnya, kerana papan pemuka berkomunikasi dengan API melalui nama hos yang sama dan akan gagal dengan cara yang mengelirukan jika sijil tersebut tidak sah.

Sertai peer pertama anda

Pasang klien pada mana-mana mesin Linux, termasuk VPS itu sendiri jika anda mahu ia berada dalam mesh:

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

Pada Debian dan Ubuntu, skrip tersebut mengkonfigurasi repositori pakej NetBird dan kemudian memasang klien melalui apt, jadi pengurus pakej akan menguruskan pemasangan tersebut. Jika anda tidak selesa menyalurkan skrip terus ke shell, simpan dahulu dengan curl -fsSL -o install.sh https://pkgs.netbird.io/install.sh dan baca kandungannya sebelum menjalankan sh install.sh. Walau apa pun, sahkan apa yang telah dipasang:

apt-cache policy netbird

netbird ialah klien baris perintah dan daemon. netbird-ui ialah aplikasi dulang desktop, dan pelayan tanpa kepala (headless server) tidak memerlukannya.

Sekarang, halakan klien ke pelayan anda:

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

Jangan abaikan --management-url, jika tidak klien akan mendaftar dengan perkhidmatan hos NetBird, kerana itu adalah tetapan lalai yang dikompilasi. Perintah tersebut masih berjaya, mesin masih mendapat alamat, tetapi papan pemuka (dashboard) yang anda hos sendiri akan kekal kosong. Ini adalah kesilapan yang sering dilakukan oleh hampir semua orang.

Perintah tersebut akan memaparkan URL untuk dibuka dalam pelayar bagi melengkapkan log masuk. Selepas itu:

netbird status
ip addr show wt0

Baca empat baris daripada netbird status: Management: Connected, Signal: Connected, baris Relays: yang melaporkan setiap relay yang tersedia, dan NetBird IP: dalam julat overlay. wt0 ialah antara muka WireGuard yang dicipta oleh NetBird, dan ia sepatutnya membawa alamat yang sama.

Menyertai mesin kedua secara tanpa pengawasan dengan kunci persediaan

Log masuk pelayar tidak berfungsi untuk mesin yang tiada pelayar dan tiada pengguna di hadapannya. Kunci persediaan (setup key) ialah token pra-pengesahan yang mendaftarkan mesin tanpa langkah interaktif. Cipta satu kunci dalam papan pemuka di bawah Setup Keys.

Terdapat dua jenis kunci. Kunci sekali guna mengesahkan tepat satu mesin dan kemudian luput. Kunci boleh guna semula mendaftarkan banyak mesin, dengan had bilangan yang boleh ditetapkan. Kedua-duanya memerlukan tempoh luput, dan kedua-duanya boleh menetapkan peer baharu secara automatik ke dalam kumpulan, supaya peraturan akses pada kumpulan tersebut terpakai sebaik sahaja mesin itu muncul.

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

--hostname menetapkan nama yang dipaparkan dalam papan pemuka. Tanpanya, peer akan menggunakan nama mesin itu sendiri, dan sekumpulan entri yang semuanya bernama ubuntu tidak membantu sesiapa pun.

Untuk kontena dan ejen binaan jangka pendek, tandakan kunci sebagai ephemeral semasa anda menciptanya. Peer yang didaftarkan dengan kunci ephemeral akan dialih keluar secara automatik sebaik sahaja ia berada di luar talian selama lebih daripada 10 minit, yang memastikan entri mati tidak memenuhi senarai peer.

Satu had yang perlu difahami sebelum anda merancang menggunakan kunci persediaan: meluputkan atau membatalkan kunci akan menghentikan pendaftaran baharu, tetapi ia tidak memutuskan sambungan mesin yang telah pun mendaftar dengannya. Mengalih keluar akses mesin bermakna mengalih keluar peer tersebut.

Adakah anda masih memerlukan penyedia identiti yang berasingan?

Untuk pemasangan berskala kecil, jawapannya tidak. Storan pengguna terbina dalam mengurus akaun yang dicipta daripada papan pemuka, dan ini sudah memadai untuk sebilangan kecil pengguna.

Anda memerlukan penyedia identiti luaran apabila anda sudah memilikinya dan tidak mahu menguruskan senarai pengguna kedua. NetBird menerima mana-mana penyedia yang menyokong OIDC. Daftarkan klien OIDC sulit dalam penyedia anda, kemudian tambahkannya dalam papan pemuka NetBird dengan empat nilai: nama, client ID, client secret dan issuer. NetBird akan memberikan anda URL ubah hala (redirect URL) untuk ditampal semula ke dalam penyedia tersebut. Integrasi khusus tersedia untuk Google, Microsoft Entra ID, Okta, Zitadel, Keycloak, Authentik dan Pocket ID, manakala perkhidmatan lain boleh dimasukkan sebagai OIDC generik. Jika anda sudah menjalankan Authentik sebagai single sign-on yang dihoskan sendiri, ini adalah laluan yang mengekalkan satu senarai akaun dan bukannya dua.

Log masuk tempatan kekal tersedia selepas anda menambah penyedia, dan setiap penyedia yang dikonfigurasikan akan muncul pada halaman log masuk. Kekalkan satu akaun pentadbir tempatan dengan kata laluan yang kuat. Konfigurasi OIDC yang rosak tidak akan menghalang anda daripada mengakses sistem.

NetBird atau Headscale: control plane manakah yang perlu anda jalankan?

Kedua-duanya membuang dependency yang sama, iaitu pelayan kawalan (control server) berhos yang biasanya dihubungi oleh klien anda. Projek ini mempunyai bentuk yang berbeza.

Headscale melaksanakan semula pelayan kawalan Tailscale, dan anda terus menggunakan klien rasmi Tailscale. Tiada konsol web rasmi. Anda mengurus pengguna dan pre-authentication keys dengan arahan headscale terhadap fail konfigurasi. Antara muka web komuniti memang wujud, namun ia bukan sebahagian daripada projek tersebut. Ini sesuai bagi mereka yang mahukan status dalam fail dan perubahan mereka dalam kawalan versi.

NetBird membekalkan keseluruhan produk: kliennya sendiri, papan pemuka (dashboard) sendiri, penyedia identiti terbenam, dan polisi akses yang disunting dalam pelayar. Ini bermakna lebih banyak komponen yang perlu diurus pada VPS anda, namun ia jauh lebih mudah untuk diserahkan kepada rakan sekerja yang tidak akan membuka terminal.

Jalankan Headscale jika anda sudah melabur dalam klien Tailscale atau anda mahukan control plane yang paling kecil. Jalankan NetBird jika beberapa orang perlu mengurus peer dan anda mahukan konsol serta SSO tanpa perlu membina satu sistem. Sebelum anda memilih mana-mana, semak apa yang sebenarnya dilindungi oleh pelan percuma Tailscale, kerana kumpulan bukan komersial yang mempunyai enam pengguna atau kurang tidak perlu membayar untuk control plane berhos, dengan peranti pengguna tanpa had dan 50 sumber bertag sebagai permulaan, dan mungkin tiada sebab untuk menjalankan sendiri. Melepasi had tersebut, bil akan meningkat mengikut bilangan orang dan bukannya bilangan mesin, jadi mengira caj Tailscale untuk kumpulan anda memberikan anda angka untuk dipertimbangkan berbanding kos VPS dan masa yang diperlukan untuk menyelenggara stack ini.

Berapa kecil saiz VPS yang diperlukan untuk menjalankan ini?

Keperluan minimum yang didokumentasikan ialah 1 CPU dan 2 GB memori. Nota NetBird sendiri meletakkan had minimum semasa sekitar 1 GB RAM memandangkan pengurusan pengguna kini dilakukan secara setempat, berbanding 2 GB hingga 4 GB yang diperlukan oleh susun atur lama apabila penggunaan penuh Zitadel menjadi sebahagian daripada tindanan tersebut. Beli 2 GB. Ruang tambahan tersebut membolehkan proses naik taraf memuat turun imej baharu sementara imej lama masih berada dalam cakera.

Tiga perkara selamat untuk ditinggalkan pada pelayan kecil. Tolak servis NetBird Proxy, yang wujud untuk menerbitkan servis dalaman pada hostname awam dan tiada kaitan dengan penyambungan antara peer. Abaikan CrowdSec, yang hanya ditawarkan oleh skrip bersama proksi tersebut dan lebih berbaloi ditambah pada pelayan yang terdedah kemudian hari berbanding pada hari pertama. Kekalkan storan SQLite lalai dalam volum netbird_data, dan beralih kepada PostgreSQL hanya apabila anda memisahkan penggunaan merentasi beberapa mesin atau mencapai tahap konkurensi sebenar, yang didokumentasikan sebagai migrasi yang boleh anda lakukan kemudian.

Relay adalah satu-satunya komponen yang tidak boleh anda gugurkan. Dua peer yang NAT-nya menetapkan port berbeza bagi setiap destinasi tidak akan dapat mewujudkan terowong terus, jadi relay adalah satu-satunya laluan yang membolehkan ia berfungsi. Melumpuhkannya hanya menjimatkan sedikit memori dan menyebabkan sambungan terputus dengan cara yang sukar dikesan.

Apabila satu pelayan tidak lagi mencukupi, relay adalah perkara pertama yang perlu dipindahkan. Relay kendiri berjalan dengan NB_LISTEN_ADDRESS, NB_EXPOSED_ADDRESS, NB_AUTH_SECRET dan NB_ENABLE_STUN. Rahsia kongsi (shared secret) mestilah sama pada relay dan pada pelayan utama, jika tidak, klien akan gagal untuk mengesahkan diri kepadanya.

Mod kegagalan dan perkara yang akan anda lihat

Papan pemuka menunjukkan amaran sijil. Traefik gagal mendapatkan sijil. Jalankan docker compose logs traefik | grep -i acme. Terdapat dua punca. Sama ada dig +short netbird.example.com belum menghalakan ke VPS ini, atau port TCP 443 tertutup di suatu tempat antara Let's Encrypt dan kontena, biasanya pada firewall rangkaian pembekal dan bukannya pada ufw. Cabaran dijawab pada port 443, jadi port 80 yang terbuka tidak membantu dalam situasi ini. Selesaikan punca masalah sebelum mencuba semula secara berulang, kerana Let's Encrypt hanya membenarkan lima pengesahan gagal bagi setiap hostname dalam satu jam, dan gelung percubaan akan menyekat anda daripada mencuba semula sehingga had tersebut ditetapkan semula.

Pelanggan menyatakan ia telah bersambung tetapi papan pemuka kosong. Pelanggan mendaftar dengan perkhidmatan hos NetBird kerana --management-url tiada. Jalankan netbird status --detail dan baca baris Management:, yang menamakan pelayan yang sebenarnya dihubungi oleh pelanggan. Jika anda melihat Management: Connected to https://api.netbird.io:443, ini bermakna ia menghubungi pelayan awan. Jalankan sudo netbird down, kemudian jalankan sudo netbird up --management-url https://netbird.example.com sekali lagi.

Setiap peer menunjukkan Connection type: Relayed. Tiada terowong terus terbentuk, jadi semua trafik melalui VPS anda dan menambah satu hop kependaman. Periksa port UDP 3478 pada firewall VPS dan firewall pembekal, kerana STUN membolehkan peer mengetahui alamat awam dan portnya sendiri. netbird status --detail juga mencetak Direct: false serta jenis calon ICE (interactive connectivity establishment) bagi setiap peer, yang menunjukkan sejauh mana percubaan tersebut berjaya. Pada sesetengah rangkaian, relayed adalah satu-satunya hasil yang tersedia dan tiada apa yang salah.

Peer menyertai rangkaian tetapi tidak dapat mencapai apa-apa. Berada dalam mesh tidak bermakna dua peer boleh berkomunikasi. Dasar akses menentukan perkara tersebut, dan kumpulan tanpa dasar yang dilampirkan tidak akan mencapai apa-apa. Periksa dasar dalam papan pemuka sebelum anda mula menyahpepijat laluan dan firewall.

netbird status melaporkan masalah daemon. Servis tidak berjalan. Gunakan sudo netbird service status dan sudo netbird service start. Log pelanggan berada di /var/log/netbird/client.log. Bagi sebarang masalah yang anda tidak pasti, netbird debug bundle --anonymize --system-info akan mengumpulkan log, status, laluan, tetapan DNS dan keadaan firewall ke dalam satu arkib.

Sandaran dan naik taraf

Dua perkara merangkumi keseluruhan pemasangan: direktori yang menyimpan docker-compose.yml dan config.yaml, serta Docker volume yang menyimpan pangkalan data dan kunci penyulitan. Lakukan sandaran untuk kedua-duanya secara serentak. config.yaml menyimpan kunci yang menyulitkan data di dalam storan, jadi salinan pangkalan data tanpa kunci tersebut akan menghasilkan data yang tidak boleh dibaca apabila dipulihkan.

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 meletakkan awalan nama direktori projek pada nama volume, jadi volume yang didokumentasikan sebagai netbird_data biasanya muncul sebagai netbird_netbird_data. Jalankan docker volume ls terlebih dahulu dan gunakan nama yang dipaparkan, atau docker run di atas akan gagal dengan mencipta volume kosong secara senyap dan tidak mengarkibkan apa-apa. Simpan arkib di luar VPS. Jika anda sudah mempunyai alat sandaran, restic atau BorgBackup boleh mengendalikan bahagian luar tapak (offsite).

Naik taraf pelayan dilakukan dengan menarik imej baharu dan mencipta semula bekas:

docker compose pull
docker compose up -d
docker compose ps

Sebelum anda bergantung pada langkah tersebut, jalankan docker compose config | grep image:. Sebarang tag yang membaca latest harus ditetapkan kepada versi tertentu, atas sebab yang sama anda menetapkan skrip pemasangan: anda perlu tahu apa yang sedang berjalan, dan anda memerlukan versi untuk kembali semula apabila naik taraf tidak berfungsi dengan betul. Pelanggan melakukan naik taraf melalui pengurus pakej yang digunakan semasa pemasangan.

FAQ

Adakah saya memerlukan penyedia identiti sendiri untuk mengehoskan NetBird secara kendiri?

Tidak. Keluaran semasa menyertakan stor pengguna terbina dalam, jadi anda boleh mencipta akaun pentadbir pertama dalam pelayar di https://netbird.example.com dan menambah pengguna daripada papan pemuka selepas itu. Penyedia OIDC luaran adalah pilihan dan boleh ditambah kemudian dengan empat nilai: nama, client ID, client secret dan issuer. Panduan yang menyuruh anda menggunakan Zitadel atau Keycloak sebelum NetBird menerangkan persediaan yang tidak lagi diperlukan, dan mengikutinya menyebabkan anda perlu menjalankan satu servis tambahan yang tidak perlu.

Mengapa semua peer saya menunjukkan Connection type: Relayed?

Sambungan terus tidak terbentuk, jadi trafik melalui relay pada VPS anda. Punca biasa ialah port UDP 3478 disekat, iaitu port STUN yang digunakan oleh peer untuk menemui alamat awam dan port mereka sendiri. Buka port tersebut pada firewall VPS dan pada firewall rangkaian berasingan penyedia anda, kemudian jalankan netbird status --detail sekali lagi dan baca baris Direct:. Pada rangkaian yang NAT-nya menetapkan port berbeza bagi setiap destinasi, relayed adalah satu-satunya hasil yang mungkin dan tiada apa-apa yang tersalah konfigurasi.

Klien saya telah bersambung tetapi papan pemuka tidak menunjukkan sebarang peer. Apa yang berlaku?

Klien tersebut mendaftar dengan servis hos NetBird dan bukannya pelayan anda, yang berlaku apabila --management-url ditinggalkan. netbird status --detail memaparkan pelayan yang sedang berhubung dengannya pada baris Management:, jadi nilai seperti https://api.netbird.io:443 mengesahkannya. Jalankan sudo netbird down, kemudian sudo netbird up --management-url https://netbird.example.com, dan peer tersebut akan muncul dalam papan pemuka anda.

Bagaimanakah NetBird yang dihoskan sendiri berbeza daripada Headscale?

Kedua-duanya menggantikan pelayan kawalan berhos dengan pelayan yang anda jalankan sendiri. Headscale hanyalah satah kawalan: anda menguruskannya dengan arahan headscale dan fail konfigurasi, tiada konsol web rasmi, dan ia memacu klien rasmi Tailscale. NetBird membekalkan kliennya sendiri, papan pemuka pentadbir dan integrasi penyedia identiti dalam tindanan yang sama. Headscale lebih ringan untuk dijalankan dan menyimpan statusnya dalam fail. NetBird lebih mudah diberikan kepada pengguna yang tidak menggunakan terminal.

Berapakah saiz VPS yang diperlukan oleh pelayan NetBird yang dihoskan sendiri?

Minimum yang didokumenkan ialah 1 CPU dan 2 GB memori, dan 2 GB adalah angka yang perlu dibeli. Had praktikal telah turun kepada sekitar 1 GB dalam keluaran terkini kerana penyedia identiti kini dibenamkan dan bukannya penggunaan berasingan. Tolak servis proksi pilihan semasa pemasangan, yang juga melangkau gesaan CrowdSec, dan kekal pada stor SQLite lalai sehingga anda benar-benar memerlukan PostgreSQL.