netbird

netbirdio活跃维护

基于 WireGuard 的点对点零信任网络平台,用统一身份把人员、机器和 AI 代理安全接入任意网络,无需复杂 VPN 配置。

NetBird securely connects people, machines and AI agents across any network with one identity-based Zero Trust platform. Powered by peer-to-peer WireGuard®

v0.82.0发布于 2026-10-29 13:56 UTC30,860star +90 / 7 天1,845fork同步于 2026-11-10 11:21 UTC

怎么上手

由 README 提炼,执行前请确认
export NETBIRD_DOMAIN=netbird.example.com; curl -fsSL https://github.com/netbirdio/netbird/releases/latest/download/getting-started.sh | bash
硬件要求按 README 说明

自托管需一台至少 1 CPU、2 GB 内存的 Linux VM,公网开放 TCP 80/443 与 UDP 3478,并准备指向该 VM 的域名;客户端侧 README 未说明具体硬件或显存要求。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

基于 WireGuard 的点对点私有网络与集中访问控制平台,免开端口免配防火墙

基于 WireGuard 的点对点零信任网络平台,用统一身份把人员、机器和 AI 代理安全接入任意网络,无需复杂 VPN 配置。

核心能力

  • 用 WireGuard 建立加密覆盖网络,自动打通机器间隧道
  • 通过 ICE/STUN 协商点对点连接,NAT 失败时回退中继
  • 集中管理分组与访问规则,支持 SSO、MFA 与设备姿态检查
  • 提供自托管快速启动脚本与 Terraform、Ansible 自动化
  • 覆盖 Linux、macOS、Windows、iOS、Android 及容器等多平台

容易踩的坑

自托管需 Docker 及 Compose v2 以上版本,且必须有公网域名和开放 80/443/3478 端口;客户端需先安装并注册到管理服务才能组网;提交问题前需先在 Discussions 中反馈而非直接开 issue。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.82.0
  1. v0.83.0-rc.1pre-release2026-11-09 · 2026-11-09 18:16 UTC
    查看更新说明

    Changelog

    • e4fd2311293460fd0fa9ff0e6884601f2d62aebe [management,proxy] Attribute agent network errors in access logs (#8460)
    • 5a4bfab65357eb3de4583894cea14b2aff79a32a [self-hosted,misc] Add Viper-backed config loader for the combined server (#8108)
    • 2d3c816ae7ae902b02e00d255273527c190ee403 [client] Add profile ownership and IPC authz (#7407)
    • 0270bfa8641eb4cbac3813ffe74a57fb8be813a0 [doc] Expand repository contribution guidance (#7946)
    • fc3711687a2d39825b8d45c2c6479aa1571900dc [proxy] Renew cached ACME certificates and report expiry (#8524)
    • 8dc1e2aed65904b7451d6d88fb2972e0ec0ab799 [management] Stop peer expiration jobs when expiration is disabled for the account (#8521)
    • 76797c864eefa98c9fc34f7c8baff445105643ae [management] limit resource policy store call (#8522)
    • 772d0b86f8662f898c6d434b24c25bd7893dbddc [client, ios] Add RefreshWireGuardStats to the iOS SDK (#8509)
    • 91f4ad04b6cf41107c3023a73b041a4c2a07f409 [management] Restyle the MCP consent page and leave write unticked (#8502)
    • 14911a26806ba20a165c77e43ba5d712cc6118e7 [management] Catch drift between the MCP catalog and the OpenAPI spec (#8498)
    • 6a6d21754ab36b9db804f5f29f50de898f24f682 [management] Record MCP sign-ins in the activity log (#8499)
    • d77bd2354cc770b0659299d9457cf8cd1222bfb2 [client, ios] Do not wait for the utun to be removed on engine stop (#8471)
    • 4e266e3502861bd0bda67645785ab1f2aa9d287e [client,ios] Preserve credentials when login checks cannot reach management (#8202)
    • 794913206ea860cd1c520c01c5d61c09a59857d1 [management] Serve the REST API as an MCP server (#8335)
    • 3160255d70ff190f727d85a63e8b665ab2aeff00 [management] Add an OAuth 2.1 broker for MCP clients (#8334)
    • d3d872ea1d70e37b01f36ccc344ddc0c6285ee62 [management] Scope group resource references to the owning account (#8474)
    • 145bfca1fddd75b70c4e0a14b2ba4091f8f4110c [proxy] Report LLM token usage as metrics (#8481)
    • 313f71fb42a7d8b215f06486c67c97dadfde934a [misc] Make the skip-latest tests independent of their environment (#8468)
    • 2f5b9cacafd2f35e22749b9b510115df5f085391 [client] Use a destination Windows refuses in the UDP dial error test (#8480)
    • 3c996c91dda48e722c4b735f8d1028beda02cb79 [management] extract peer connection to separate tables (#8426)
    • ad8c1cc9569cc410914aa4f8307c75d424df80bc [client] Match peer rule protocols behind IPv6 extension headers in nftables (#8451)
    • 45a3bcb6c59f691a9bf26bdd03779045eb7c0c52 [client] Drop forwarded traffic that would leave through the interface it arrived on (#8440)
    • 4db6fb7a031c7526fd33c635db821808a58b4a7a [client] Default the SSH server to off for stored configs without a peer key (#8448)
    • e2af49047c56cc5e0a4f6aa22dbc3c78f0f3b0b0 [client] Remove a peer from the interface when it leaves the network map while its lazy connection is idle (#8449)
    • b839159538ae65e59717b3d3a931113de64c3b47 [client] Start the SSH server's SFTP subprocess through su like session commands, so nologin and expired accounts are refused (#8394)
    • caf50c8cecc6d41f66dcec7808f24bf528d057ec [misc] Bump the signing pipeline to v0.1.9 (#8466)
    • f7908340c4f1e27b45f051835f3fd73cbf31d398 [misc] Don't move latest for a patch on an older release line (#8215)
    • 21606828b91f7d4d679dca701b96cf6c64b8bc76 [management] Enforce account id on proxy update (#8419)
    • ef987dc7b8a001eb9ecf1ae5658e03555b3d7ef1 [management] Add a hard deadline to update debouncer to signal pending updates (#8437)
    • 65f833fe6a329db27b884e5005941c16a2ee65c6 [misc] Stop dispatching the mobile client submodule bumps on release tags (#8347)
    • 99cc59d637397ab4658aef03f07bcda026a1b6a6 [infrastructure] Fix Enterprise migration with env-provided secret (#8436)
    • 801ca163088b79d34088c58cdc2cd42e78a47473 [management] Ensure configure.sh does not clear the DataStoreEncryptionKey value (#5258)
    • 7d0f15965e0c8289e54b03708b89348cbf3a08fb [client,ios] Report network loss through the existing recovery callback (#7716)
    • 5b55b834bfba5f905acc93d1618f7d14d14f8168 [management] Skip writes and network map updates for u
  2. v0.82.0最新正式版2026-10-29 · 2026-10-29 13:56 UTC

    Release Notes for v0.82.0

    Highlights

    🛣️ Latency-aware HA routing that holds stable routes

    Routing peers in an HA group with equal metrics are meant to be chosen by latency, but the client used to sample latency only once, when the connection was set up, and moved the route on events that did not need it. Every switch between masquerading routing peers resets the TCP connections using the route, so SSH sessions and other long-lived flows dropped more often than they had to.

    The client now samples the latency of connected routing peers continuously and smooths it, and moves a route for latency only when the gain clears a margin: at least 20ms, 20% of the current latency, and the measurement noise of both paths. After a latency-driven switch it keeps the new peer for at least 30 seconds. A routing peer that drops from direct to relay keeps the route for a grace period before it moves to an equivalent direct peer, and a peer that comes up over relay first is held the same way while the others turn direct. Failover, better metrics and connected-over-idle still switch immediately.

    The grace period is set on the client with NB_HA_RELAYED_SWITCH_DELAY (a duration, 0, or never; default 30s). Routing peer switches are now logged at warning level with the reason and published as system events, so they show in netbird status -d and in debug bundles.

    📖 High availability for routing peers · #7689, #8192

    📋 netbird status --table

    netbird status --table (-t) lists peers in a table with their name, IP, status, connection type, latency and traffic, which is easier to scan than the detailed output on a large network. It works with the existing filter flags, so netbird status -t -S connected -T P2P shows only connected peer-to-peer peers.

    Peers (3/5 connected):
    NAME          IP            STATUS       CONN      LATENCY   RX / TX
    web-01        100.64.0.12   Connected    P2P       12ms      1.2 MiB / 3.4 MiB
    db-01         100.64.0.15   Connected    Relayed   48ms      54.0 KiB / 12.1 KiB
    ci-runner     100.64.0.40   Connecting   -         -         0 B / 0 B
    

    --table cannot be combined with -d, --json, --yaml, --ipv4 or --ipv6.

    📖 CLI: status, table view · #8305

    🗄️ A dedicated database for reverse proxy access logs

    Reverse proxy access logs are now read and written through their own database connection instead of the main store's, and can live in a separate database. Nothing needs to change on upgrade: by default the access log store follows the main store engine, as a separate access_logs.db file in the data directory on SQLite, or the main store DSN through its own connection pool on PostgreSQL.

    To point it elsewhere, set server.accessLogStore (engine, dsn, file) in the combined server's config.yaml, or the environment variables below:

    VariablePurpose
    NB_ACCESS_LOG_STORE_ENGINEsqlite or postgres
    NB_ACCESS_LOG_POSTGRES_DSNa dedicated PostgreSQL database
    NB_ACCESS_LOG_SQLITE_FILEthe SQLite file, access_logs.db by default
    NB_ACCESS_LOG_SQL_MAX_OPEN_CONNSpool size, falling back to NB_SQL_MAX_OPEN_CONNS

    📖 Reverse proxy access logs · #8303

    Removal: MySQL store

    The MySQL store engine for management, deprecated in v0.81.0, is removed. A management server configured with the mysql engine refuses to start on v0.82.0 and points to the migration guide.

    **Migrate to PostgreSQL

  3. v0.82.0-rc.1pre-release2026-10-26 · 2026-10-26 18:16 UTC
    查看更新说明

    Breaking changes

    • MySQL has been removed. To upgrade, you must follow the migration docs to postgres: https://docs.netbird.io/selfhosted/migration/mysql-to-postgresql
    • Reverse proxy access logs move to their own database. Nothing to configure: by default they follow your main store (a separate access_logs.db on SQLite, the same DSN on PostgreSQL). A new optional accessLogStore section lets you point them elsewhere. This means logs will stay in the old database file, but the dashboard/management API will only report from the new one.

    Deprecation notice

    • Rosenpass will be marked as deprecated, and a replacement is in the final testing phase

    What's Changed

  4. v0.81.52026-10-26 · 2026-10-26 17:38 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/netbirdio/netbird/compare/v0.81.4...v0.81.5

  5. v0.81.42026-10-24 · 2026-10-24 11:24 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/netbirdio/netbird/compare/v0.81.3...v0.81.4

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    🤖 NetBird Agent Network (Beta)

    Identity-aware access control for AI agents — keyless access to LLM APIs and private resources over the encrypted NetBird tunnel. See agent-network/ or read the docs at netbird.ai.

    NetBird combines a configuration-free peer-to-peer private network and a centralized access control system in a single platform, making it easy to create secure private networks for your organization or home.

    Connect. NetBird creates a WireGuard-based overlay network that automatically connects your machines over an encrypted tunnel, leaving behind the hassle of opening ports, complex firewall rules, VPN gateways, and so forth.

    Secure. NetBird enables secure remote access by applying granular access policies while allowing you to manage them intuitively from a single place. Works universally on any infrastructure.

    https://github.com/user-attachments/assets/10cec749-bb56-4ab3-97af-4e38850108d2

    Self-host NetBird (video)

    Watch the video

    Key features

    ConnectivityManagementSecurityAutomationPlatforms
    ✓ Kernel WireGuard✓ Admin Web UI✓ SSO & MFA support✓ Public API✓ Linux
    ✓ Peer-to-peer connections✓ Auto peer discovery and configuration✓ Access control: groups & rules✓ Setup keys for bulk provisioning✓ macOS
    ✓ Connection relay fallback✓ IdP integrations✓ Activity logging✓ Self-hosting quickstart script✓ Windows
    ✓ Routes to external networks✓ Private DNS✓ Traffic events✓ IdP groups sync with JWT✓ Android
    ✓ Domain-based DNS routes✓ Custom DNS zones✓ Device posture checks✓ Terraform provider✓ Android TV
    ✓ Exit nodes✓ Multiuser support✓ Peer-to-peer encryption✓ Ansible collection✓ iOS
    ✓ IPv6 dual-stack overlay✓ Multi-account profile switching✓ SSH with central access policies✓ Apple TV
    ✓ Browser SSH & RDP✓ Quantum-resistance with Rosenpass✓ FreeBSD
    ✓ Reverse proxy with auto-TLS✓ Periodic re-authentication✓ pfSense
    ✓ OPNsense
    ✓ MikroTik RouterOS
    ✓ OpenWRT
    ✓ Synology
    ✓ TrueNAS
    ✓ Proxmox
    ✓ Raspberry Pi
    ✓ Serverless
    ✓ Container

    Quickstart with NetBird Cloud

    Quickstart with self-hosted NetBird

    This is the quickest way to try self-hosted NetBird. It should take around 5 minutes to get started if you already have a public domain and a VM. Follow the Advanced guide with a custom identity provider for installations with different IdPs.

    Infrastructure requirements:

    • A Linux VM with at least 1 CPU and 2 GB of memory.
    • The VM should be publicly accessible on TCP ports 80 and 443 and UDP port 3478.
    • A public domain name pointing to the VM.

    Software requirements:

    Steps

    • Download and run the installation script:
    export NETBIRD_DOMAIN=netbird.example.com; curl -fsSL https://github.com/netbirdio/netbird/releases/latest/download/getting-started.sh | bash
    

    A bit on NetBird internals

    • Every machine in the network runs the NetBird agent, which manages WireGuard.
    • Every agent connects to the Management Service, which holds network state, manages peer IPs, and distributes updates to agents.
    • Agents use ICE (via pion/ice) to discover connection candidates for peer-to-peer connections.
    • Candidates are discovered with the help of STUN servers.
    • Agents negotiate a connection through the Signal Service, exchanging end-to-end encrypted messages with candidates.
    • When NAT traversal fails (e.g. mobile carrier-grade NAT) and a direct p2p connection isn't possible, the system falls back to a Relay Service and a secure WireGuard tunnel is established through it.

    See a complete architecture overview for details.

    Reporting bugs and requesting features

    NetBird uses a discussion-first workflow. Bug reports and feature requests start in Discussions, not as issues.

    What you want to doWhere to go
    Report a bug, regression, or unexpected behaviorIssue Triage
    Request a feature or share an ideaIdeas & Feature Requests
    Ask about setup, configuration, or self-hostingQ&A / Support
    Report a security vulnerabilitySecurity policy, never a public thread

    Our team and maintainers triage discussions, ask follow-up questions, check for duplicates, and reproduce bugs. Validated reports are promoted to issues. This keeps the issue tracker a clear answer to one question: what is the team working on.

    Please search existing discussions and issues first, including closed ones. If something similar already exists, upvote it and add your details there instead of opening a duplicate.

    For bug reports, include your NetBird version, operating system, deployment type (Cloud, self-hosted, Kubernetes, or Docker), reproduction steps, expected and actual behavior, and a debug bundle where relevant:

    netbird version
    netbird status -d -A
    netbird debug for 1m -A -S -U
    

    -U uploads the bundle and prints a file key you can paste instead of attaching the archive. -A anonymizes the output, which matters on a public thread. It masks most identifying details but is not full redaction, so read the bundle before posting it. Two levels are available:

    LevelHow to selectWhat it masks
    default-A / --anonymizePublic IP addresses, IPv6 ULA addresses, MAC addresses, and domains other than netbird.io, netbird.cloud, netbird.selfhosted, and netbird.stage. IPv4 private, CGNAT, and link-local ranges are kept
    strict--anonymize-level strict (implies -A)The above, plus IPv4 private, CGNAT, and link-local ranges, peer names in front of netbird.cloud, netbird.selfhosted, and netbird.stage, and WireGuard public keys. Labels under netbird.io are kept, since it only hosts infrastructure

    See collecting a debug bundle and the CLI reference for details.

    See How to use Discussions, Issues, and Pull Requests for the full workflow, or SUPPORT.md for a shorter version.

    Contributing

    Contributions are welcome. Read CONTRIBUTING.md first. NetBird works ticket first, anything that changes behavior needs an issue the team has agreed on before you open a pull request.

    Community projects

    Note: The main branch may be in an unstable or even broken state during development. For stable versions, see releases.

    Support acknowledgement

    In November 2022, NetBird joined the StartUpSecure program sponsored by the Federal Ministry of Education and Research of the Federal Republic of Germany. Together with the CISPA Helmholtz Center for Information Security, NetBird brings security best practices and simplicity to private networking.

    CISPA_Logo_BLACK_EN_RZ_RGB (1)

    Acknowledgements

    We build on open source technologies like WireGuard®, Pion ICE, and Rosenpass. We greatly appreciate the work these projects are doing, and we'd love it if you could support them too (e.g., by starring or contributing).

    Legal

    This repository is licensed under the BSD-3-Clause license, which applies to all parts of the repository except for the directories management/, signal/ and relay/. Those directories are licensed under the GNU Affero General Public License version 3.0 (AGPLv3). See the respective LICENSE files inside each directory.

    WireGuard and the WireGuard logo are registered trademarks of Jason A. Donenfeld.