SSD Nodes Learn Hosting plans →
Hướng dẫn Matt ConnorBởi Matt Connor · Cập nhật ngày 2026-10-24

So sánh NetBird và Tailscale: chọn mesh VPN nào?

Cả hai đều dùng WireGuard nhưng khác biệt ở control plane và khả năng self-hosting. Bài viết phân tích chi tiết về quản lý server, cấu hình ACL và cách vận hành relay.

NetBird và Tailscale: câu trả lời ngắn gọn

Việc chọn giữa NetBird và Tailscale là lựa chọn về control plane, vì cả hai mesh VPN đều chuyển gói tin bằng WireGuard. Tailscale vận hành server điều phối cho bạn và server đó là mã nguồn đóng. NetBird cũng bán dịch vụ hosted tương tự. Tuy nhiên, họ công khai management server dưới giấy phép mở, cho phép bạn tự chạy toàn bộ hệ thống trên một VPS. Hãy chọn Tailscale nếu phía bạn không có nhân sự vận hành server. Hãy chọn NetBird nếu control plane bắt buộc phải chạy trên phần cứng do bạn kiểm soát.

Nếu bạn vẫn đang so sánh nhiều hơn hai công cụ, hãy bắt đầu với danh sách các giải pháp thay thế Tailscale rộng hơn. Các phần dưới đây so sánh trực tiếp hai công cụ này dựa trên bốn điểm khác biệt chính.

Điểm chung: WireGuard bên dưới

Một mesh VPN (mạng riêng ảo) kết nối trực tiếp mọi thiết bị với nhau. Lưu lượng không đi qua một gateway trung tâm. Cả hai công cụ đều cấp cho mỗi thiết bị một cặp khóa WireGuard. Khóa riêng (private key) được tạo trên thiết bị và không bao giờ rời khỏi đó. Cả hai sau đó cố gắng thiết lập một tunnel trực tiếp giữa hai peer. Chúng chỉ dùng relay khi đường truyền trực tiếp thất bại.

Điều này có nghĩa là mã hóa trên đường truyền sử dụng cùng một giao thức ở cả hai sản phẩm. Relay trong bất kỳ hệ thống nào cũng chỉ chuyển tiếp các gói tin WireGuard mà nó không thể giải mã, vì nó không bao giờ giữ khóa riêng. Để biết thông tin cơ bản khi không có control plane, hãy đọc những gì Tailscale bổ sung trên nền WireGuard thuần.

Một điểm khác biệt nằm ở đường truyền dữ liệu. Tailscale chạy WireGuard trong userspace thông qua wireguard-go. README của NetBird liệt kê việc sử dụng kernel WireGuard trên Linux. Đừng chỉ chọn dựa trên yếu tố đó. Hãy chạy iperf3 qua tunnel trên VPS của riêng bạn. Giới hạn thường đến trước từ CPU, băng thông cho phép hoặc đường truyền mạng giữa các peer.

Ai vận hành control plane?

Control plane là máy chủ nắm giữ public key và địa chỉ tunnel của mọi thiết bị. Nó thông báo cho từng thiết bị biết những peer nào đang tồn tại và thiết bị đó có thể kết nối với peer nào. Nó không truyền tải lưu lượng của bạn.

Tailscale. Máy chủ điều phối (coordination server) là mã nguồn đóng. Nó chỉ chạy dưới dạng dịch vụ được host bởi Tailscale. Các client là mã nguồn mở: core daemon trên mọi nền tảng, cộng với các client đầy đủ cho Linux và Android. Các ứng dụng giao diện đồ họa cho Windows và macOS là mã nguồn đóng. Mã nguồn cho DERP, máy chủ relay của Tailscale, là mã nguồn mở. Nếu bạn cần một control plane tương thích với Tailscale trên máy chủ của riêng mình, tùy chọn đó là Headscale. Tailscale mô tả đây là một dự án độc lập, do cộng đồng duy trì và họ không trực tiếp điều hành. Việc thiết lập được đề cập trong chạy Headscale như một máy chủ điều khiển Tailscale tự host.

NetBird. Có một dịch vụ cloud được host tại app.netbird.io, và cùng mã nguồn đó có sẵn trên GitHub để bạn tự chạy. Tính đến tháng 10 năm 2026, README của repository nêu rõ các giấy phép. Client và phần lớn repository sử dụng giấy phép BSD-3-Clause. Các thư mục management/, signal/ và relay/ sử dụng giấy phép AGPLv3 (GNU Affero General Public License, phiên bản 3). AGPL bổ sung thêm một điều kiện. Nếu bạn sửa đổi các máy chủ đó và cho phép người khác sử dụng chúng qua mạng, bạn phải cung cấp mã nguồn đã sửa đổi cho những người đó.

Phía máy chủ của NetBird có ba phần. Dịch vụ management lưu giữ trạng thái mạng: peer key, cấp phát địa chỉ IP, kiểm soát truy cập và cài đặt DNS. Dịch vụ signal giúp hai peer trao đổi các ứng cử viên kết nối. Các thông điệp đó được mã hóa giữa các peer, vì vậy signal không thể đọc được chúng. Dịch vụ relay truyền tải lưu lượng khi không có đường dẫn trực tiếp nào tồn tại.

Bạn viết quy tắc truy cập trong mỗi sản phẩm như thế nào?

Cả hai sản phẩm đều khởi tạo mạng mới với quy tắc cho phép tất cả (allow-all). Mọi thiết bị đều có thể kết nối với nhau cho đến khi bạn thay đổi điều đó. Hãy thay thế quy tắc này trước khi thêm bất kỳ máy chủ nào chứa dữ liệu quan trọng.

Tailscale: một file chính sách duy nhất

Tailscale lưu trữ tất cả quy tắc truy cập trong file chính sách của tailnet. Nó sử dụng định dạng HuJSON (human JSON), là JSON cho phép thêm chú thích và dấu phẩy ở cuối. Bạn chỉnh sửa file này trong bảng điều khiển quản trị hoặc đẩy cấu hình qua API. Các quy tắc hiện tại được viết dưới dạng grants. File này cho phép một nhóm truy cập vào các máy chủ production được gắn thẻ (tagged) chỉ qua SSH và HTTPS. Nó cũng bao gồm một bài kiểm tra:

{
  "groups": {
    "group:engineering": ["alice@example.com", "bob@example.com"]
  },
  "tagOwners": {
    "tag:production": ["group:engineering"]
  },
  "grants": [
    {
      "src": ["group:engineering"],
      "dst": ["tag:production"],
      "ip": ["tcp:22", "tcp:443"]
    }
  ],
  "tests": [
    {
      "src": "alice@example.com",
      "accept": ["tag:production:22"]
    }
  ]
}

Phần tests rất quan trọng. Các xác nhận (assertions) trong đó sẽ chạy như các bước kiểm tra mỗi khi file chính sách thay đổi, giúp phát hiện lỗi chỉnh sửa trước khi áp dụng. Chính sách mặc định trên một tailnet mới là một mục acls duy nhất với "src": ["*"] và "dst": ["*:*"]. Việc bỏ trống hoàn toàn trường acls cũng đồng nghĩa với việc cho phép tất cả. Hãy xóa mục đó ngay khi bạn đã thiết lập các quyền truy cập của mình. Tính đến tháng 10 năm 2026, gói Personal miễn phí cung cấp cho bạn 3 nhóm ACL.

NetBird: nhóm và chính sách trong bảng điều khiển

NetBird xây dựng kiểm soát truy cập từ các nhóm (groups) và chính sách (policies). Một nhóm là tập hợp các peer. Bạn có thể thêm peer vào nhóm theo cách thủ công, thông qua các nhóm gắn với setup key, hoặc từ các nhóm người dùng trong nhà cung cấp danh tính (identity provider) của bạn. Một chính sách xác định một nhóm nguồn và một nhóm đích. Nó có thể là một chiều hoặc hai chiều. Nó cũng có thể giới hạn giao thức và cổng, với các dải cổng được viết là 8000-9000. Một chính sách cũng có thể bao gồm các kiểm tra trạng thái (posture checks). Kiểm tra trạng thái là một điều kiện mà peer phải đáp ứng trước khi kết nối được cho phép.

Bạn xây dựng tất cả những điều này trong bảng điều khiển. Một tài khoản mới đi kèm với chính sách có tên Default cho phép tất cả các peer giao tiếp với nhau. Hãy thêm các chính sách của riêng bạn trước, sau đó vô hiệu hóa Default. Nếu bạn muốn viết quy tắc dưới dạng văn bản, NetBird có một REST API công khai. Nó cũng có một Terraform provider chính thức (netbirdio/netbird) hoạt động với cả NetBird Cloud và máy chủ quản lý tự host. Tài liệu kiểm soát truy cập của NetBird không mô tả các xác nhận kiểm tra tích hợp sẵn như phần tests của Tailscale. Với Terraform, bạn sẽ xem xét kết quả đầu ra của kế hoạch (plan output) thay thế.

Lưu lượng được chuyển tiếp như thế nào khi không có đường truyền trực tiếp?

Cả hai công cụ đều ưu tiên thử kết nối trực tiếp trước. Chúng sử dụng STUN (session traversal utilities for NAT) để xác định địa chỉ public của mỗi peer. Sau đó, chúng cố gắng mở đường truyền xuyên qua NAT (network address translation) ở cả hai phía. Các firewall nghiêm ngặt và một số mạng di động chặn hành động này, vì vậy cả hai công cụ đều cần một phương án dự phòng.

Tailscale sử dụng các máy chủ DERP (designated encrypted relay for packets) làm phương án dự phòng. Tailscale vận hành các máy chủ này tại nhiều khu vực và truyền tải lưu lượng qua HTTPS. Bạn không phải trả thêm phí cho việc này. Tailscale cũng có tính năng peer relay. Peer relay là một trong các thiết bị của chính bạn đóng vai trò làm relay, và Tailscale sẽ thử sử dụng nó trước khi dùng DERP. Tài liệu của Tailscale giới thiệu peer relay là tùy chọn khi bạn cần độ trễ thấp hơn và băng thông cao hơn so với DERP. Peer relay đã được phát hành rộng rãi vào ngày 18 tháng 2 năm 2026, trên tất cả các gói dịch vụ bao gồm cả gói miễn phí. Bạn kích hoạt nó bằng một cổng UDP tùy chọn và cho phép sử dụng thông qua một grant trong file chính sách:

sudo tailscale set --relay-server-port=40000

Để xem kết nối đang sử dụng đường truyền nào, hãy chạy tailscale ping với một peer. Phản hồi hiển thị via DERP(fra) nghĩa là kết nối đang được chuyển tiếp (relayed). Phản hồi hiển thị địa chỉ IP và cổng nghĩa là kết nối trực tiếp. Nếu kết nối luôn ở trạng thái chuyển tiếp, tại sao kết nối Tailscale bị chuyển tiếp lại chậm và cách để có kết nối trực tiếp sẽ giải thích các nguyên nhân.

NetBird từng chuyển tiếp lưu lượng qua máy chủ coturn TURN trong các bản phát hành cũ. Phiên bản 0.29.0 đã giới thiệu NetBird Relay, thay thế hoàn toàn coturn cho các kết nối chuyển tiếp. Relay này chấp nhận các kết nối WebSocket trên đường dẫn /relay, hoặc QUIC trên cổng UDP 33080. Hướng dẫn hiện tại cũng đã tích hợp STUN vào dịch vụ relay. Trên NetBird Cloud, NetBird tự vận hành các relay này. Trên máy chủ tự host, bạn là người vận hành relay. Mọi byte dữ liệu được chuyển tiếp đều tính vào băng thông VPS của bạn, và mọi đường truyền chuyển tiếp đều đi qua vị trí của VPS đó. Kiểm tra đường truyền cho mỗi peer bằng lệnh:

netbird status -d

Mỗi peer sẽ hiển thị loại kết nối là P2P (trực tiếp) hoặc Relayed.

Việc tự host NetBird trên một VPS bao gồm những gì?

Quickstart chính thức thiết lập toàn bộ phía server bằng một script duy nhất. Tính đến tháng 10 năm 2026, nó yêu cầu một máy Linux với tối thiểu 1 CPU và 2 GB RAM. Bạn cũng cần một tên miền công khai trỏ về VPS, cùng với Docker kèm plugin compose, jq và curl. Hãy mở các cổng TCP 80, TCP 443 và UDP 3478 trong firewall của VPS. Bạn cũng cần mở các cổng này trong firewall mạng của nhà cung cấp, đây là một thiết lập riêng biệt trên hầu hết các bảng điều khiển.

export NETBIRD_DOMAIN=netbird.example.com; curl -fsSL https://github.com/netbirdio/netbird/releases/latest/download/getting-started.sh | bash

Script này triển khai bốn loại dịch vụ:

  • Traefik đóng vai trò reverse proxy, với các chứng chỉ TLS (transport layer security) từ Let's Encrypt.
  • Một server Dex tích hợp sẵn làm identity provider, cho phép bạn tạo người dùng trong dashboard mà không cần hệ thống đăng nhập bên ngoài.
  • Các dịch vụ management, signal và relay như đã mô tả ở trên.
  • Các thành phần tùy chọn: dịch vụ NetBird Proxy và bộ lọc uy tín IP CrowdSec.

Mỗi thành phần giờ đây do bạn quản lý. Identity provider quyết định ai có thể đăng nhập và thêm thiết bị. Dex là đủ dùng cho một nhóm nhỏ. Bạn có thể kết nối với một nhà cung cấp single sign-on bên ngoài sau này, ví dụ như một server Authentik SSO tự host. TLS phụ thuộc vào thứ tự thực hiện. Let's Encrypt xác thực tên miền bằng cách kết nối tới VPS này, vì vậy hãy tạo bản ghi DNS và mở các cổng trước khi chạy script. Nếu tên miền chưa trỏ về VPS, quá trình xác thực sẽ thất bại và không có chứng chỉ nào được cấp. Việc sao lưu và nâng cấp cũng là trách nhiệm của bạn. Hướng dẫn cài đặt đầy đủ, kèm kiểm tra sau mỗi bước, nằm tại hướng dẫn tự host server NetBird VPN.

Đăng ký máy chủ Linux vào từng mesh

Việc tham gia một mesh yêu cầu quyền truy cập mạng outbound đến control plane, vì vậy hãy chạy các lệnh này trên máy của bạn. Máy chủ không có trình duyệt, nên cả hai công cụ đều sử dụng một key mà bạn tạo trước thay vì đăng nhập tương tác.

Tailscale, với một auth key từ admin console:

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up --auth-key=YOUR_AUTH_KEY
tailscale status

tailscale status sẽ liệt kê máy này cùng với một địa chỉ 100.x.y.z, cộng với các thiết bị khác trong tailnet của bạn. Một auth key không đặt thời hạn sẽ hết hạn sau 90 ngày, đây là mức tối đa. Một máy chủ mà bạn đã đăng ký trước đó sẽ vẫn giữ trạng thái đăng ký. Một script dùng để đăng ký các máy chủ mới cần một key mới.

NetBird, với một setup key từ dashboard:

curl -fsSL https://pkgs.netbird.io/install.sh | sh
netbird up --setup-key YOUR_SETUP_KEY
netbird status

Đối với máy chủ tự host, hãy thêm --management-url https://netbird.example.com vào dòng netbird up. Nếu không có nó, client sẽ liên hệ với NetBird Cloud, vốn không biết về setup key được tạo trên máy chủ của riêng bạn. netbird status sẽ báo cáo các dịch vụ management và signal đã được kết nối.

Các gói miễn phí và bảng giá, tính đến tháng 10 năm 2026

Các con số này được lấy từ hai trang bảng giá vào ngày 2 tháng 10 năm 2026. Bảng giá có thể thay đổi, vì vậy hãy kiểm tra lại trước khi bạn quyết định sử dụng.

Tailscale Personal miễn phí cho tối đa 6 người dùng với số lượng thiết bị không giới hạn. Gói này bao gồm 50 tài nguyên được gắn thẻ (các máy chủ thuộc về một thẻ thay vì một cá nhân) và 3 nhóm ACL. Các gói trả phí gồm Standard với giá 8 USD mỗi người dùng một tháng và Premium với giá 18 USD. Gói Enterprise có giá theo yêu cầu. Phần phân tích về những gì một hộ gia đình hoặc một nhóm nhỏ thực sự phải trả cho Tailscale sẽ giải đáp các trường hợp đặc biệt.

NetBird Cloud miễn phí cho tối đa 5 người dùng và 100 máy. Gói Team có giá 6 EUR mỗi người dùng một tháng và gói Business có giá 12 EUR. Gói Enterprise có giá theo yêu cầu. Các gói trả phí bao gồm 100 máy cộng thêm 10 máy cho mỗi người dùng, và mỗi máy bổ sung có giá 0,50 EUR một tháng. NetBird tự host không mất phí bản quyền. Bạn chỉ trả tiền cho VPS và thời gian để vận hành nó.

Chọn Tailscale nếu...

  • Không ai trong nhóm của bạn muốn vận hành, vá lỗi hoặc sao lưu một control server.
  • Bạn muốn quản lý các quy tắc truy cập dưới dạng một file văn bản, kèm theo các bài kiểm tra để phát hiện thay đổi sai sót trước khi áp dụng.
  • Người dùng của bạn thường xuyên di chuyển và kết nối từ mạng khách sạn hoặc mạng di động. Tại đó, các DERP server của Tailscale ở nhiều khu vực cung cấp phương án dự phòng gần nhất mà không cần thiết lập gì thêm.
  • Nhóm của bạn nằm trong gói miễn phí 6 người dùng, hoặc mức giá trên mỗi người dùng là phù hợp.

Chọn NetBird nếu...

  • Control plane phải chạy trên hạ tầng do bạn sở hữu, sử dụng dự án chính thức thay vì một bản cài đặt lại riêng biệt.
  • Bạn cần hơn 6 người dùng trên một mạng tự host mà không mất phí theo đầu người.
  • Đội ngũ của bạn ưu tiên quản lý các nhóm và chính sách thông qua dashboard, hoặc đã sử dụng Terraform cho mọi tác vụ khác.
  • Bạn muốn bắt đầu với NetBird Cloud và vẫn giữ tùy chọn chuyển sang máy chủ riêng, với cùng một client.

Những điểm thiếu sót của mỗi bên

Mọi thông tin tại đây đều được lấy từ tài liệu hoặc trang bảng giá của nhà cung cấp, được kiểm tra vào ngày 2 tháng 10 năm 2026.

Tailscale thiếu:

  • Một control server chính thức để tự host. Coordination server là mã nguồn đóng, còn Headscale là một dự án cộng đồng riêng biệt.
  • Các ứng dụng khách có giao diện đồ họa mã nguồn mở trên Windows và macOS. Daemon bên dưới là mã nguồn mở, nhưng các ứng dụng thì không.

NetBird thiếu:

  • Các kiểm thử xác nhận (test assertions) tích hợp cho chính sách truy cập. Tài liệu kiểm soát truy cập của họ không mô tả tính năng này, vì vậy việc rà soát chính sách phụ thuộc vào bạn hoặc các kế hoạch Terraform.
  • Khi bạn tự host, các relay do người khác vận hành. Relay của bạn nằm trên VPS của bạn. Một peer ở xa VPS đó sẽ có đường truyền relay dài, và bạn phải trả phí cho băng thông đó.

Cả hai đều bắt đầu với chính sách cho phép tất cả (allow-all), vì vậy một mạng mới sẽ hoàn toàn mở cho đến khi bạn viết các quy tắc. Để biết mô hình đe dọa đầy đủ đối với phía được host, hãy xem những gì một control plane được host có thể và không thể thấy.

FAQ

NetBird có hoàn toàn là mã nguồn mở không?

Có, nhưng theo hai giấy phép. Tính đến tháng 10 năm 2026, README của NetBird nêu rõ rằng client và phần lớn repository sử dụng giấy phép BSD-3-Clause. Các thư mục management/, signal/ và relay/ sử dụng giấy phép AGPLv3. Nếu bạn sửa đổi các thành phần server đó và cho phép người khác sử dụng chúng qua mạng, AGPL yêu cầu bạn phải cung cấp mã nguồn đã sửa đổi cho những người đó.

Tôi có thể tự host control server của Tailscale giống như NetBird không?

Không. Coordination server của Tailscale là mã nguồn đóng và chỉ chạy dưới dạng dịch vụ được host bởi chính họ. Giải pháp thay thế tự host phổ biến là Headscale, một coordination server mã nguồn mở độc lập hoạt động với các client Tailscale chính thức. Tailscale thuê người bảo trì chính của Headscale, nhưng cho biết họ không trực tiếp điều hành dự án này.

Relay có thể đọc lưu lượng truy cập của tôi trong NetBird hoặc Tailscale không?

Không. Trong cả hai sản phẩm, private key của WireGuard được tạo trên thiết bị và không bao giờ rời khỏi đó. Một DERP server của Tailscale, một peer relay của Tailscale và một relay của NetBird đều chỉ chuyển tiếp các gói tin WireGuard đã mã hóa. Relay vẫn có thể thấy các peer nào kết nối với nhau và lưu lượng dữ liệu truyền tải giữa chúng là bao nhiêu.

Tôi cần VPS loại nào để tự host NetBird?

Tính đến tháng 10 năm 2026, hướng dẫn quickstart chính thức yêu cầu tối thiểu 1 CPU và 2 GB RAM. Bạn cũng cần một tên miền công cộng trỏ về VPS, Docker với plugin compose, và mở các cổng TCP 80, TCP 443 và UDP 3478. Hãy tính toán băng thông cho lưu lượng chuyển tiếp (relayed traffic). Trên một server tự host, mọi kết nối chuyển tiếp đều đi qua VPS của bạn.

Giải pháp nào có gói miễn phí lớn hơn?

Tính đến tháng 10 năm 2026, gói Tailscale Personal cho phép tối đa 6 người dùng với số lượng thiết bị không giới hạn. Gói NetBird Cloud miễn phí cho phép tối đa 5 người dùng và 100 máy. Một server NetBird tự host không giới hạn người dùng và không tốn phí bản quyền, nhưng bạn phải trả phí thuê VPS và tự vận hành nó.