No description
Find a file
2025-09-12 14:14:06 -07:00
.github add 'apt update' to validation action, as prior runs have started failing due to a stale package cache 2025-07-15 13:59:18 -07:00
artwork Added 90x90 AppIcon 2019-05-01 12:53:50 -07:00
attic Rename C25519.* to ECC.* 2024-09-15 17:34:01 -04:00
ci new drone bits 2023-03-31 16:29:18 +02:00
controller ctl changes for cv1 os/arch reporting 2025-08-05 12:29:29 -07:00
debian Version increments. 2024-10-23 14:08:57 -04:00
doc Fix minor spelling errors in docs 2024-03-22 20:43:46 -07:00
ext Merge pull request #2482 from zerotier/otel 2025-08-04 12:35:05 -04:00
include Windows build fixes from clang-format, disable for Windows include order 2025-07-08 15:11:57 -04:00
java Thread might actually be detached, so need to handle that 2024-05-21 13:12:22 -04:00
node Merge changes from dev 2025-07-09 18:01:11 -07:00
osdep Merge branch 'dev' into dev-extosdep 2025-07-03 14:14:04 -04:00
pkg Merge branch 'dev' into ChrisCarini/addArchToSynologyDSM7 2024-06-01 03:22:38 -07:00
rule-compiler 1.14.0 version bump for Linux and macOS, date update. 2024-03-19 14:38:48 -07:00
rustybits Rust warning removal, clippy allows, update library versions. 2025-07-11 09:50:27 -04:00
service Merge pull request #2482 from zerotier/otel 2025-08-04 12:35:05 -04:00
tcp-proxy clang-format this branch to match dev 2025-07-03 14:10:44 -04:00
windows Update incllude path for Windows builds to include otel api headers 2025-07-14 13:29:02 -07:00
.clang-format clang-format this branch 2025-07-03 12:02:18 -04:00
.clangd Rename ECC key and signature size defines to be generic. 2024-09-15 16:33:41 -04:00
.dockerignore can now build centos8 docker container with Redis support 2020-05-12 15:17:57 -07:00
.gitattributes force eol=crlf for driver .inf files 2020-11-25 18:22:52 -08:00
.gitignore windows installer changes: add auto-startup shortcut for UI and auto-restart backend on failure 2025-07-17 15:22:30 -07:00
CMakeLists.txt Removed build flag in CMake script 2017-12-13 14:57:20 -08:00
COPYING clean out some stuff 2024-09-14 08:21:08 -04:00
cycle_controllers.sh add application_name to pgbouncer connectio string 2018-12-10 12:26:20 -08:00
Dockerfile.ci more RELEASE-NOTES 2021-09-15 08:12:25 +02:00
Dockerfile.release add make docker-release command & update dockerfile 2024-10-02 12:59:21 -07:00
entrypoint.sh.release Allow setting local.conf content from Docker environment variable 2025-03-26 11:23:46 -07:00
LICENSE.txt Merge branch 'dev' into 1.14.0 2024-03-27 12:15:46 -04:00
make-bsd.mk Add prometheus metrics for Central controllers (#1969) 2023-04-21 12:12:43 -07:00
make-linux.mk fixes for otel in non-controller build 2025-07-16 12:57:18 -07:00
make-mac.mk include the otel header-only part directly for ease of use 2025-07-11 13:12:13 -07:00
make-netbsd.mk fix RTF_MULTICAST and g++ -w 2016-12-27 13:07:05 +01:00
Makefile clang-format 2025-07-03 11:26:23 -04:00
objects.mk inheritence mess cleanup 2025-07-16 10:40:29 -07:00
OFFICIAL-RELEASE-STEPS.md clean out some stuff 2024-09-14 08:21:08 -04:00
one.cpp Merge branch 'dev' into dev-extosdep 2025-07-08 16:41:46 -04:00
README.docker.md Allow setting local.conf content from Docker environment variable 2025-03-26 11:23:46 -07:00
README.md Update README.md 2025-09-12 14:14:06 -07:00
RELEASE-NOTES.md Version increments. 2024-10-23 14:08:57 -04:00
SECURITY.md Update security readme. 2024-05-02 19:45:07 -04:00
selftest.cpp self test fixes 2025-07-03 11:14:52 -04:00
update_controllers.sh update docker registry used 2019-02-08 10:40:57 -08:00
version.h instantiate and configure otel for controllers 2025-07-12 12:12:25 -07:00
windows-clean.bat Revise Windows build to VS2022. 2022-06-06 19:33:35 -04:00
zerotier-cli-completion.bash Create a bash completion script. 2020-07-23 13:40:48 -07:00
zerotier-one.spec Version increments. 2024-10-23 14:08:57 -04:00

ZeroTier - Global Area Networking

ZeroTier - Global Area Networking

ZeroTier is a smart programmable Ethernet switch for planet Earth. It allows all networked devices, VMs, containers, and applications to communicate as if they all reside in the same physical data center or cloud region.

This is accomplished by combining a cryptographically addressed and secure peer-to-peer network (termed VL1) with an Ethernet emulation layer somewhat similar to VXLAN (termed VL2). Our VL2 Ethernet virtualization layer includes advanced enterprise SDN features like fine grained access control rules for network micro-segmentation and security monitoring.

All ZeroTier traffic is encrypted end-to-end using secret keys that only you control. Most traffic flows peer-to-peer, though we offer free (but slow) relaying for users who cannot establish peer-to-peer connections.

Visit ZeroTiers site or ZeroTier's documentation for more information and pre-built binary packages. Apps for Android and iOS are available for free in the Google Play and Apple app stores.

Build and Platform Notes

To build on Mac and Linux just type make. On FreeBSD and OpenBSD gmake (GNU make) is required and can be installed from packages or ports. For Windows there is a Visual Studio solution in windows/.

  • Mac
    • Xcode command line tools for macOS 10.13 or newer are required.
    • Rust for x86_64 and ARM64 targets if SSO is enabled in the build.
  • Linux
    • The minimum compiler versions required are GCC/G++ 8.x or CLANG/CLANG++ 5.x.
    • Linux makefiles automatically detect and prefer clang/clang++ if present as it produces smaller and slightly faster binaries in most cases. You can override by supplying CC and CXX variables on the make command line.
    • Rust for x86_64 and ARM64 targets if SSO is enabled in the build.
  • Windows
    • Visual Studio 2022 on Windows 10 or newer.
    • Rust for x86_64 and ARM64 targets if SSO is enabled in the build.
  • FreeBSD
    • GNU make is required. Type gmake to build.
    • binutils is required. Type pkg install binutils to install.
    • Rust for x86_64 and ARM64 targets if SSO is enabled in the build.
  • OpenBSD
    • There is a limit of four network memberships on OpenBSD as there are only four tap devices (/dev/tap0 through /dev/tap3).
    • GNU make is required. Type gmake to build.
    • Rust for x86_64 and ARM64 targets if SSO is enabled in the build.

Typing make selftest will build a zerotier-selftest binary which unit tests various internals and reports on a few aspects of the build environment. It's a good idea to try this on novel platforms or architectures.

Running

Running zerotier-one with -h option will show help.

On Linux and BSD, if you built from source, you can start the service with:

sudo ./zerotier-one -d

On most distributions, macOS, and Windows, the installer will start the service and set it up to start on boot.

A home folder for your system will automatically be created.

The service is controlled via the JSON API, which by default is available at 127.0.0.1:9993. It also listens on 0.0.0.0:9993 which is only usable if allowManagementFrom is properly configured in local.conf. We include a zerotier-cli command line utility to make API calls for standard things like joining and leaving networks. The authtoken.secret file in the home folder contains the secret token for accessing this API. See service/README.md for API documentation.

Here's where home folders live (by default) on each OS:

  • Linux: /var/lib/zerotier-one
  • FreeBSD / OpenBSD: /var/db/zerotier-one
  • Mac: /Library/Application Support/ZeroTier/One
  • Windows: \ProgramData\ZeroTier\One (That's the default. The base 'shared app data' folder might be different if Windows is installed with a non-standard drive letter assignment or layout.)

License

ZeroTier is licensed under the BSL version 1.1. See LICENSE.txt and the ZeroTier pricing page for details. ZeroTier is free to use internally in businesses and academic institutions and for non-commercial purposes. Certain types of commercial use, such as building closed-source apps and devices based on ZeroTier or offering ZeroTier network controllers and network management as a SaaS service, require a commercial license.

A small amount of third-party code is also included in ZeroTier and is not subject to our BSL license. See AUTHORS.md for a list of third-party code, where it is included, and the licenses that apply to it. All of the third-party code in ZeroTier is liberally licensed (MIT, BSD, Apache, public domain, etc.).

Additional Resources