Tailscale速通
最近用了一下 Tailscale,感觉各种畅通。因为之前看别人用 Headscale 去做后端服务器,虽然跟着做成功了,但后边使用起来实际上没啥用。
这一次发现,直接用 Tailscale,完全是没问题的,也就是不用 Headscale。
首先是下载 Tailscale,直接到官网跟着步骤做就是了,没啥好说的:https://tailscale.com
我 Android 手机、mac 电脑和国外一台 Linux ECS 机器(Ubuntu 22.04),三个机器对应安装好。
btw,回想一下 Linux 没有界面,也就没有像其它端一样登录的时候有个浏览器页面打开让填帐号信息,那当时是怎样完成身份认证的呢?
仔细想了一下,是因为本身我就已经登录了 Tailscale 官网,然后安装 Linux 版本的时候,它应该是自动给我用了指纹认证:
好了。按着官方下载安装说明,机器都安装好,登录帐号之后,它们之间就可以相互联通了。这里它们的网络拓扑应该是都连接着一个 Tailscale 中继服务器之类的东西,具体细节得再深入研究,但不是这里要讲的了。
自己的机器相互联通之后可以传文件、访问相关内容、甚至远程操控等等操作,但这些不是我想要的使用场景。
我其实是想把国外这个 ECS 机器当成一个代理机,因为它天然可以访问外网,如果现在我在内部可以联通这台国外的机器, 当我把流量都路由经过这台 ECS 机器,那也就是我在国内可以访问国外的流量了。
思路就是这么个思路,而且 Tailscale 也提供了这么一个功能:出口节点-Exit Nodes:
官网已经说得够明白了:https://tailscale.com/kb/1103/exit-nodes/?tab=linux
照着它说的做,最后就把国外这台 ECS 机器当成了代理。查看我前边几个图,你会发现“Using exit node xxxxxx”、“offers exit node”这样的描述,其实就是了。
这时候,连接好这个 Tailscale 组网,我就可以在 Android 和 mac 上通过这个 Exit Node 机器访问外网了,不需要借助其它 FQ 工具。
可是你可能会问,那这不就跟直接在你 ECS 机器上用那种脚本直接安装一个 ShadowsocksR 服务器,然后用客户端 app 配置代理之类的一样吗,只是换成了 Tailscale,前者可能还更简单。
其实这也是我还在思考的,前边我也有提到相关的点:
- Tailscale 组网之后,网络拓扑应该是都连接着一个 Tailscale 中继服务器之类的东西,不然怎么做好虚拟出了一个内网呢?
然后我想的是:
- 每个机器跟它这个中继的连接安不安全,会不会被识别,或者说识别难度大不大?
- 其实就是考虑国内机器跟这中继连接会不会被屏蔽
- 如果这样的连接已经比其它工具更难被抓,那么这已经是优势了。
- 反正我之前用 shadowsocksR 自建后 ECS 机器把我国内的访问给屏蔽了,远程连接它只能靠 VNC。但现在用 Tailscle 组网后,目前一切还都正常中。
- 如果并不会更难被抓,那么是不是有方法可以在它们的通信之上,再套上一层皮,让它更难被抓?
这就是我昨天关于 Tailscale 的简单操作。
btw,前边提到之前我是用 Headscale+Tailscale 的方式(具体操作网上有很多)来做的,这一次在重新使用纯 Tailscale 的时候就遇到冲突相关的问题: 因为之前的配置,使得我 mac 本地残留了 headscale 相关的配置信息,害我一打开 Tailscale 它就自动登录到以前的帐号(用 Headscale 的时候使用的是生成一个什么身份码验证的方式),
搞了我一个下午,最后发现你需要关注这几个地方,才能把残留配置全清除:
- 删除相关目录文档:https://tailscale.com/kb/1069/uninstall/?q=uninstall&tab=macos
- 系统设置里移除 VPN 配置:
- 系统设置里把“描述文件”的 Headscale 文件删除(想起来当时配置 Headscale 的时候是需要添加这个描述文件的):