当我们访问官方并点击了 Get Started 之后,会发现只能够使用谷歌、微软和同性交友平台的账户镜像登录,使用自己邮箱进行属于增值付费业务。
使用Tailscale远程访问局域网
这里我们使用自己的账户进行登录之后,需要我们首先现在对应设备的客户端工具,只有 Linux 设备可以使用命令行安装,其他设备均需要安装客户端工具才行。需要注意的是,如果你是 macOS 的话,需要使用除中国区外的账户进行登录(得准备一个美区账户),才能够安装。如果是安卓手机的话,需要到谷歌应用商店安装(需要科学上网)。
# linux$ curl -fsSL https://tailscale.com/install.sh | sh
# 还可以使用docker安装# https://github.com/tailscale/tailscale/blob/main/Dockerfile$ docker run -d --name=tailscaled \ -v /var/lib:/var/lib -v /dev/net/tun:/dev/net/tun \ --network=host --privileged fastandfearless/tailscale tailscaled# 打印tailscale登录地址并进行授权登录$ docker exec tailscaled tailscale up# 获取设备TailscaleIP地址$ ip addr show tailscale0# 查看设备状态$ docker exec tailscaled tailscale status
# 本地编译安装# https://github.com/tailscale/tailscale/wiki/Tailscaled-on-macOS# 安装go工具$ brew install go# 直接编译# 会在$HOME/go/bin目录下面生成二进制包$ go install tailscale.com/cmd/tailscale{,d}@main# 后台守护进程运行tailscaled服务# sudo tailscaled uninstall-system-daemon$ sudo $HOME/go/bin/tailscaled $ sudo $HOME/go/bin/tailscaled install-system-daemon# 启动服务$ tailscale up $ tailscale status
使用Tailscale远程访问局域网
当你登录并授权登录成功后,会自动为该设备分配一个 Tailscale IP(可用于局域网内设备间的访问),之后可以看到这么一份带有 IP 的列表了。
如果你使用的
Mac
电脑的话,肯定存储是一个头痛的问题,因为一般情况下都会购买
128G
和
256G
版本的机器(不要问为什么,问的话就是穷)。这样当磁盘不够的时候,就让人感觉到焦虑。但是当我们使用
Tailscale
并拥有
WebDav
之后,就能很好的拓展存储空间,可以内网连接我的群晖
NAS
提供的
WebDav
了。
使用Tailscale远程访问局域网 - 网络采集而来
[2] 远程访问机器 - 群晖
远程使用
PC
的情况,可以通过
TeamViewer
完成。但是使用
RDP
协议来远程操作,效果体验更佳而且更稳定。但是
PC
机需要一直开机状态,如果我们只是偶尔使用一下的话,这有些费电了。
当我们使用
Tailscale
之后,通过群晖(或者机器机器也可以)做一个反向代理方便进入家里的梅林路由器,并修改本地
Mac
的
hosts
文件来解析我们自定义的域名。群晖 NAS 的控制面板中自带了配置反向代理的地方,可以省的我们折腾。进入梅林路由器,进入网络工具中的通过网络唤醒界面,选择对应的
PC
即可。
使用Tailscale远程访问局域网 - 网络采集而来
当然,首先这台
PC
机需要配置好通过
WOL
唤醒才行,而配置可以自己参考网络唤醒全攻略。等待电脑唤醒完成后,使用远程桌面进行远程连接,就可以得到一个用户体验很不错的体验了。
[3] 远程访问机器 - 主机
上面我们知道群晖会自带反向代理的功能,但是并不是每个人都会买这个的,那有没有其他方式来处理这个问题呢?肯定是可以的,我们这里通过
Linux
接入
TailScale
服务,让其充当网关,这样就可以问整个内网网段了。
这样做的好处,还有一个就是,家里或者公司不是每一部设备都可以安装到
TailScale
服务的,比如打印机之类的。这样设定
PC
机充当子路由(
Subnet Route
),其他所有的外网的
TailScale
装置都可以透过这部
Linux
装置作为网关访问家里内网所有的设备。
# Linux机器设置IP转发(临时)$ echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf $ echo'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.conf $ sudo sysctl -p /etc/sysctl.conf