自动化是当前的热门话题。在我作为站点可靠性工程师(SRE)的日常工作中,我的部分职责是尽可能多地自动化重复性任务。但是我们当中有多少人在日常的非工作生活中这样做呢?今年,我专注于自动化,这样我们就可以专注于重要的事情。在自动化一切的同时,我在处理一些远程站点时遇到了困难。我不是网络专家,所以我开始研究我的选择。在研究了各种虚拟专用网络(VPN)、硬件端点、防火墙规则以及支持多个远程站点的一切之后,我对这一切的复杂性感到困惑、暴躁和沮丧。然后我发现了ZeroTier。ZeroTier是一种加密的虚拟骨干网,允许多台机器像在一个网络上一样进行通信。代码全部开源,您可以自己托管控制器,或使用ZeroTierOne服务,有免费或付费计划。我目前正在使用他们的免费计划,它功能强大、可靠且非常稳定。由于我使用的是Web服务,因此我不打算深入讨论运行控制器和根服务的细节。ZeroTier在他们的文档中有关于如何执行此操作的完整参考,而且非常好。在WebUI中创建我自己的虚拟网络后,客户端安装几乎是微不足道的。ZeroTier有适用于APT、RPM、FreeBSD和许多其他平台的软件包,因此让第一个节点上线几乎不需要付出任何努力。安装后,客户端连接到控制器服务并为节点生成一个唯一的ID。在Linux上,您使用zerotier-cli命令加入网络,使用zerotier-clijoinNETWORKID命令:$sudozerotier-cliinfo200info469584783a1.x.xONLINE您还可以使用zerotier-cli获取连接的列表和可用节点、更改网络设置并离开网络。设置新节点的图像加入网络后,您必须通过Web控制台或调用应用程序编程接口(API)来授权对节点的访问。这两种方法都记录在ZeroTier网站上。一旦两个节点连接起来,无论您身在何处,也无论您在防火墙的哪一侧,都可以像在同一建筑物的同一网络上一样相互连接。我的一个主要用例是远程访问我的HomeAssistant环境,而无需打开防火墙端口或将其暴露在互联网上(有关我的HomeAssistant设置和相关服务的更多信息,请参见下文)。我自己做的一件事是为内部DNS设置BetaZeroNDS服务。这为我管理我自己的名称服务或为我所有的私有主机和IP地址创建公共记录消除了很多复杂性。我发现说明非常简单,并且能够在大约5分钟内为我的专用网络设置DNS服务器。每个客户端都必须允许Zerotier设置DNS,这在GUI客户端中非常容易。要使其在Linux客户端上运行,请使用:$sudozerotier-clisetNETWORKIDallowDNS=1不需要其他更新,它在您添加和删除主机时“正常工作”。$sudozerotier-cliinfo200信息469584845a1.x.y在线$sudozerotier-clijoin93afae596398153a200加入OK$sudozerotier-clipeers200peers
