Sunny
2

通过Tailscale实现异地组网,访问内网ip设备解决方案

#系统

通过Tailscale实现异地组网,访问内网ip设备解决方案

一、使用场景

我工作和实验中,常见遇到过这样的场景:

  • 在公司想访问家里的 NAS设备,因为内网,公网设备无法连接

  • 出差在外需要远程家里的电脑,但公网 IP 不固定

  • 有多台设备分布在不同网络,希望它们能互相访问

  • 想要安全地访问内网设备,不想暴露到公网

传统方案如端口映射、VPN、内网穿透等,要么配置复杂,要么不够安全。今天介绍一个简单易用的解决方案——Tailscale

二、什么是 Tailscale?

Tailscale 是一个基于 WireGuard 的零配置 VPN 服务,具有以下特点:

  • 零配置:无需复杂的网络知识,一键安装即可使用

  • 安全可靠:端到端加密,基于 WireGuard 协议

  • NAT 穿透:无需公网 IP,无需端口映射

  • 跨平台:支持 Linux、macOS、Windows、iOS、Android 等

  • 免费使用:个人用户免费,支持最多 100 台设备

  • 子网路由:可以访问整个内网网段

三、应用场景

  • 远程访问家里的 NAS、服务器

  • 在外网 SSH 连接家里的虚拟机 Linux 设备

  • 访问家里的摄像头、智能家居

  • 多地办公网络互联

  • 云服务器访问内网资源

四、连接流程图

fig:

五、安装与配置

5.1 下载 Tailscale并注册 Tailscale 账户

  1. 访问 Tailscale 官网

  2. 选中自己对应的系统版本,并一直单击下一步安装。

  3. 点击 "Get Started" 注册账户

  4. 支持使用 Google、GitHub、Microsoft 等账户登录

fig:

账号注册完成后,打开软件界面,可以看到相关”Connect“的字眼,这是当前只配置了工作笔记本端的用户,还需要连接家庭网络设备的tailscale

5.2 在家里 Linux 设备上安装 Tailscale

因为我是用于连接家里NAS和Linux虚拟机,介绍的方式是linux系统,如果是Windos和MacOS通过界面步骤安装“下一步”确认,安装完成后打开链接登录connect。

方式一:Linux虚拟机安装官方远程脚本,可实现一键安装,该脚本可查询你的系统版本,脚本已自动匹配系统对应安装。

curl -fsSL https://tailscale.com/install.sh | sh

方式二:根据不同系统版本自定义安装。

fig:

安装完成后,可以查看对应的系统状态是running,说明服务是启动状态

fig:

初步安装已经完成,在日常使用中有多台内网设备,为了避免逐台安装Tailscale软件,可以配置子网路由的方式,如拓扑图中通过子网路由方式连接,则需要一台设备作为路由中转。

fig:

#设置192.168.56网段的设备都无需逐台绑定设备,我配置当前的192.168.56.142设备为路由中转设备
[root@localhost ~]# sudo tailscale up --advertise-routes=192.168.56.0/24
# 启用 IP 转发
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
#系统会显示一个链接地址,浏览器登陆并登陆注册的账号
To authenticate, visit:
https://login.tailscale.com/xxxxx

fig:

设置子网路由,需要在web界面上选择对应的路由网段配置

fig:
fig:

注意:Tailscale为了保护用户的设备安全,有默认的加密安全机制,会设置密钥在一定的天数后会过期,如果能保证使用安全的情况下,可以设备上配置密钥永不过期,避免无法登陆的情况。

fig:

这样就完成了异地组网的解决方案,通过异地的设备可通过tailscale加密方式,访问家中的同内网网段设备。

fig:

参考资料

系列导航

按系列顺序继续阅读当前专题内容

Kubernetes 排障实战