Q:VLAN,VNET和VPN是什么?它们是一个概念吗?

A:VLAN(Virtual Local Area Network),VNET(Virtual Network),和VPN(Virtual Private Network)是计算机网络中的三个不同的概念,它们有些相似但也有着不同的作用和功能。
VLAN(虚拟局域网): VLAN 是一种将一个物理局域网(LAN)划分成多个逻辑上的虚拟子网的技术。每个 VLAN 都可以拥有自己的网络配置、安全策略和广播域,即使它们在同一个物理网络中。VLAN 的主要目的是增加网络的灵活性、安全性和管理性,以便更好地控制网络流量和组织网络设备。
VNET(虚拟网络): VNET 是在云计算环境中使用的概念,特别是在公共云服务提供商(如 Microsoft Azure、Amazon Web Services 等)中。VNET 是一种将云中的资源(虚拟机、存储、数据库等)组织在一个逻辑网络中的方式。通过创建 VNET,您可以为云中的资源定义网络拓扑、子网、路由规则等,以实现更好的网络隔离和管理。
VPN(虚拟私有网络): VPN 是一种通过公共网络(通常是互联网)建立安全连接的技术,用于在不安全的网络上创建加密的私有通信通道。VPN 允许远程用户或远程办公地点与公司内部网络建立安全连接,就好像它们直接连接到了内部网络一样。VPN 可以用于保护数据传输的隐私和安全,使远程访问变得更加安全可靠。
虽然这三个概念都涉及虚拟化和网络隔离,但它们具有不同的用途和适用场景。VLAN 主要用于物理局域网内的划分和管理,VNET 用于云环境中的资源组织和管理,而 VPN 则用于建立安全的远程连接。

Q:tailscale,zerotier等应该属于哪个概念?

A:Tailscale 和 ZeroTier 都属于 VPN(Virtual Private Network)的概念,尤其是它们是现代化的、基于软件的 VPN 解决方案,用于在互联网上建立安全的虚拟网络连接。

Q:我如果使用Tailscale,将许多不同地域的设备连接起来,这些设备组成的专用网络是算作VLAN还是VNET?

A:使用 Tailscale 将不同地域的设备连接起来时,这些设备组成的虚拟网络被称为 VNET(Virtual Network),而不是 VLAN(Virtual Local Area Network)。
VLAN 通常是在局域网内部划分的逻辑子网,用于在物理网络上实现逻辑隔离和管理。它通常限于一个物理地理位置,例如在同一办公室或数据中心内的不同部门之间。
VNET 则是一个更通用的概念,特别是在云计算和分布式网络环境中。它是一种通过软件方式创建的虚拟网络,可以跨越多个物理地域、数据中心和云提供商,将不同地区的设备连接在一起。Tailscale 正是一个用于创建这种跨地域虚拟网络的工具,使不同地理位置的设备能够通过加密通道安全地相互通信,就像它们在同一个网络中一样。
因此,如果您使用 Tailscale 将不同地域的设备连接起来,您将创建一个跨地域的虚拟网络,这个概念更接近于 VNET 而不是传统的 VLAN。

为什么需要 VLAN

众所周知,一般普通内网/局域网在外面是访问不了的。如果有一些需求,比如想在外网远程控制电脑、远程传文件之类的,就需要想办法在外网也能访问内网的设备,也就是内网穿透。常用的有以下方法:

FRP 反向代理

如果有一个带公网ip的服务器,可以把内网设备的端口暴露出来。这是我以前一直使用的方法。

优点

  • 操作方便

  • 访问端不需要安装任何软件

  • 完全开源,完全可控

缺点

  • 内网设备直接暴露到公网有安全风险(据说RDP暴露在公网容易中勒索病毒)

  • 端口要提前自定义映射,使用起来不方便(比如我新建一个服务用了12345端口,我得设置端口映射,然后使用服务器的端口来访问)

VLAN

就是把设备拉到一个虚拟的局域网中,组成大内网。这里使用 Tailscale,此外类似应用还有 Zerotier 等。

优点

  • 无安全风险(不暴露到公网上,链路也是加密的)

  • 无需自定义端口映射,用起来就和真的局域网一样

缺点

  • 这玩意不是完全开源的(有开源的第三方实现 HeadScale)

  • 众所周知的原因,中国大陆没有中继服务器,所以延迟会emmmm(如果有公网ip,可以自己设立私有的国内中继服务器)

  • 后台要跑着软件。此外,安卓设备上 Tailscale 和梯子是不能一起开的,会互相挤下线。

安装之前的准备

把你的 Windows 设备的电脑名改成容易记住的名字(默认的 DESKTOP-XXXXXX 不是人记的),然后重启。

为什么要这么做呢?访问共享文件夹的时候可以通过计算机名字在真内网和VLAN中都能访问。要不然,真内网一个IP,大内网一个IP,访问共享文件夹很不方便。

然后就是注册一个 Tailscale 账号。

Tailscalelogin.tailscale.com/login

对于有公网 IP 的服务器来说,安全面板和防火墙放行 UDP 41641 端口可以帮助服务器间通过公网 IP 直连(而不是走中继)。详见:What firewall ports should I open to use Tailscale?

安装

首页上方点击下载。

按照自己的需求下载对应的客户端,并且按照页面的指示安装和授权。

安装并授权完成后,就连接上了 VLAN:

Windows 的托盘图标

建议开启选项 “Run unattended”,可以开机后即使未登录到用户也能连接到大内网。如果你的电脑是多用户,而且不想别的用户使用自己的大内网,那就不要开启这个选项。

手机和 linux 都可以按照官网来安装。

当你的设备都连接上 Tailscale VLAN 后,你就可以在 Admin Console 管理自己的设备了。

这里建议点一下“Disable key expiry”,以后设备授权就不会自动过期。

内网域名解析

2023.09.12更新

可以购买域名之后,在 Cloudflare 新建指向 tailscale ip 的解析(不要开启小黄云)。

CF 会自动识别这是指向保留地址的解析

虽然在公共 DNS 上建立解析会让全世界都能看到你的 tailscale ip,但是因为这是内网(就像 192.168.x.x),没有安装 tailscale 并加入你的帐户的人就算知道解析也不能从外网访问,所以应该还是很安全的。

这样就可以在内网使用域名访问,适合自定义域名、建立内网网站甚至 nginx 反代之类的。

只有在你的大内网才能访问的网站

为了更加保险,nginx 可以设置只监听 tailscale 虚拟网卡: