配置 Tailscale VPN 服务器
这是可选的。 如果你在家运行节点并希望从家庭网络外部连接到它,你才需要考虑本节。
如果你想远程登录到你的家庭网络,例如在度假或出差时,最常见的途径是使用虚拟专用网络服务器。 这将允许你通过 SSH 连接到节点并从世界任何地方监视你的 Grafana 仪表板,所有这些都无需将 SSH 端口暴露给互联网。
许多 Rocket Pool 节点运营者使用 Tailscale 作为他们选择的 VPN 服务器。 Tailscale 是一个开源的 P2P VPN 隧道和托管端点发现服务。 它负责身份验证、发布以及在你的机器和节点之间建立端到端加密路径所需的 NAT 穿越,而无需将任何敏感流量发送到集中式服务器。 它是一个非常强大的工具。
我们将简要介绍它的基本配置,但请随时查看他们的文档以获取更多详细信息。
设置 Tailscale
首先,创建一个免费的 Tailscale 帐户。 Tailscale 需要使用 SSO 身份提供商,例如 Google、GitHub、Okta、Microsoft 等。 有关详细信息,请访问他们的 SSO 页面。
建议你在选择的任何身份提供商上启用 2FA(双因素身份验证)以增加安全性。
接下来,按照他们的入门指南在你的客户端上安装 Tailscale - 你想要连接到网络的机器。 例如,这可能是笔记本电脑或手机。 请注意,这不是你的 Rocket Pool 节点!
完成后,你应该在 Tailscale 仪表板上看到你的计算机"已连接"。
现在,在你的 Rocket Pool 节点上安装 Tailscale。 你可以在他们的网站上找到相关说明;例如,这里是 Ubuntu 的安装说明。
如果你配置了 UFW,你还需要遵循 UFW 配置说明。
首先,在你的 Rocket Pool 节点上添加 Tailscale 的包签名密钥和存储库:
现在,在你的 Rocket Pool 节点上安装 Tailscale:
最后,在你的 Rocket Pool 节点上验证并将你的机器连接到 Tailscale 网络:
你已连接! 你可以通过运行以下命令找到你的 Tailscale IPv4 地址:
你现在应该在 Tailscale 仪表板上看到添加了你的节点机器。
你还可以通过仪表板更改节点机器的名称,例如更改为 rocketnode。
建议为节点机器禁用密钥过期以防止需要定期重新验证。
如果你想使用诸如 rocketnode 之类的易记主机名访问节点,可以通过在 Tailscale 设置中启用 MagicDNS 来实现。
你现在应该能够在客户端上 exit 到节点的 SSH 会话,并使用 ssh your.user@rocketnode 再次通过 Tailscale 通过 SSH 连接到节点。
如果你在首次配置节点机器时修改了 /etc/ssh/sshd_config 中的 SSH 端口,请改用 ssh your.user@rocketnode -p <your port>。
例如,如果你将 SSH 分配给端口 1234,你将执行:
你现在还可以在 Web 浏览器中访问 http://rocketnode:3100 以从客户端访问你的 Grafana 仪表板。
如果你配置了 UFW,你现在可以添加一条规则来接受通过 Tailscale 的任何传入 SSH 连接。
以下步骤将修改你的防火墙规则。 **在继续之前,你必须至少有 2 个到节点机器的 SSH 会话 - 一个用于修改配置和之后测试,另一个将保持登录状态作为备份,以防你的更改破坏 SSH,以便你可以恢复它们!
在节点机器上运行这些命令。
允许访问通过 Talscale 的所有传入 ssh 连接。
你还可以删除从启用防火墙步骤添加的 SSH 端口访问权限,以完全锁定你的节点。 请注意,你将无法从本地网络登录,因为 tailscale 将成为唯一的登录方式。 仅在你对此感到满意时运行以下命令。
设置防火墙规则以限制所有非 Tailscale 连接后,重新启动 UFW 和 SSH:
现在,确认一切按预期工作。
从你当前的 SSH 会话之一 exit(但记得保持第二个会话打开作为备份)。
接下来,使用 Tailscale IP 地址通过 SSH 连接到节点机器:
如果成功,你做对了一切,现在可以在国外时安全地登录到你的家庭网络!
如果你之前在路由器中对节点的 SSH 端口进行了端口转发,现在可以将其删除。