About – ZeroTier (2024)

ZeroTier is a secure network overlay that allows you to manage all of your network resources as if they were on the same LAN. The software-defined solution can be deployed in minutes from anywhere and empowers your team to create global private networks that connect your devices directly to each other, no matter where they are in the world.

2M+ monthly
active devices

220 Countries
& Territories

>13k
Github stars

About – ZeroTier (1)

Adam Ierymenko

Founder & Chief Executive Officer

About – ZeroTier (2)

Marc Patterson

Chief Operating Officer

About – ZeroTier (4)

Angelo Rodriguez

VP of Sales and Services

About – ZeroTier (5)

Joseph Henry

Senior Software Engineer

About – ZeroTier (6)

Grant Limberg

Director of Service Engineering

About – ZeroTier (7)

Sean O'Meara

Director of Infrastructure Operations

About – ZeroTier (8)

Steve Norman

Director of Sales

About – ZeroTier (9)

Anthony Alvarez

Director of Commercial Sales

About – ZeroTier (10)

Brenton Bostick

Software Engineer

About – ZeroTier (11)

Monica Moniot

Software Engineer

About – ZeroTier (12)

Dani Timko

UI/UX Engineer

About – ZeroTier (13)

Lizzie Ferguson

Sales Development Representative

About – ZeroTier (14)

Hakeem Animashaun

Sales Development Representative

About – ZeroTier (15)

Aaron Johnson

Data Engineer

About – ZeroTier (16)

Celeste Kinswood

Director of Product Marketing

We are hiring!

Join our team

Try ZeroTier for Free

Sign up for our Newsletter

head.appendChild(script);};(function() { if (window.location.search.search("excludeform") !== -1) return false; var getCookie = function(name) { var match = document.cookie.match(new RegExp('(^|; )' + name + '=([^;]+)')); return match ? match[2] : null; } var setCookie = function(name, value) { var now = new Date(); var time = now.getTime(); var expireTime = time + 1000 * 60 * 60 * 24 * 365; now.setTime(expireTime); document.cookie = name + '=' + value + '; expires=' + now + ';path=/; Secure; SameSite=Lax;'; } var addEvent = function(element, event, func) { if (element.addEventListener) { element.addEventListener(event, func); } else { var oldFunc = element['on' + event]; element['on' + event] = function() { oldFunc.apply(this, arguments); func.apply(this, arguments); }; } } var _removed = false; var form_to_submit = document.getElementById('_form_3_'); var allInputs = form_to_submit.querySelectorAll('input, select, textarea'), tooltips = [], submitted = false;

var getUrlParam = function(name) { if (name.toLowerCase() !== 'email') { var params = new URLSearchParams(window.location.search); return params.get(name) || false; } // email is a special case because a plus is valid in the email address var qString = window.location.search; if (!qString) { return false; } var parameters = qString.substr(1).split('&'); for (var i = 0; i < parameters.length; i++) { var parameter = parameters[i].split('='); if (parameter[0].toLowerCase() === 'email') { return parameter[1] === undefined ? true : decodeURIComponent(parameter[1]); } } return false; }; var acctDateFormat = "%m/%d/%Y"; var getNormalizedDate = function(date, acctFormat) { var decodedDate = decodeURIComponent(date); if (acctFormat && acctFormat.match(/(%d|%e).*%m/gi) !== null) { return decodedDate.replace(/(\d{2}).*(\d{2}).*(\d{4})/g, '$3-$2-$1'); } else if (Date.parse(decodedDate)) { var dateObj = new Date(decodedDate); var year = dateObj.getFullYear(); var month = dateObj.getMonth() + 1; var day = dateObj.getDate(); return `${year}-${month < 10 ? `0${month}` : month}-${day < 10 ? `0${day}` : day}`; } return false; }; var getNormalizedTime = function(time) { var hour, minutes; var decodedTime = decodeURIComponent(time); var timeParts = Array.from(decodedTime.matchAll(/(\d{1,2}):(\d{1,2})\W*([AaPp][Mm])?/gm))[0]; if (timeParts[3]) { // 12 hour format var isPM = timeParts[3].toLowerCase() === 'pm'; if (isPM) { hour = parseInt(timeParts[1]) === 12 ? '12' : `${parseInt(timeParts[1]) + 12}`; } else { hour = parseInt(timeParts[1]) === 12 ? '0' : timeParts[1]; } } else { // 24 hour format hour = timeParts[1]; } var normalizedHour = parseInt(hour) < 10 ? `0${parseInt(hour)}` : hour; var minutes = timeParts[2]; return `${normalizedHour}:${minutes}`; }; for (var i = 0; i < allInputs.length; i++) { var regexStr = "field\\[(\\d+)\\]"; var results = new RegExp(regexStr).exec(allInputs[i].name); if (results != undefined) { allInputs[i].dataset.name = allInputs[i].name.match(/\[time\]$/) ? `${window.cfields[results[1]]}_time` : window.cfields[results[1]]; } else { allInputs[i].dataset.name = allInputs[i].name; } var fieldVal = getUrlParam(allInputs[i].dataset.name); if (fieldVal) { if (allInputs[i].dataset.autofill === "false") { continue; } if (allInputs[i].type == "radio" || allInputs[i].type == "checkbox") { if (allInputs[i].value == fieldVal) { allInputs[i].checked = true; } } else if (allInputs[i].type == "date") { allInputs[i].value = getNormalizedDate(fieldVal, acctDateFormat); } else if (allInputs[i].type == "time") { allInputs[i].value = getNormalizedTime(fieldVal); } else { allInputs[i].value = fieldVal; } } } var remove_tooltips = function() { for (var i = 0; i < tooltips.length; i++) { tooltips[i].tip.parentNode.removeChild(tooltips[i].tip); } tooltips = []; }; var remove_tooltip = function(elem) { for (var i = 0; i < tooltips.length; i++) { if (tooltips[i].elem === elem) { tooltips[i].tip.parentNode.removeChild(tooltips[i].tip); tooltips.splice(i, 1); return; } } }; var create_tooltip = function(elem, text) { var tooltip = document.createElement('div'), arrow = document.createElement('div'), inner = document.createElement('div'), new_tooltip = {}; if (elem.type != 'radio' && elem.type != 'checkbox') { tooltip.className = '_error'; arrow.className = '_error-arrow'; inner.className = '_error-inner'; inner.innerHTML = text; tooltip.appendChild(arrow); tooltip.appendChild(inner); elem.parentNode.appendChild(tooltip); } else { tooltip.className = '_error-inner _no_arrow'; tooltip.innerHTML = text; elem.parentNode.insertBefore(tooltip, elem); new_tooltip.no_arrow = true; } new_tooltip.tip = tooltip; new_tooltip.elem = elem; tooltips.push(new_tooltip); return new_tooltip; }; var resize_tooltip = function(tooltip) { var rect = tooltip.elem.getBoundingClientRect(); var doc = document.documentElement, scrollPosition = rect.top - ((window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0)); if (scrollPosition < 40) { tooltip.tip.className = tooltip.tip.className.replace(/ ?(_above|_below) ?/g, '') + ' _below'; } else { tooltip.tip.className = tooltip.tip.className.replace(/ ?(_above|_below) ?/g, '') + ' _above'; } }; var resize_tooltips = function() { if (_removed) return; for (var i = 0; i < tooltips.length; i++) { if (!tooltips[i].no_arrow) resize_tooltip(tooltips[i]); } }; var validate_field = function(elem, remove) { var tooltip = null, value = elem.value, no_error = true; remove ? remove_tooltip(elem) : false; if (elem.type != 'checkbox') elem.className = elem.className.replace(/ ?_has_error ?/g, ''); if (elem.getAttribute('required') !== null) { if (elem.type == 'radio' || (elem.type == 'checkbox' && /any/.test(elem.className))) { var elems = form_to_submit.elements[elem.name]; if (!(elems instanceof NodeList || elems instanceof HTMLCollection) || elems.length <= 1) { no_error = elem.checked; } else { no_error = false; for (var i = 0; i < elems.length; i++) { if (elems[i].checked) no_error = true; } } if (!no_error) { tooltip = create_tooltip(elem, "Please select an option."); } } else if (elem.type =='checkbox') { var elems = form_to_submit.elements[elem.name], found = false, err = []; no_error = true; for (var i = 0; i < elems.length; i++) { if (elems[i].getAttribute('required') === null) continue; if (!found && elems[i] !== elem) return true; found = true; elems[i].className = elems[i].className.replace(/ ?_has_error ?/g, ''); if (!elems[i].checked) { no_error = false; elems[i].className = elems[i].className + ' _has_error'; err.push("Checking %s is required".replace("%s", elems[i].value)); } } if (!no_error) { tooltip = create_tooltip(elem, err.join('
')); } } else if (elem.tagName == 'SELECT') { var selected = true; if (elem.multiple) { selected = false; for (var i = 0; i < elem.options.length; i++) { if (elem.options[i].selected) { selected = true; break; } } } else { for (var i = 0; i < elem.options.length; i++) { if (elem.options[i].selected && (!elem.options[i].value || (elem.options[i].value.match(/\n/g))) ) { selected = false; } } } if (!selected) { elem.className = elem.className + ' _has_error'; no_error = false; tooltip = create_tooltip(elem, "Please select an option."); } } else if (value === undefined || value === null || value === '') { elem.className = elem.className + ' _has_error'; no_error = false; tooltip = create_tooltip(elem, "This field is required."); } } if (no_error && (elem.id == 'field[]' || elem.id == 'ca[11][v]')) { if (elem.className.includes('phone-input-error')) { elem.className = elem.className + ' _has_error'; no_error = false; } } if (no_error && elem.name == 'email') { if (!value.match(/^[\+_a-z0-9-'&=]+(\.[\+_a-z0-9-']+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/i)) { elem.className = elem.className + ' _has_error'; no_error = false; tooltip = create_tooltip(elem, "Enter a valid email address."); } } if (no_error && /date_field/.test(elem.className)) { if (!value.match(/^\d\d\d\d-\d\d-\d\d$/)) { elem.className = elem.className + ' _has_error'; no_error = false; tooltip = create_tooltip(elem, "Enter a valid date."); } } tooltip ? resize_tooltip(tooltip) : false; return no_error; }; var needs_validate = function(el) { if(el.getAttribute('required') !== null){ return true } if(el.name === 'email' && el.value !== ""){ return true } if((el.id == 'field[]' || el.id == 'ca[11][v]') && el.className.includes('phone-input-error')){ return true } return false }; var validate_form = function(e) { var err = form_to_submit.querySelector('._form_error'), no_error = true; if (!submitted) { submitted = true; for (var i = 0, len = allInputs.length; i < len; i++) { var input = allInputs[i]; if (needs_validate(input)) { if (input.type == 'tel') { addEvent(input, 'blur', function() { this.value = this.value.trim(); validate_field(this, true); }); } if (input.type == 'text' || input.type == 'number' || input.type == 'time') { addEvent(input, 'blur', function() { this.value = this.value.trim(); validate_field(this, true); }); addEvent(input, 'input', function() { validate_field(this, true); }); } else if (input.type == 'radio' || input.type == 'checkbox') { (function(el) { var radios = form_to_submit.elements[el.name]; for (var i = 0; i < radios.length; i++) { addEvent(radios[i], 'click', function() { validate_field(el, true); }); } })(input); } else if (input.tagName == 'SELECT') { addEvent(input, 'change', function() { validate_field(this, true); }); } else if (input.type == 'textarea'){ addEvent(input, 'input', function() { validate_field(this, true); }); } } } } remove_tooltips(); for (var i = 0, len = allInputs.length; i < len; i++) { var elem = allInputs[i]; if (needs_validate(elem)) { if (elem.tagName.toLowerCase() !== "select") { elem.value = elem.value.trim(); } validate_field(elem) ? true : no_error = false; } } if (!no_error && e) { e.preventDefault(); } resize_tooltips(); return no_error; }; addEvent(window, 'resize', resize_tooltips); addEvent(window, 'scroll', resize_tooltips); var hidePhoneInputError = function(inputId) { var errorMessage = document.getElementById("error-msg-" + inputId); var input = document.getElementById(inputId); errorMessage.classList.remove("phone-error"); errorMessage.classList.add("phone-error-hidden"); input.classList.remove("phone-input-error"); }; var initializePhoneInput = function(input, defaultCountry) { return window.intlTelInput(input, { utilsScript: "https://unpkg.com/intl-tel-input@17.0.18/build/js/utils.js", autoHideDialCode: false, separateDialCode: true, initialCountry: defaultCountry, preferredCountries: [] }); } var setPhoneInputEventListeners = function(inputId, input, iti) { input.addEventListener('blur', function() { var errorMessage = document.getElementById("error-msg-" + inputId); if (input.value.trim()) { if (iti.isValidNumber()) { iti.setNumber(iti.getNumber()); if (errorMessage.classList.contains("phone-error")){ hidePhoneInputError(inputId); } } else { showPhoneInputError(inputId) } } else { if (errorMessage.classList.contains("phone-error")){ hidePhoneInputError(inputId); } } }); input.addEventListener("countrychange", function() { iti.setNumber(''); }); input.addEventListener("keydown", function(e) { var charCode = (e.which) ? e.which : e.keyCode; if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode !== 8) { e.preventDefault(); } }); };

var showPhoneInputError = function(inputId) { var errorMessage = document.getElementById("error-msg-" + inputId); var input = document.getElementById(inputId); errorMessage.classList.add("phone-error"); errorMessage.classList.remove("phone-error-hidden"); input.classList.add("phone-input-error"); };

var _form_serialize = function(form){if(!form||form.nodeName!=="FORM"){return }var i,j,q=[];for(i=0;i

{ formData.append(key, value); });

const response = await fetch('https://zerotier.activehosted.com/proc.php?jsonp=true', { headers: { "Accept": "application/json" }, body: formData, method: "POST" }); return response.json(); } if (formSupportsPost) { submitForm().then((data) => { eval(data.js); }); } else { _load_script('https://zerotier.activehosted.com/proc.php?' + serialized + '&jsonp=true', null, true); } } return false; }; addEvent(form_to_submit, 'submit', form_submit);})();

About – ZeroTier (2024)

FAQs

What is the purpose of ZeroTier? ›

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.

Can you trust ZeroTier? ›

Security. ZeroTier aims to be a “zero trust” networking solution. Packets are end-to-end encrypted and can't be read by unauthorized parties. Every peer on VL1 possesses a globally unique 40-bit ZeroTier address, but, unlike IP addresses, these are opaque cryptographic identifiers that encode no routing information.

What is better than Tailscale? ›

Netmaker offers more customization options than Tailscale, allowing users to create custom networks with private IP segments, providing greater flexibility and control over their network configuration.

Is ZeroTier worth it? ›

We've been using it at our company for about 6 years (about 130 laptops and 60 servers - Windows and Linux). It works really well and is very inexpensive (they have a free plan too). It's a cross between a VPN and a software-defined-network.

Is ZeroTier a VPN? ›

ZeroTier is one of the easiest VPN services to configure and it's completely free for up to 100 devices. The entire process, from start to finish, should only take a few minutes.

What protocol does ZeroTier use? ›

To support the use of ZeroTier as a high performance SDN/NFV protocol over physically secure networks the protocol supports a feature called trusted paths. It is possible to configure all ZeroTier devices on a given network to skip encryption and authentication for traffic over a designated physical path.

Who is the owner of ZeroTier? ›

Adam Ierymenko

Does ZeroTier affect Internet speed? ›

even if we reset the router/modem the internet slows down when zerotier is on. yes, other things connected to the network will get slowed down internet. like other laptops and phones.

Is ZeroTier free to use? ›

Networks are free. For some users with multiple networks, this may amount to a limit increase. If you are over the limit, your networks and the nodes already authorized on them will still work, but you will need to purchase node packs to add new nodes. Node packs are only $5.00/month for packs of 25 nodes.

Is ZeroTier traffic encrypted? ›

ZeroTier is not a “Privacy VPN.” It does not hide physical IP addresses and makes no attempt to. Any and all data sent over the network is encrypted and can't even be decrypted by us. ZeroTier is designed to make an reasonable attempt to establish direct peer to peer connection to nodes to optimise performance.

Is ZeroTier self-hosted? ›

ZeroTier Inc runs controllers with a web UI and API at ZeroTier Central. You can self-host controllers, but we don't currently offer the web UI for self-hosting. You'll have to use the json api. The controller is open-source.

Is ZeroTier open source? ›

ZeroTier belongs to this class of open source projects: those backed by companies founded by their creators, bootstrapped with angel and VC capital, and sustained by revenue.

Is ZeroTier safe? ›

While we use encryption to protect sensitive information transmitted online, we also protect your information offline. Only employees who need the information to perform a specific job (for example, billing or customer service) are granted access to personally identifiable information.

Why is ZeroTier lagging? ›

Consider network congestion: If you're experiencing slow speeds during peak times, it could be due to network congestion. Try using the VPN during off-peak hours to see if the performance improves.

Is Tailscale really safe? ›

End-to-end encryption: Tailscale encrypts all network traffic end to end, ensuring that data is protected from eavesdropping and tampering. Authentication: Tailscale uses public key infrastructure (PKI) to authenticate devices and users, ensuring that only authorized devices can join the network.

What can you do with ZeroTier? ›

Get a direct two-way connection with IoT devices in the field, no matter what internet connection they use or where they are in the world.
  • Device-centric architecture is optimized for IoT deployments.
  • Lightweight agent is easy to install on just about any device.
  • Unique network structure makes last mile connection easy.

What are the requirements for ZeroTier? ›

ZeroTier can run on Linux, macOS, iOS, FreeBSD, OpenBSD, Android, and Windows. It is designed to operate in under 16 megabytes of memory in most cases. It can run on Intel x86, x64, ARM, and MIPS chips. If there is a device you'd like us to support please let us know.

How to use zero tier one? ›

Network connection
  1. Run ZeroTier One app.
  2. Click on + to add a new connection.
  3. Confirm the privacy policy.
  4. Enter your network ID and click Add Network.
  5. Confirm adding the new VPN configuration.
  6. Connect to the VPN network by sliding the network activation slider.

Top Articles
Cream of Tartar Substitute
Climate Solutions
Genesis Parsippany
How To Do A Springboard Attack In Wwe 2K22
Free Atm For Emerald Card Near Me
Gunshots, panic and then fury - BBC correspondent's account of Trump shooting
Ncaaf Reference
Strange World Showtimes Near Cmx Downtown At The Gardens 16
Danielle Longet
Craigslist Dog Kennels For Sale
Newgate Honda
Erskine Plus Portal
Moparts Com Forum
Craigslist Edmond Oklahoma
Wisconsin Women's Volleyball Team Leaked Pictures
50 Shades Darker Movie 123Movies
Metro Pcs.near Me
What Is Vioc On Credit Card Statement
Ein Blutbad wie kein anderes: Evil Dead Rise ist der Horrorfilm des Jahres
Kcwi Tv Schedule
Conan Exiles Sorcery Guide – How To Learn, Cast & Unlock Spells
Clare Briggs Guzman
Sullivan County Image Mate
Used Safari Condo Alto R1723 For Sale
Azur Lane High Efficiency Combat Logistics Plan
Craigslist Illinois Springfield
Walgreens Bunce Rd
Apartments / Housing For Rent near Lake Placid, FL - craigslist
Craigslist Lake Charles
Craig Woolard Net Worth
1145 Barnett Drive
Skepticalpickle Leak
Uno Fall 2023 Calendar
Desales Field Hockey Schedule
Devargasfuneral
O'reilly's Wrens Georgia
EST to IST Converter - Time Zone Tool
All Things Algebra Unit 3 Homework 2 Answer Key
Kelly Ripa Necklace 2022
Boone County Sheriff 700 Report
Cygenoth
Craigslist Com Panama City Fl
Cnp Tx Venmo
Nail Salon Open On Monday Near Me
Frigidaire Fdsh450Laf Installation Manual
Used Auto Parts in Houston 77013 | LKQ Pick Your Part
Tyrone Dave Chappelle Show Gif
Grandma's Portuguese Sweet Bread Recipe Made from Scratch
Tenichtop
Loss Payee And Lienholder Addresses And Contact Information Updated Daily Free List Bank Of America
Elizabethtown Mesothelioma Legal Question
Latest Posts
Article information

Author: Terrell Hackett

Last Updated:

Views: 6291

Rating: 4.1 / 5 (52 voted)

Reviews: 83% of readers found this page helpful

Author information

Name: Terrell Hackett

Birthday: 1992-03-17

Address: Suite 453 459 Gibson Squares, East Adriane, AK 71925-5692

Phone: +21811810803470

Job: Chief Representative

Hobby: Board games, Rock climbing, Ghost hunting, Origami, Kabaddi, Mushroom hunting, Gaming

Introduction: My name is Terrell Hackett, I am a gleaming, brainy, courageous, helpful, healthy, cooperative, graceful person who loves writing and wants to share my knowledge and understanding with you.