2 年前,老苏写了 『 外网访问群晖的新方案Tailscale 』,第一次隆重的给大家推荐了
Tailscale
,但当时还有很多功能并不具备,比如今天要介绍的
Subnet Router
和
Exit Node
【特别说明】:老苏使用的是
DSM6
,所以下面的操作都是在
DSM6
上完成的。
DSM7
据说对权限引入了更严格的限制,建议去看官方文档。
安装
一般群晖是
7*24
小时开机的,所以老苏还是以群晖来介绍。
和 2 年前不同,
Synology NAS
的
Tailscale
套件现在由
Tailscale
统一发布,所以目前有两种方式安装:
- 在
套件中心
直接搜索tailscale
,找到了直接安装;群晖官方有套件介绍:https://www.synology.cn/zh-cn/dsm/packages/Tailscale - 在 https://pkgs.tailscale.com/stable/#spks 直接下载对应的版本,然后手动安装;
Subnet Router
之前老苏基本上是在每台需要远程访问的设备上都安装
Tailscale
客户端,按官方的说话,这是效果最佳的用法,因为流量会被端到端加密,并且无需配置即可在物理位置之间移动机器。
但是在某些情况下,我们不能给每台设备都安装
Tailscale
,例如一些使用不运行外部软件的嵌入式设备,常见的有打印机、普通路由器、玩客云等,这个时候我们就可以设置一个
Subnet Router
来实现从
Tailscale
访问这些设备。
什么是 Subnet Router ?
Subnet Router
的字面意思是子网路由,以前称为
relay node
或者
relaynode
,其作用是充当网关,将流量从您的
Tailscale
网络中继到您的物理子网。
借用一张官方的图来做说明
左侧是
Tailscale Network
,包含了所有安装了
Tailscale
客户端的设备,其中包括了老苏在公司用的办公机;
中间的
Subnet Router
是放在家里的群晖主机,局域网
IP
为
192.168.0.197
,同时也安装了
Tailscale
客户端
右侧是局域网中的设备,包括了路由器(
192.168.0.1
)、玩客云(
192.168.0.2
)等设备;
设置
- 将群晖作为子网路由器连接到
Tailscale
用
SSH
客户端登录到群晖,在命令行中输入
因为后面还会用到
Exit Node
,所以一并处理了 😊
sudo tailscale up --advertise-routes 192.168.0.0/24 --advertise-exit-node --reset
如果是多个网段,用逗号隔离就行,像下面这样
sudo tailscale up --advertise-routes 192.168.0.0/24,192.168.1.0/24 --advertise-exit-node --reset
- 从管理控制台启用群晖的子网路由功能
进入管理控制台:https://login.tailscale.com/admin/machines
找到安装了
Tailscale
的群晖主机
主机名是可以自己修改的,主要是方便自己识别,也可以配合
DNS
用作域名;
进入
Edit route settings
可以看到我们命令行中设置的局域网地址段
而没有启用
Subnet Router
的是下面这样的
现在我们要启用局域网
IP
多个子网时
验证
现在老苏在公司的办公机上,直接输入
192.168.0.xxx
就可以访问家里的设备了
当然如果公司也有
192.168.0.xxx
网段的话就比较尴尬了;
Exit Node
什么是 Exit Node ?
Exit Node
功能允许您通过网络上的特定设备路由所有非
Tailscale
互联网流量,这台特定的路由设备称为
Exit Node
。
虽然解释很绕口,但是举个
栗子
就很容易明白了
大部分情况下, 安装了
Tailscale
客户端的设备,访问互联网是👇下面这样的
左侧为
Tailscale Network
看的出来,和是不是安装了
Tailscale
没任何关系,该怎么访问还是怎么访问,这种模式被称之为
Split-Tunnel VPN
模式;
但是,在
Wi-Fi
不受信任的咖啡馆中,或者在出国旅行时需要访问仅在您本国可用的在线服务(例如银行业务)
这时候,我们可能需要另一台安装了
Tailscale
客户端的设备路由所有公共互联网流量。
比如下图中,
laptop
是通过
desktop
访问互联网,这台
desktop
就被称为
Exit Node
,也就是
出口节点
,这种模式被称为
Full-Tunnel VPN
模式;
在实际应用中,我们还是继续以群晖
ds3617xs
作为
Exit Node
;
设置
群晖端的命令已经合并处理过参数
--advertise-exit-node
,所以不需要再执行了。
只要进控制台启用即可
接下来要设置使用
Exit Node
的设备,比如老苏的办公机
出于安全目的,每个设备都必须明确选择使用出口节点,
MacOS
和
Windows
上比较简单,菜单中可以找到
Exit Node
默认是
None
, 选择为被设为
Exit Node
的设备
ds3617xs
就可以了
这个时候
Tailscale
客户端的图标
会多一个箭头
验证
只能通过验证你的公网
IP
才知道是否生效了,比如通过这个网站:https://www.whatismyip.com
当老苏
Exit node
选择
none
和
ds3617xs
时,公网
IP
是会发生变化的,选择了
ds3617xs
后,公网
IP
和在家里局域网中是一样的,这就说明已经
OK
了
参考文档
Subnet routers and traffic relay nodes · Tailscale
地址:https://tailscale.com/kb/1019/subnets/
Access Synology NAS from anywhere · Tailscale
地址:https://tailscale.com/kb/1131/synology/
Exit Nodes (route all traffic) · Tailscale
地址:https://tailscale.com/kb/1103/exit-nodes/
DNS in Tailscale · Tailscale
地址:https://tailscale.com/kb/1054/dns/
版权归原作者 杨浦老苏 所有, 如有侵权,请联系我们删除。