【实用工具】使用 Tailscale 搭建虚拟局域网
什么是 Tailscale
Tailscale 是基于 WireGuard 协议构建的零配置 VPN 解决方案(zero-config VPN solution)。它可以:
- 自动建立点对点加密连接(peer-to-peer encrypted connection)
- 无需复杂的防火墙配置(firewall configuration)
- 支持 NAT 穿透(NAT traversal)
- 提供简单的设备管理界面
环境概览
在我们的场景中:
- 公司 Windows 工作站:内网 IP
172.22.26.185,作为 Subnet Router - 家中 Mac:通过 Tailscale 访问工作站和公司内网
- iPhone:移动端访问
安装 Tailscale
在 Windows 工作站上安装
- 访问 Tailscale 官网
- 下载 Windows 版本安装包
- 运行安装程序,按提示完成安装
- 首次运行时会要求登录,可以使用 Google、Microsoft 或 GitHub 账号
- 登录后,工作站会自动加入你的 Tailscale 网络(Tailscale network)
在 Mac 上安装
- 从 Tailscale 官网 下载 macOS 版本
- 或使用 Homebrew 安装:
1
brew install --cask tailscale
- 启动 Tailscale 并使用相同账号登录
- Mac 会获得一个 Tailscale IP(通常是 100.x.x.x 网段)
在 iPhone 上安装
- 在 App Store 搜索 “Tailscale”
- 下载并安装
- 打开应用后使用相同账号登录
配置 Subnet Router
Subnet Router 功能允许 Tailscale 网络中的设备访问某个节点所在的子网(subnet)。我们需要将 Windows 工作站配置为 Subnet Router。
在 Windows 工作站上启用 Subnet Router
以管理员身份打开 PowerShell 或命令提示符
运行以下命令启用 Subnet Router:
1
tailscale up --advertise-routes=172.22.26.0/24,172.22.215.0/24,192.168.205.0/24 --accept-routes
这条命令的含义:
--advertise-routes=172.22.26.0/24,172.22.215.0/24,192.168.205.0/24:广播(advertise) 以下网段子网:- 172.22.26.0/24 - Mac 和 P3 所在网段
- 172.22.215.0/24 - CPU 节点和 H800 节点所在网段
- 192.168.205.0/24 - A100 节点所在网段
--accept-routes:接受其他节点广播的路由(routes)
命令执行成功后,打开 Tailscale 管理后台
在 Tailscale 管理后台批准路由
- 访问 Tailscale 管理面板
- 找到你的 Windows 工作站
- 点击设备右侧的 “…” 菜单
- 选择 “Edit route settings”
- 在 “Subnet routes” 部分,你会看到刚刚的三个网段都处于待批准状态(pending approval)
- 点击 “Approve” 批准该路由
启用 IP 转发(Windows)
为了让 Windows 工作站能够转发流量(forward traffic),需要启用 IP 转发:
以管理员身份打开 PowerShell
运行以下命令:
1
2
3
4
5# 启用 IPv4 转发
Set-NetIPInterface -Forwarding Enabled
# 或者通过注册表启用
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -Name IPEnableRouter -Value 1重启计算机使配置生效
测试连接
1 | # 测试ssh |
配置 SMB 文件共享访问
在 Windows 工作站上启用 SMB 共享
右键点击要共享的文件夹,选择 “属性”(Properties)
切换到 “共享”(Sharing) 选项卡
点击 “高级共享”(Advanced Sharing)
勾选 “共享此文件夹”(Share this folder)
点击 “权限”(Permissions),设置访问权限(access permissions)
确保 Windows 防火墙允许 SMB 流量:
- 打开 “Windows Defender 防火墙”
- 点击 “允许应用或功能通过 Windows Defender 防火墙”
- 确保 “文件和打印机共享” 已启用
从 Mac 访问 SMB 共享
打开 Finder
按
Command + K或选择菜单 “前往” > “连接服务器”输入服务器地址,使用以下格式之一:
1
2
3smb://172.22.26.185
或
smb://100.x.x.x (工作站的 Tailscale IP)点击 “连接”,输入 Windows 用户名和密码
选择要挂载(mount)的共享文件夹
成功后,共享文件夹会出现在 Finder 侧边栏
小技巧:可以将常用的 SMB 共享添加到 “登录项”(Login Items),实现开机自动连接:
- 系统设置 > 用户与群组 > 登录项
- 点击 “+” 添加已挂载的网络驱动器
从 iPhone 访问 SMB 共享
iOS 和 iPadOS 13+ 原生支持 SMB 访问:
确保 iPhone 上的 Tailscale 应用正在运行并已连接
打开 “文件”(Files) 应用
点击右上角的 “…” 菜单
选择 “连接服务器”(Connect to Server)
输入服务器地址:
1
2
3172.22.26.185
或
100.x.x.x点击 “连接”,选择 “注册用户”(Registered User)
输入 Windows 用户名和密码
成功后即可浏览和访问共享文件
第三方应用推荐:
- Documents by Readdle:功能更强大的文件管理器
- FE File Explorer:专业的 SMB 客户端
进阶配置
启用出口节点(Exit Node)
如果需要让流量看起来来自公司网络:
在 Windows 工作站上运行:
1
tailscale up --advertise-exit-node --advertise-routes=172.22.26.0/24,172.22.215.0/24,192.168.205.0/24
在 Tailscale 管理后台批准 Exit Node
在 Mac 或 iPhone 上,选择使用该节点作为出口节点
配置 ACL 访问控制
在 Tailscale 管理后台的 “Access Controls” 中,可以配置访问控制列表(Access Control List),限制哪些设备可以访问哪些资源。
示例 ACL:
1 | { |
这条命令的意思是:允许 名为 mac-device 的设备访问 windows-workstation 上的所有端口,并且允许它访问通过工作站子网路由连接的 172.22.26.0/24 整个子网上的所有端口。
参考资源
- Tailscale 官方文档: https://tailscale.com/kb/
- Subnet Router 配置指南: https://tailscale.com/kb/1019/subnets/
- Tailscale 管理面板: https://login.tailscale.com/admin/machines