跳到主要内容

Tailscale 高级教程

对我来说常用的tailscale 的功能有如下几个:

exit node 和 magic dns and lanacess

Exit Node 功能

Exit Node(出口节点)是 Tailscale 的一个重要功能,它允许你将某个设备设置为网络出口,使其他 Tailscale 设备的流量可以通过这个节点访问互联网。

说人话就是你可以让设备上的指定程序通过vpn节点内的指定设备作为出口,

  • 在国外访问国内服务时,可以通过国内的 Exit Node 来访问(反向回国)
  • 保护公共 WiFi 下的网络安全,通过可信的 Exit Node 来访问互联网(绕过中间人攻击)
  • 绕过地理位置限制,访问特定区域的内容(DNS解锁)

举个例子: 公司有一个私有app,提供服务的ip在公司内网的100.100.101.1,只有在公司里的网络环境下才能打开上传文件 出差在外地的时候想要访问回公司里的设备就可以启用exit node这个功能,让放在公司的nas帮我们访问到公司里的ip

配置 Exit Node

  1. 在想要设置为出口节点的设备上启用 IP 转发:
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
  1. 在 Tailscale 管理控制台中启用该设备的 Exit Node 功能
  2. 在其他设备上选择使用这个 Exit Node

Magic DNS 功能

Magic DNS 是 Tailscale 提供的智能 DNS 解析服务,它能够:

  • 自动解析 Tailscale 网络中的设备主机名
  • 支持自定义 DNS 记录
  • 与现有的 DNS 基础设施无缝集成

Magic DNS 的主要特点

  1. 自动主机名解析

    • 网络中的设备可以直接通过主机名互相访问
    • 无需手动维护 hosts 文件
    • 支持动态 IP 环境

    例如:如果你有一台名为"home-server"的设备,其他设备可以直接使用 home-serverhome-server.tailnet-name.ts.net 来访问它,无需记忆 IP 地址。

  2. 自定义域名

    • 可以为设备设置自定义的域名
    • 支持子域名配置
    • 可以通过 Tailscale 的控制台管理 DNS 记录

    例如:可以将家里的 NAS 设备命名为 nas.home.ts.net,办公室的打印机命名为 printer.office.ts.net,使得设备用途一目了然。

  3. DNS 分流

    • 内网域名通过 Magic DNS 解析
    • 外网域名通过常规 DNS 服务器解析
    • 避免 DNS 泄露问题

    例如:访问 home-server.tailnet-name.ts.net 时使用 Magic DNS 解析,而访问 google.com 时仍然使用设备配置的公共 DNS 服务器。

配置 Magic DNS

配置一个完整的 Magic DNS 环境:

# 1. 查看当前的 DNS 配置
tailscale status

# 2. 设置自定义搜索域
tailscale up --search-paths=home.internal,office.internal

# 3. 验证 DNS 解析
ping home-server
ping nas.home.ts.net
nslookup printer.office.ts.net

Lan Access 功能

Lan Access(局域网访问)是 Tailscale 的一个重要功能,它允许你将某个设备设置为局域网访问,使其他 Tailscale 设备的流量可以通过这个节点访问局域网内的设备。

子网访问

这个功能可以让我们访问类似打印机/光猫/路由器/交换机等无法安装tailscale的设备,人在外地也能访问到家里的设备

配置 Lan Access

  1. 启动 Tailscale 并宣告路由:

作为 Exit Node:

sudo tailscale up --advertise-exit-node

作为 Subnet Router (宣告特定子网,例如 192.168.1.0/24):

sudo tailscale up --advertise-routes=192.168.1.0/24

# 你可以宣告多个子网,用逗号分隔
# sudo tailscale up --advertise-routes=192.168.1.0/24,10.0.5.0/24
  1. 在 Tailscale Admin Console 批准路由:

访问 Tailscale Admin Console。 找到你的 Debian 12 机器。 点击机器名称右侧的三个点(...)菜单,选择 "Edit route settings..."。 启用 "Use as exit node" 或批准你宣告的子网路由 ("Subnet routes")。