坑边闲话:最近在搭建一些内网服务,比如 GiteaJupyterLabPortainer 等,但这些服务均部署在内网环境,无法通过公网访问。所以我就想到了使用 Tailscale 搭配 CNAME DNS 实现内网服务外网访问的方法。这样我本人在接入 Tailscale VPN 之后,就可以在任何地方通过公网访问到内网的服务了。

1. Tailscale 简介·

Tailscale 是一个基于 WireGuard 协议的 VPN 服务,它可以让你轻松地在多个设备之间建立安全的连接。Tailscale 有一个非常大的优势,就是它可以穿透 NAT,所以你可以在任何地方都能访问到你的设备。

2. Tailscale 安装·

Tailscale 支持多种平台,包括 Linux、Windows、macOS、iOS、Android 等等。你可以在 Tailscale 官网 上找到对应的安装方法。这里我以 Linux 为例,介绍一下 Tailscale 的安装方法。

2.1. Linux 安装·

Tailscale 提供了一个脚本,可以帮助你安装 Tailscale. 你可以使用下面的命令来安装 Tailscale:

1
2
3
4
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.gpg | sudo apt-key add -
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.list | sudo tee /etc/apt/sources.list.d/tailscale.list
sudo apt-get update
sudo apt-get install tailscale

安装完成后,你可以使用下面的命令来登录 Tailscale:

1
sudo tailscale up

这个命令会打开一个网页,让你登录 Tailscale. 登录完成后,你就可以在 Tailscale 的网站上看到你的设备了。

3. Tailscale 配置·

Tailscale 安装完成后,你可以使用下面的命令来查看你的设备的 IP 地址:

1
tailscale ip

这个命令会输出你的设备的 IP 地址,这个 IP 地址就是你的设备的公网 IP 地址。

4. CNAME DNS 配置·

Tailscale 为你的设备分配了一个 Tailnet IP 地址,同时也可使用 MagicDNS 解析到此 IP,当然,前提是你已经打开了 Tailscale VPN.

4.1. 添加 CNAME 记录·

你可以在你的域名服务商的网站上添加一个 CNAME 记录,将你的域名指向你的设备的公网 IP 地址。

4.2. 使用 CNAME 记录·

[TODO]