logo科技微讯

在 fly.io 上部署 Tailscale

作者:科技微讯
日期:2023-05-25
📝 笔记

可以先了解一下 fly.io 提供的免费额度,按量付费,需要添加信用卡,注意需要在 Organization - Billing 处,把 Plan 改为 Hobby Plan,而不是 Hobby Plan Preview 或其他 Plan。更新:免费的 Hobby Play 已经不能申请了,幸好已有用户还可以继续使用,现在这个 Plan 改名为 Legacy Hobby plan

什么是 Tailscale 呢?你可以去它的官网了解,少数派的一篇文章是这样介绍 Tailscale 的:

Tailscale 属于一种虚拟组网工具,基于 WireGuard。他能帮助我们把安装了 Tailscale 服务的机器,都放到同一个局域网。

简单地说,我们可以在 Mac、iPhone、Windows 等设备都安装上 Tailscale,经过简单的配置,这些设备就能组成一个局域网,即使不是在同一个 Wi-Fi 下也可以互相访问对方的文件。你当然也可以把 Tailscale 安装在 fly.io 的虚拟主机上,这样你的手机或电脑就可以和这部虚拟主机组成局域网。

Tailscale 还支持所谓的 exit node:

An exit node in Tailscale is a device or network that is used to route all of your internet traffic.

Github 有一个项目 patte/fly-tailscale-exit 手把手教你如何在 fly.io 的主机上部署 Tailscale,并把该主机设置为 exit node,从而把你的手机、电脑的流量都路由到这个主机上,我试了一下,速度还不错。如果你已经购买了其他虚拟主机,也可以把 Tailscale 部署到你的主机上,不一定是 fly.io。

项目的安装说明已经很久没有更新,有些步骤已经过时,所以有几个需要注意的点:

  • 如果部署过程中卡在了 Waiting for depot builder可以试试使用 fly deploy --depot=false
  • 生成 Auth Key建议勾选 Reusable + Ephemeral
  • Auth Key 的有效期最多只能是 90 天,但某个设备使用这个 key 完成授权之后,该设备可以关闭过期效验,超过 90 天也无需使用新的 key 重新验证;
  • 生成的 Auth Key 可以直接写在 fly.toml 再部署;

fly.io 支持很多 region,如果你想知道哪个 region 在你所在的位置延迟最低,可以看这个帖子,或打开帖子提到的这个网页。我在广州,根据我的不完全测试,lax(Los Angeles)速度比较快,我以为 hkg(香港)、sin(新加坡)速度会不错,实际却很慢。

Tailscale 可能会通过它的 DERP node 中转你的网络,即你的网络不是直接从你的设备到 fly.io 的主机,而是从你的设备到 Tailscale 的 DERP node,再从 DERP node 到 fly.io 的主机,这样速度可能就有点慢了。

在安装了 Tailscale 应用的电脑上执行 tailscale status 命令,如果返回的信息提示 relay,说明你的网络经过了 DERP node,如果显示 direct,那你就是直连 fly.io。

你在网络上可能会看到 “Tailscale 打洞” 这个词,英文说法是 UDP hole punching,上面提到的项目支持 UDP hole punching,这是之所以能 direct 的原因。

Tailscale 博客写了一篇解释 NAT 穿透的文章,NAT 穿透有多种实现方式,其中一种就是 UDP 打洞。

donation赞赏
thumbsup0
thumbsdown0
暂无评论