实名推荐虚拟组网套件——Tailscale

网络安全
查看原帖

在模态框中查看主贴与评论的删除、修改和新增情况。

906051999
906051999 楼主
#1

关键词

  • Tailscale
  • Subnet routes
  • Exit node

引言

使用Tailscale配置好虚拟组网生态后,我个人沉浸式使用了半年时间,非常好用,非常优雅的满足了我的各种使用需求,忍不住要向大伙儿分享

先说句题外话,之前分享自建Tailscale节点教程的时候,很多佬友在评论区留言说觉得Tailscale用起来太复杂了,还是Zerotier更简单上手。

从我个人的使用体验来说,Zerotier的优势在于节点认证十分简单,设备只需要一串代码就能入网,而基于官方认证系统的Tailscale就需要良好的网络环境,仅从认证这一环节来看,Tailscale确实没有优势(Headscale自建认证系统虽然能解决这个问题,但是对我来说又太麻烦了)

那我为什么最后还是选择使用Tailscale作为我的个人家庭虚拟组网套件呢?

正文

设备情况

首先介绍我的个人设备网络情况,两个局域网不在一个城市:

局域网A下部署一个主路由,该网关下有我的NAS、Ubuntu和软路由;

在另一个局域网B中部署一个副路由,该网关下有我的PC、iPad、手机。

我的需求就是能够随时随地、便捷地访问和配置A网下的所有设备。

graph TD
    subgraph "局域网A"
        A_GW[主路由] --> NAS[NAS]
        A_GW --> Ubuntu[Ubuntu 主机]
        A_GW --> SoftRouter[软路由]
    end

    subgraph "局域网B"
        B_GW[副路由] --> PC[PC]
        B_GW --> iPad[iPad]
        B_GW --> Phone[手机]
    end

    A_GW <-->|虚拟组网| B_GW

    style A_GW fill:#cde4ff,stroke:#333
    style B_GW fill:#ffe4cd,stroke:#333 

Subnet routes(子网路由器)

这时就要使用到Tailscale的Subnet routes(子网路由器)功能,这也是最吸引我的功能。

虚拟组网会给子网设备分配虚拟的IP地址,这个地址可以自定义。

但是这就有一个不方便的地方,比如说我在局域网环境下访问NAS上的站点服务(如emby、群晖主页)时,已经保存有cookie和历史记录,很多站点服务的端口、账号、密码,我都完全依赖chrome的联想和自动补全,如果在虚拟局域网环境下NAS的IP改变了,就意味着我需要重新输一遍,这对我来说太麻烦了。

而 Subnet routes(子网路由器)可以实现将局域网的某个子网设备作为路由器将一个网段共享,什么意思呢,就是我在虚拟组网环境下,依然可以直接通过访问局域网IP来直接访问设备,不需要做任何调整

这是一种极大便利,因为我会在手机、平板、电脑上访问局域网下的多个设备,这涉及到十几个应用或窗口,如果都需要一一调整IP,我会裂开的。

而且这个功能的优势在于,你只需要将局域网中一台设备设置为Subnet routes(子网路由器),就可以在虚拟网络环境下访问整个局域网中同网关下的任意设备,甚至可以远程使用打印机(连WIFI的那种),对于局域网设备多的用户来说,减少了太多配置成本。

特别是当你的设备回到局域网环境中时,一切配置都不需要调整的感觉,你想象那种爽感吗?

Exit node(出口节点)

接下来这个功能,我用的不多,但是对于某些场景,实用性是相当高的。

Exit node(出口节点)就是可以将任意一个虚拟组网设备a配置为流量出口节点,如果你在另一个虚拟组网设备b中将设备a选中为出口节点,那么此时你的设备b的所有流量都会通过a中转。

是不是很像VPN?

已经有了clash,这个功能有什么意义呢?

举例子:

  1. 在手机上同时只能启动一个VPN,如果你使用了Tailscale,你就不能同时使用clash。但如果此时你刚好有一个组网设备实现了科学上网,那么将它作为Exit node(出口节点),在手机上选择它,你就能同时实现虚拟组网+科学上网。

  2. 又或者有一些设备突然需要科学上网,但是不方便配置clash,或者懒得折腾,直接使用Exit node(出口节点)功能,就能瞬间解决这个难题。

  3. 再或者在一些业务场景中,某些APP或网站不允许异地登录或者频繁更换IP,你也可以将一个固定家宽设备作为Exit node(出口节点),其他登录设备都将其选择它作为流量出口。

这个功能虽然对我来说使用频率并不高,但是用起来几乎没有任何成本,偶尔用上了就会感到爽的不行。

STUN内网穿透强行实现P2P

接下来这个玩法,我怀疑全网估计都没人说过,虽然原理并不复杂。

Tailscale之所以需要自建derp,一个是增加NAT打洞概率,一个是为了设备NAT打洞失败情况下,也能回退到中继保持联通

但是现实的网络环境并不总受自己掌控,特别是在外租房,那网络环境更是一个比一个逆天,一个比一个复杂,所以NAT打洞几乎是不可能的。

如果我只能使用中继节点的3Mbps“大”水管看emby,那真不如看在线资源

所以之前我在主路由部署了lucky,使用STUN内网穿透随便给一个端口打了一个洞

没想到无心插柳柳成荫,这个穿透出来的地址就相当于我的局域网的公网IP,此时在Tailscale虚拟组网环境中ping我的局域网设备,都自动从STUN穿透地址实现了直连。

总结

实际上我在使用Tailscale时,并没有进行很复杂的配置,也没有仔细研究它的功能,我就是在使用过程中慢慢解锁了上面这些能力,然后才发现它帮我省了多少时间和精力,我非常乐意向你推荐这个宝藏虚拟组网套件。

这篇文章并不是教程,如果有佬友需要更具体的配置,可以留言说一下,我觉得使用起来还是很符合逻辑的。

优点小结

优点1:设备支持
我的个人设备几乎涵盖了所有主流操作系统:Windows、Ubuntu、OpenWrt、群晖、Mac OS、iPad OS、Android,而Tailscale支持以上所有设备,且你很方便的就能实现安装(应用商城、命令行、安装包)。

优点2:支持局域网IP
不管在什么网络环境下,都使用一个固定局域网IP访问设备,使用体验极好。

优点3:自选流量出口
将子网设备作为出口节点,实现流量转发功能。

题外话

说到STUN内网穿透,之前我也分享了一个内网穿透的使用手册,但是现在cloudflare调整了Free计划,好像已经用不了了。

而且之前的域名跳转也很不优雅,我最近想做一个STUN内网穿透2.0教程,并且开发了一个支持动态更新域名的轻量导航站,不知道有没有佬友觉得有意思的,对于导航站的建议可以随时提。

:heart:139:+1:19:clap:1:open_mouth:1
TOPIC OWNER
168楼层
167回复
88用户
906051999 momeo Chaosm Cat73 Xinalin marsgh

评论第 4 页,共 4 页

906051999
906051999 楼主 ↶ @Li66Disccoo69
#154

中继当然要国内的呀,不是国内的就毫无意义了,因为tailscale官方本身就提供了很多中继节点,只是环大陆所以导致延迟很高,这才是需要我们自建中继的根本原因

TOPIC OWNER
Sanc
#155

STUN内网穿透2.0教程
在哪?求教

:heart:1
1个回复
906051999
906051999 楼主

最近有点忙,我会抓紧写完 :joy:

TOPIC OWNER
↓ 跳到帖子
Li66Disccoo69
Li66Disccoo69
#156

好久没用,今天正式用上了。但发现tailscale居然和代理工具冲突,有clash之类的,就不生效了。看来还得折腾 :melting_face:

:heart:1
1个回复
906051999
906051999 楼主

不会的,我从来都是两个一起开的,你说的是手机吗?

TOPIC OWNER
↓ 跳到帖子
906051999
906051999 楼主 ↶ @Sanc
#157

最近有点忙,我会抓紧写完 :joy:

TOPIC OWNER
906051999
906051999 楼主 ↶ @Li66Disccoo69
#158

不会的,我从来都是两个一起开的,你说的是手机吗?

1个回复
Li66Disccoo69
Li66Disccoo69

不是手机,是pc。我试了下,我开tun模式居然不冲突,开系统代理就马上掉线 :melting_face:

:heart:1
↓ 跳到帖子
TOPIC OWNER
qntm
qntm
#159

tailscale打洞成功率不高,尤其是在多重nat下,但是确实更精致

:heart:1
Li66Disccoo69
Li66Disccoo69 ↶ @906051999
#160

不是手机,是pc。我试了下,我开tun模式居然不冲突,开系统代理就马上掉线 :melting_face:

:heart:1
1个回复
906051999
906051999 楼主

有点奇怪,我这边一直都是两个一起用的

TOPIC OWNER
↓ 跳到帖子
906051999
906051999 楼主 ↶ @Li66Disccoo69
#161

有点奇怪,我这边一直都是两个一起用的

TOPIC OWNER
imcake
imcake
#162

学习下,最近正好在用

:heart:1
guangping
guangping ↶ @Mi_Manchi
#163

怎么做到延迟这么低的,用其他的远程软件都延迟太高体验很差,就一直没远程 :tieba_087:

:heart:1
1个回复
Mi_Manchi
Mi_Manchi

首先要确保ip和tailscale的域名没有走代理,第二udp开起来,第三就看你的网络环境(这个你就当天意吧)

:heart:2
↓ 跳到帖子
kbj
#164

我试了2次 就没成功过一次 还是老实用我的 tailscale 国内版 xedge

:heart:1
906051999
906051999 楼主 ↶ @kbj
#166

v6 不需要打洞,直连

1个回复
kbj
kbj

对啊 V6直连啊 所以我开了V6 基本直连不会失败

:heart:1
↓ 跳到帖子
TOPIC OWNER
kbj
#167

对啊 V6直连啊 所以我开了V6 基本直连不会失败

:heart:1
Mi_Manchi
Mi_Manchi ↶ @guangping
#168

首先要确保ip和tailscale的域名没有走代理,第二udp开起来,第三就看你的网络环境(这个你就当天意吧)

:heart:2
Night1918
Night1918
#169

很好的教程,感谢分享

:heart:1
heliang614
heliang614 ↶ @906051999
#170

easytier这些功能都有,配置也更简单,我这边打洞都成功p2p,没有跨区过。

:heart:1