通过 Tailscale 异地组网 实现远程访问局域网
前言
Tailscale 是一款基于 WireGuard 的异地组网工具,它可以将不同网络环境的设备组成一个虚拟局域网,使其可以互相访问。我们只需要在路由器或者 Nas 上安装 Tailscale 进行组网,就可以实现以下效果:
- 连接到 Tailscale 的设备,可以直接使用内网 IP 访问家庭局域网
- 内网设备可以直接使用 Tailscale 分配的 IP 来访问连接到 Tailscale 的设备
- 支持多个局域网互相访问,每个局域网只需一台设备安装 Tailscale (每个局域网的网段不能相同)
安装步骤
- 打开 Tailscale 官网,点击右上角的 Log in,可以直接选择 Google 或者 Microsoft 授权登录
- 根据提示下载对应平台的客户端,更多平台下载请参考官方文档
- 有图形化界面的平台,直接登录账号即可;而在无图形化界面的平台上,需要输入
tailscale up
- 打开出现的链接,进行登录即可
- 默认情况下,会开启 Key Expiry,设备一段时间后会自动失效,可以在设备列表中选择 Disable Key Expiry
- 完成以上步骤后,启动客户端,即可使用列表中的 IP 进行直接访问
访问局域网
此时,只有连接到 Tailscale 的设备可以互相访问,并不能直接使用内网 IP 来访问整个局域网,我们还需要进行以下配置
开启 IP 转发
编辑
sysctl.conf
文件vim /etc/sysctl.conf
将以下代码取消注释
txt
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
- 加载内核参数
sysctl -p
添加子网路由
- 例如我的路由器地址为 10.0.0.1,光猫地址为 192.168.1.1,则需要配置的网段为 10.0.0.0/24 与 192.168.1.0/24
sh
tailscale up --advertise-routes=10.0.0.0/24,192.168.1.0/24
- 在 Tailscale 控制面板中,将刚才添加的子网路由进行开启
访问 Tailscale 设备
通过上面的设置,已经实现了连接到 Tailscale 的设备使用内网 IP 访问局域网,但是局域网内的设备仍然无法使用 Tailscale 分配的 IP 来访问那些连接到 Tailscale 的设备,我们还需要在路由器中配置静态路由
- 网络 / 主机 IP: Tailscale 的网段 100.64.0.0
- 网络掩码: 255.192.0.0
- 网关: 安装 Tailscale 设备的内网 IP
无法打开网页
部分设备在连接 Tailscale 后,可能存在无法打开网页的问题,只需要在 Tailscale 控制面板中的DNS设置中,将 MagicDNS 进行关闭即可
预览: