目录
在这个万物互联的时代,我们拥有越来越多的智能设备、NAS、个人服务器等。然而,当我们尝试从外部网络访问家里的设备时,常常会遇到防火墙、路由器端口转发、动态IP等一系列令人头疼的问题。传统内网穿透方案的复杂性,让许多人望而却步。
今天,我要向大家介绍一款革命性的内网穿透工具——Tailscale,它将彻底改变你远程访问设备的方式,让你告别繁琐的配置,轻松实现设备间的无缝互联。
为什么使用 Tailscale?它的优势何在?
你是否曾面临以下场景:
- 想在公司或旅行时访问家里的 NAS 存储文件?
- 希望远程控制家中的 Home Assistant 智能家居系统?
- 需要与朋友共享个人服务器上的资源,但又不想把服务器完全暴露在公网?
- 厌倦了每次网络变化都要重新配置端口转发和动态DNS?
如果你的答案是“是”,那么 Tailscale 就是为你量身定制的解决方案。
Tailscale 的核心优势在于:
-
极简配置,开箱即用:
- 零端口转发: 这是它最大的亮点!你不再需要登录路由器,设置复杂的端口转发规则。Tailscale 利用 STUN/TURN 技术,大部分情况下可以直接穿透NAT,建立点对点连接。即使无法直接连接,它也会通过中继服务器帮助你。
- 无需动态 DNS (DDNS): 传统方案中,如果你的家庭宽带IP是动态的,你需要设置DDNS来更新域名解析。Tailscale 直接为你的每台设备分配一个稳定的、私有的100.x.y.z IP地址,无论你的公网IP如何变化,都可稳定访问。
- 无需公网 IP: 即使你的宽带服务商不提供公网IP(例如中国电信/联通/移动的很多家庭宽带都采取了CGNAT),Tailscale 也能正常工作,因为它的连接是“由内向外”发起的。
-
企业级安全保障:
- 基于 WireGuard®: Tailscale 底层采用的是目前最先进、最安全的VPN协议之一 WireGuard。它以简洁、高效著称,提供了强大的加密和身份验证。
- 点对点加密: 设备之间的通信是端到端加密的,数据只在你的设备之间传输,不会经过 Tailscale 服务器解密。
- 身份验证集成: 它与你已有的身份提供商(如 Google、Microsoft、Okta、GitHub 等)集成,你可以使用熟悉的账户登录,管理你的网络成员。
-
构建私有安全网络 (Mesh VPN):
- Tailscale 为你所有注册的设备创建一个私有的“网状网络”(Mesh Network)。在这个网络中,每台设备都可以直接与其他设备通信,就像它们都在同一个局域网中一样。
- 这意味着,无论是你的手机、笔记本、NAS、虚拟机还是服务器,只要它们都加入了你的 Tailscale 网络,你就可以用它们分配的 Tailscale IP 地址直接访问。
-
子网路由 (Subnet Routers):
- 如果你希望通过 Tailscale 访问某个局域网内的所有设备(不仅仅是安装了 Tailscale 的设备),你可以在该局域网内的一台设备上启用“子网路由”功能。这台设备会作为网关,将 Tailscale 网络中的流量路由到你的本地局域网。
总而言之,Tailscale 将复杂的网络配置抽象化,提供了一个既简单又安全的远程访问解决方案。
如何在 Linux 上安装 Tailscale?
以 CentOS/RHEL 系列为例,安装 Tailscale 非常简单。对于 Debian/Ubuntu 等系统,步骤类似,只需更换包管理器命令。
步骤 1:添加 Tailscale 软件仓库
根据你的 CentOS 版本选择对应的命令:
对于 CentOS 8 或更新版本:
sudo yum-config-manager --add-repo https://pkgs.tailscale.com/stable/centos/8/tailscale.repo
对于 CentOS 7:
sudo yum-config-manager --add-repo https://pkgs.tailscale.com/stable/centos/7/tailscale.repo
yum-config-manager
是一个用于管理 Yum/DNF 仓库的工具,它会帮你把 Tailscale 的官方仓库添加到你的系统配置中。
步骤 2:安装 Tailscale
仓库添加成功后,就可以直接安装 Tailscale 软件包了:
sudo yum install tailscale -y
步骤 3:启动 Tailscale 服务
安装完成后,启动 Tailscale 服务并设置为开机自启动:
sudo systemctl enable --now tailscaled
如何使用 Tailscale?
现在,你的 Linux 设备已经安装并启动了 Tailscale 服务。接下来是如何将其加入你的 Tailscale 网络:
步骤 1:连接到 Tailscale 网络
在你的 Linux 终端中运行以下命令:
sudo tailscale up
执行此命令后,终端会显示一个 URL 链接。
步骤 2:授权设备
- 复制这个 URL 链接。
- 在你的网页浏览器中打开这个链接。
- 登录你的 Tailscale 账户(你可以使用 Google、Microsoft、GitHub 等已有账户登录)。
- 按照提示授权这台 Linux 设备加入你的 Tailscale 网络。
授权成功后,你的 Linux 设备就会获得一个以 100.x.y.z
开头的私有 IP 地址,并显示在 Tailscale 的管理界面中。
步骤 3:在其他设备上安装并登录 Tailscale
在你的其他设备上:
- 下载并安装 Tailscale 应用: 访问 Tailscale 官网 (Download | Tailscale),下载对应操作系统的客户端。
- 无法下载请看:自取
- 登录 Tailscale: 使用与 Linux 设备相同的 Tailscale 账户登录。
- 启用 Tailscale VPN: 在客户端中启用 Tailscale VPN 连接。
步骤 4:访问你的 Linux 设备
一旦所有设备都加入了同一个 Tailscale 网络并且 VPN 已连接,你就可以通过以下方式访问你的 Linux 设备:
- 使用 Tailscale 分配的 IP 地址: 例如,如果你的 Linux 服务器的 Tailscale IP 是
100.10.20.30
,那么你可以在其他设备上直接通过ssh 100.10.20.30
连接。 - 使用 MagicDNS (推荐): 在 Tailscale 管理界面 (Tailscale) 的 "DNS" 设置中启用 MagicDNS。启用后,Tailscale 会自动为你的设备分配一个方便记忆的主机名(通常是你设备名加上你的 Tailscale 域后缀,例如
my-server.your-tailnet-name.ts.net
)。这样,你就可以直接通过主机名来访问设备了,例如ssh my-server
。
子网路由(可选高级用法):
如果你想让 Tailscale 网络中的设备也能访问你的 Linux 服务器所在的整个本地局域网(例如,访问同一路由器下的 NAS 或智能摄像头),你可以在 Linux 服务器上启用子网路由功能。
- 在 Linux 服务器上运行:
sudo tailscale up --advertise-routes=192.168.1.0/24 --accept-routes
# 将 192.168.1.0/24 替换为你的本地局域网的实际子网,例如 192.168.0.0/24
- 登录 Tailscale 管理界面,在 "Machines" 页面找到这台 Linux 服务器,点击旁边的三个点,选择 "Edit route settings",然后启用你刚刚 advertised 的子网路由。
这样,其他 Tailscale 设备连接后,就能通过这台 Linux 服务器作为网关,访问你的整个本地局域网了。