从开始用 Tailscale 到现在已经过去两年多,让我来记录一下这个软件的使用历程吧。

顺便也整理一下自己遇到的问题与解决方法,方便以后又遇到的时候查阅。

开端

前年,某位不愿透露姓名的咩咩分享的容器需要通过的 Tailscale 建立连接,让我第一次接触到了这个软件。
一切开始的地方

安装

在 Windows 上直接下载安装包即可,Linux 上也可以通过一个简单的脚本安装。安装完成后使用 tailscale up 启动并完成认证,这样就算是接入了 Tailscale 网络。

访问规则

随着接入的设备越来越多,我发现通过网页管理开始麻烦起来。

为了方便管理,我专门创建了一个 tailscale-policy 仓库,用来存放访问控制系统的规则,并且配置好 Actions 用来验证和部署规则。

并且还需在规则文件第一行添加以下注释,这样管理后台网页会锁定配置编辑,同时提醒用户这个配置由 git 仓库控制,且提供了转跳至对应仓库的按钮。

https://tailscale.com/kb/1204/gitops-acls

// This tailnet's ACLs are maintained in https://git.hehome.xyz/he0119/tailscale-acls

Tailnet DNS 名称

新账号的默认名称都是 tail<ID>.ts.net 其中 ID 为一串十六进制字符串名称。Tailscale 允许你自己从随机生成的名称中选择一个作为你的新名称,你可以不限次数的尝试生成新的名称,这些名称总是由两个英文单词组成。

我之前随机了很久才遇到一个我自己看着比较顺眼的,而且能记住的名称。

Peer Relays

在一些特殊情况下,Tailscale 无法建立节点与节点之间的直接连接,这个时候需要用到中继服务器。但是 Tailscale 官方提供的中继服务器都在境外,访问延迟很高且不稳定。

好在最近推出了 Peer Relays,和之前的 DERP 相比它不再需要我去配置额外的服务,仅需要在拥有公网 IP 的节点运行以下命令并开放对应端口。

tailscale set --relay-server-port=40000

这样我其他无法直连的节点就可以通过拥有公网 IP 的节点进行数据中继。

tsidp

这是我最近才发现的服务,它是一个 OIDC / OAuth 身份提供商 (IdP) 服务器。

参考其他人的实现,再加上现在大模型的努力,我给 Typecho 也加上了 OIDC 支持。这样只要我的设备接入了 Tailscale 网络,只需要单击博客里的单点登录按钮就能够直接登录进后台页面。

注意事项

Exit Node

有时候使用 exit node 时,会出现网络无法访问,这种时候需要检查能否直连 exit node 这个节点,一定要确保直连才能正常使用。

参考阅读:

  1. NAT 穿透是如何工作的:技术原理及企业级实践

标签: NAS, tailscale