跳到主要内容

使用tailscale实现异地组网

背景​

  1. 想和不在一个局域网下的朋友,联机玩星露谷
  2. 有很多设备,有的在云上,有的在公司,有的在家,上面或多或少都部署了一些服务,虽然有 UU 远程和自带的端口映射,但还是不够方便。

思考过的解决方案:

  1. VPN
  2. FRP

但都需要一台服务器来架设服务,懒得维护,最终找到了 Tailscale 这款软件,完美满足我的需求。

介绍​

Tailscale 是基于 WireGuard 实现的异地组网工具,能够将处于不同网络环境下的设备构建成统一虚拟局域网,实现设备间互通。 只需在路由器或 NAS 上部署 Tailscale 完成组网,即可达成如下能力:

  1. 接入 Tailscale 的设备,可通过家庭局域网内网 IP 直接访问家庭内网资源;
  2. 家庭内网设备,可使用 Tailscale 分配的虚拟 IP,反向访问所有接入 Tailscale 的终端;
  3. 支持多局域网跨网互通,每个局域网仅需一台设备部署 Tailscale,要求各局域网网段不能冲突。

下载安装使用​

前往 https://tailscale.com/download,选择合适的版本,下载安装即可。

image-20260831203859349

安装后登录同样的账号,就会进入同一个组网。

image-20260831204014563

此时组网就成功了,可以互相访问开放的服务。

image-20260831205703018

子网功能(指定网段代理)​

文档:https://tailscale.com/docs/features/subnet-routers

子网路由器允许你将 Tailscale 网络(称为 tailnet)扩展至包含无法运行或无需运行 Tailscale 客户端的设备。它们作为 tailnet 与物理子网之间的网关,让你无需在所有设备上安装 Tailscale,就能安全访问老旧设备、整个网络或各类服务。这一功能在保留 Tailscale 安全模型的同时,为复杂网络环境提供了灵活性。

信息

简单来说,可以访问目标内网中的其他资产,如打印机、NAS、未安装 tailscale 的设备上的服务,相当于做成一个代理、跳板机。

官方步骤很详细,建议直接看官方的,这里简单记录下,设置可访问的网段(不建议用 windows,windows 可能会比较卡):

# 打开转发 方式一
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf

# 方式一不行就用方式二
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

# 设置网段
sudo tailscale set --advertise-routes=192.0.2.0/24,198.51.100.0/24

image-20260901201737250

从管理页面启用路由:

image-20260831211410030

对应操作如下:

image-20260831211500932

然后 IP就可以访问通了。

image-20260831211553853

补充:一些资产做了 ALB,必须要通过域名才能访问,最简单的办法,就是直接改本地 hosts 即可。

出口节点(全局代理)​

文档:https://tailscale.com/docs/features/exit-nodes

默认情况下,Tailscale 作为覆盖网络运行:它仅转发运行 Tailscale 的设备之间的流量,不会干预你的公网互联网流量,例如访问谷歌或推特时产生的流量。对于大多数需要在敏感设备(例如公司服务器或家用电脑)之间实现安全通信,但又不希望为公网互联网连接增加额外加密层级或延迟的用户而言,该覆盖网络配置十分适用。

信息

简单来说,所有的流量都从出口节点出去,相当于做了一个全局代理(初步体验了下,速度有点慢,不是很理想)

A diagram showing four devices in a Tailscale overlay network where one is highlighted in blue and designated as an exit node. The laptop makes its connection to google.com through the Desktop device designated as an exit node.

配置步骤:

image-20260831213941738

使用步骤:

image-20260831213955760

image-20260831214031342