ZeroTier 是一个加密的虚拟主干网，允许多台机器像在一个网络上一样通信。自动化是现在的一个热门话题。在我作为网站可靠性工程师（SRE）的日常工作中，我的部分职责是将尽可能多的重复性任务自动化。但是我们当中有多少人在日常生活、非工作生活中这样做呢？ 今年，我专注于自动化工作，以便我们可以专注于重要的事情。在实现一切自动化的同时，我在一些远程站点上遇到了困难。我不是一个网络专家，所以我开始研究我的选择。在研究了各种虚拟专用网络（VPN）、硬件端点、防火墙规则以及支持多个远程站点的所有东西后，我感到困惑、暴躁，并对这一切的复杂性感到沮丧。然后我发现了 ZeroTier。ZeroTier 是一个加密的虚拟主干网，允许多台机器像在一个网络上一样通信。代码全部是开源的，你可以自行托管控制器，或者使用 ZeroTierOne 服务，有免费或付费计划。我现在使用的是它们的免费计划，它很强大、可靠，而且非常稳定。因为我使用的是 Web 服务，所以我不打算详细介绍运行控制器和根服务。ZeroTier 在他们的 文档 中对如何做到这一点有完整的参考，而且非常好。在 Web 用户界面中创建了我自己的虚拟网络之后，客户端的安装几乎是微不足道的。ZeroTier 有 APT、RPM、FreeBSD 和许多其他平台的软件包，所以让第一个节点上线不需要什么努力。安装完毕后，客户端就会连接到控制器服务，并为节点生成一个唯一的 ID。在 Linux 上，你使用 zerotier-cli 命令来加入一个网络，使用 zerotier-cli join NETWORKID 命令：$ sudo zerotier-cli info 200 info 469584783a 1.x.x ONLINE 你也可以使用 zerotier-cli 来获得连接和可用节点的列表，改变网络设置，以及离开网络。在加入一个网络后，你必须批准该节点的访问，可以通过网络控制台或调用应用程序编程接口（API）。这两种方法在 ZeroTier 网站上都有文档说明。连接两个节点后，无论你身在何处或位于防火墙的哪一侧，你都可以相互连接，就像你们在同一个建筑的同一个网络中。我的主要用例之一是 远程访问我的家庭助理环境，而不需要打开防火墙端口或将其暴露在互联网上（关于我的家庭助理设置和相关服务的更多信息，见后文）。我自己做的一件事是为内部 DNS 设置了一个 Beta ZeroNDS 服务。这为我管理自己的名称服务或为我所有的私人主机和 IP 地址创建公共记录减少了很多复杂性。我发现操作说明非常简单直白，并且能够在大约 5 分钟内为我的私人网络建立一个 DNS 服务器。每个客户端必须允许 Zerotier 设置 DNS，这在 GUI 客户端中非常简单。要使它在 Linux 客户端上使用，请使用：$ sudo zerotier-cli setNETWORKID allowDNS=1 在你添加和删除主机时，不需要其他更新，它“就能工作”。$ sudo zerotier-cli info 200 info 469584845a 1.x.y ONLINE $ sudo zerotier-cli join 93afae596398153a 200 join OK $ sudo zerotier-cli peers 200 peers <ztaddr> <ver> <role> <lat> <TX> <RX> <path> 61d294b9cb - PLANET 112 DIRECT 7946 2812 50.7.73.34/9993 62f865ae71 - PLANET 264 DIRECT 7946 2681 50.7.76.38/9993 778cde7190 - PLANET 61 DIRECT 2944 2901 103.195.13.66/9993 93afae5963 1.x LEAF 77 DIRECT 2945 2886 35.188.31.177/41848 992fcf1db7 - PLANET RECT 79124 DI47 2813 195. 181.173.159/9993 我只提到了它所有功能的表面。ZeroTier 还允许在 ZeroTier 网络之间建立桥接、高级路由规则等。它们甚至有一个 Terraform 提供者 和一个 很棒的 Zerotier 资源 清单。到今天为止，我正在使用 ZeroTier 连接四个物理站点的机器，其中三个在 NAT 防火墙后面。Zerotier 的设置很简单，而且管理起来几乎完全不费力。via: https://opensource.com/article/22/5/zerotier-network作者：Kevin Sonney 选题：lkxed 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出