通过Tailscale组建虚拟局域网实现内网穿透、异地客户端组网(以群晖和openwrt为例)

    Tailscale是一种基于Wireguard的多地组网的软件,能够实现将多地主机,都聚合在一个虚拟的局域网中,让这些设备之间能够相互访问,而且所有的节点都直接使用p2p连接。tailscale实现远程访问的形式和zerotier类似,zerotier组网参考这里

  一、TailScale注册 

    首先找到Tailscale官网进入。点击try for free按钮,支持google,microsoft,github,apple等账号登录(免费用户不支持直接email注册),登录成功后,会来到Machines机器列表界面,初次登录,界面是空的。

    登录后,就可以在需要的机器上安装客户端。点击右上角的Download进入官方客户端下载列表。可以看到,支持的平台非常多,如Windows、ios、android,linux、mac等等都可以,按自己需要下载对应版本安装即可。

    把安装了tailscale客户端的机器加入虚拟局域网,步骤都大同小异。如windows下,运行tailscale程序,在右下角的tailscale图标,点击"log in",会弹出登录页面,授权,即可在机器列表页面查看IP等相关信息。linux系统下,运行命令tailscale up,会生成一个登录链接,将链接复制到浏览器打开,登录、授权即可(如没有弹出页面,或没有生成登录链接,需要打开VPN等科学上网工具)。

  二、群晖安装Tailscale

     在此处找到你群晖的对应的版本,下载后在群晖package center手动安装

 



  安装完成后,点击Tailscale图标的open,会跳转到登录界面,按提示登录账号,点击Connect就可以了,群晖安装就完成了,非常简单。

   进入tailscale机器列表界面,就会发现前面连接并加入组网的设备。可以看到,在加入的设备列表中,每台设备都会给你分配一个IP,如果你要访问群晖,找到这台群晖的设备,并复制这个IP。然后在一台同样安装tailscale并加入组网的电脑上打开浏览器,在地址栏处粘贴这个IP地址加你机器的端口号,如群晖是默认5000端口,就可以远程访问已经加入组网的群晖了。

   如果这台设备是常用的,可以找到设备后的3个点图标,展开,点击disable key expiry,这样就是长期授权。

三、TailScale子网路由配置,参考这里

      如果群晖已经安装了tailscale ,与群晖同在一个局域网的设备,如路由器、或者其它不能安装tailscale客户端的设备,就可以借助这台安装了tailscale的群晖实现流量转发。

     比如路由器所在局域网的地址是192.168.8.1,同一局域网中的群晖设置子网路由后,那么所有加入tailscale组网的机器就可以直接通过192.168.8.1直接远程访问这台路由器。也就是说,这个内网地址既可以在局域网中使用,也可以在加入tailscale组网的机器中远程直接访问,非常方便,甚至连IP地址都不用更改。

  首先打开群晖的SSH功能,使用相关SSH软件登录,运行以下命令

sudo tailscale up --advertise-routes 192.168.8.0/24 

   注意,其中的192.168.8.0替换成你自己的真实网段,如果你群晖内网IP地址是192.168.1.6,那么就将192.168.8.0更改为192.168.1.0即可。

     然后返回机器列表,找到这台群晖,点后面的3个点,打开Edit route settings,把这个网段打开就行了。


        从其他安装了tailscale的电脑客户端启用访问subnet routers功能,windows的如下


linux则需运行以下命令

sudo tailscale up --accept-routes

子网路由就设置成功了。在电脑上,确保已经开启tailscale客户端,在电脑上浏览器访问192.168.8.1,应该就可以访问路由器了。

 如果想取消子网路由功能,运行以下命令

sudo tailscale up --reset
   四、openwrt安装tailscale,参考这里

   SSH登录openwrt后台运行以下命令(测试环境openwrt23.05)

opkg update
opkg install tailscale

然后运行以下命令

tailscale up

复制生成的链接到浏览器,打开,登录并授权即可

以下命令可查看tailscale状态

tailscale status
  浏览器登录openwrt管理页面,在"网络"-"接口"处添加一个新接口

  接着在"网络"-"防火墙"-"区域设置"处添加

最后,在openwrt后运行以下命令
tailscale up --netfilter-mode=off

重启openwrt,在浏览器访问tailscale 页面分配的IP,应该就可以访问openwrt的管理页面了。

五、TailScale Exit Node 出口节点配置

     TailScale Exit Node功能可以实现将安装了tailscale客户端的机器流量导向指定的出口节点,通过此节点访问所有网站。应用场景如:如家里的openwrt搭建了科学上网环境,就可以在openwrt上配置tailscale exit node,其他安装tailscale客户端的机器就可将其所有流量导向openwrt,实现科学上网了,显示的IP也是openwrt所在网络的IP。

    SSH登录openwrt,运行以下命令

tailscale up  --advertise-exit-node

 然后打开机器列表,找到openwrt,点后面的3个点,打开Edit route settings,启用use as exit node即可。

 客户端也要设置,windows,ios,andorid等图形客户端,只需在菜单中找到exit node,选择相应的客户端名称


   linux下,运行以下命令

sudo tailscale up   --exit-node=100.100.99.88 

100.100.99.88为出口节点的tailscale IP 。

若想取消出口节点功能,运行以下命令

tailscale up  --advertise-exit-node=false

 或简单点

tailscale up --reset

 Tailscale 的控制服务器是不开源的,而且对免费用户有诸多限制,有一个开源项目headscale实现了 Tailscale 控制服务器的所有主要功能,可以部署在企业内部,没有任何设备数量的限制,且所有的网络流量都由自己控制。

评论

热门博文

Xray安装配置VLESS-XTLS-Vision及VLESS-XTLS-uTLS-REALITY

在VPS上轻松搭建L2TP/IPSec图文教程(通吃各种架构的VPS,包括KVM,OpenVZ等)

V2Ray安装配置VMESS-TLS及VMESS-TLS-WS