通过 Tailscale 异地组网 实现远程访问局域网

2024-04-12 19:12:11 20点赞 218收藏 15评论

本文首发于只抄博客,欢迎点击原文链接了解更多内容。

前言

Tailscale 是一款基于 WireGuard 的异地组网工具,它可以将不同网络环境的设备组成一个虚拟局域网,使其可以互相访问。我们只需要在路由器或者 Nas 上安装 Tailscale 进行组网,就可以实现以下效果:

  • 连接到 Tailscale 的设备,可以直接使用内网 IP 访问家庭局域网

  • 内网设备可以直接使用 Tailscale 分配的 IP 来访问连接到 Tailscale 的设备

  • 支持多个局域网互相访问,每个局域网只需一台设备安装 Tailscale ( 每个局域网的网段不能相同 )

安装步骤

  1. 打开 Tailscale 官网,点击右上角的 Log in,可以直接选择 Google 或者 Microsoft 授权登录

  2. 根据提示下载对应平台的客户端,更多平台下载请参考官方文档

    • Windows

    • Android (国区 Google Play 无法直接下载,可以在 APKMirror 下载)

    • Linux 一键安装脚本 curl -fsSL https://tailscale.com/install.sh | sh

    • 卸载apt-get remove tailscale rm -rf /var/lib/tailscale/tailscaled.state

  3. 有图形化界面的平台,直接登录账号即可;而在无图形化界面的平台上,需要输入 tailscale up

通过 Tailscale 异地组网 实现远程访问局域网
  1. 打开出现的链接,进行登录即可

  2. 默认情况下,会开启 Key Expiry,设备一段时间后会自动失效,可以在设备列表中选择 Disable Key Expiry

通过 Tailscale 异地组网 实现远程访问局域网
  1. 完成以上步骤后,启动客户端,即可使用列表中的 IP 进行直接访问

访问局域网

此时,只有连接到 Tailscale 的设备可以互相访问,并不能直接使用内网 IP 来访问整个局域网,我们还需要进行以下配置

开启 IP 转发

  1. 编辑 sysctl.conf 文件 vim /etc/sysctl.conf

  2. 将以下代码取消注释

net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1

  1. 加载内核参数 sysctl -p

添加子网路由

  1. 例如我的路由器地址为 10.0.0.1,光猫地址为 192.168.1.1,则需要配置的网段为 10.0.0.0/24 与 192.168.1.0/24

tailscale up --advertise-routes=10.0.0.0/24,192.168.1.0/24

  1. 在 Tailscale 控制面板中,将刚才添加的子网路由进行开启

通过 Tailscale 异地组网 实现远程访问局域网通过 Tailscale 异地组网 实现远程访问局域网

访问 Tailscale 设备

通过上面的设置,已经实现了连接到 Tailscale 的设备使用内网 IP 访问局域网,但是局域网内的设备仍然无法使用 Tailscale 分配的 IP 来访问那些连接到 Tailscale 的设备,我们还需要在路由器中配置静态路由

  • 网络 / 主机 IP: Tailscale 的网段 100.64.0.0

  • 网络掩码: 255.192.0.0

  • 网关: 安装 Tailscale 设备的内网 IP

通过 Tailscale 异地组网 实现远程访问局域网

无法打开网页

部分设备在连接 Tailscale 后,可能存在无法打开网页的问题,只需要在 Tailscale 控制面板中的DNS设置中,将 MagicDNS 进行关闭即可

通过 Tailscale 异地组网 实现远程访问局域网


展开 收起
15评论

  • 精彩
  • 最新
  • 异地访问局域网,用虚拟组网方式还是有点折腾,用内网穿透方案更加简便。
    常见的内网穿透方法有如花生壳、nat123、金万维等类似网络端口映射软件工具,可在本地将内网地址变成域名让外网连接。

    校验提示文案

    提交
  • openwrt上应该如何修改设置呢?我自己尝试的结果是,两台装了ta的op机器互相访问虚拟IP可以。但是a地的电脑无法访问b地的nas

    校验提示文案

    提交
    在 网络-路由 那里配置静态路由 把另一个局域网的网段填进去看看行不行

    校验提示文案

    提交
    组网方法理论上可行,实际配置起来相对复杂,用内网映射软件方案会更容易操作实现。
    内网映射外网访问方法有如花生壳、nat123、金万维等相似的网络端口映射工具,即可在局域网将内网IP地址绑定到域名让外网使用。

    校验提示文案

    提交
    收起所有回复
  • 如何才能实现这样的功能:假设A地的openwrt路由器192.168.1.1,安装了Tailscale,B地的openwrt路由器192.168.2.1,也安装了Tailscale。请问需要如何设置才能让A、B两地的openwrt局域网内设备实现用内网ip互访呢?

    校验提示文案

    提交
    Tailscale 配置子网路由,把本身局域网的网段添加进去
    路由器上静态路由除了配置100.64.0.0以外,还要把另一个局域网的网段也配置进去

    校验提示文案

    提交
    TailScale已经配置了子网路由,能够实现单独安装tailscale应用的设备(比如手机、windows)以A、B两地局域网ip访问A、B两地的设备。能不能就路由器上静态路由设置再具体一点,我无论如何设置都不能成功 [抱拳]

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 我的tailscale总是安装不上

    校验提示文案

    提交
  • 去看看 拓展教程来了,多个局域网间异地组网访问,不开tailscale的设备也能直接访问!旁路由tailscales 组网互访

    校验提示文案

    提交
  • 内部网络这个是啥根据呢

    校验提示文案

    提交
  • exit node

    校验提示文案

    提交
  • 不知道为啥安卓app启动不起来

    校验提示文案

    提交
  • 请问在群晖安装好了,可以内网ip打开群晖路由器打印机页面,但是不能用打印机远程打印

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
218
扫一下,分享更方便,购买更轻松