用ZeroTier搭建属于自己的虚拟局域网(VLAN)
资料参考:https://zhuanlan.zhihu.com/p/83849371
开门见山, 什么是虚拟局域网(VLAN):
VLAN(Virtual Local Area Network)的中文名为"虚拟局域网"。
虚拟局域网(VLAN)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,由此得名虚拟局域网。VLAN是一种比较新的技术,工作在OSI参考模型的第2层和第3层,一个VLAN就是一个广播域,VLAN之间的通信是通过第3层的路由器来完成的。与传统的局域网技术相比较,VLAN技术更加灵活,它具有以下优点: 网络设备的移动、添加和修改的管理开销减少;可以控制广播活动;可提高网络的安全性。
在计算机网络中,一个二层网络可以被划分为多个不同的广播域,一个广播域对应了一个特定的用户组,默认情况下这些不同的广播域是相互隔离的。不同的广播域之间想要通信,需要通过一个或多个路由器。这样的一个广播域就称为VLAN。
为什么需要VLAN:
- 简化多个云服务器的管理: 你可以用192.168.1.1来访问云服务器1, 用192.168.1.2来访问云服务器2.
- 简化开发调试: 通过VLAN实现的内网穿透可以实现用手机在不同的网络环境下调试开发机上的应用程序, 可以在云服务器上配置nginx来将少部分请求分流到开发机上来直接进行生产调试.
- 在广域网内实现局域网联机: 效果大概类似各类单机游戏对战平台, 或者直接说hamachi吧.
- .....(VLAN的更多用途任你想象)
OK, 接下来, 简单介绍一下我们今天的主角: ZeroTier.
官方介绍:
ZeroTier transforms the entire world into a single data center or cloud region. Network all your devices, virtual machines, and applications like they’re all plugged into the same switch.
翻译一下:
ZeroTier将整个世界转变为单个数据中心或云区域。 将所有设备,虚拟机和应用程序联接起来,就像在同一个交换机接入所有设备一样。
简单来说, 它就是一个VLAN组建工具, 不过与一般的组建VLAN的工具(如Hamachi, n2n等)不同, ZeroTier有这么几个优势:
- 几乎零配置: 传统的VLAN组建工具一般都需要自建超级结点(如n2n的supernode), 需要在一台有公网ip的服务器上进行一系列的配置, 整体来说对新手比较劝退.
- 可以固定自定义ip: 这一点相对于Hamachi, 通过自建的网络, 我们可以自定义一个固定的ip, 你可以, 用192.168.1.1来访问云服务器1, 用192.168.1.2来访问云服务器2, 方便记忆, 而不是像Hamachi一样生成类似5.233.212.45这样的随机ip.
- 跨平台: ZeroTier提供了windows, macOS, linux, Android, iOS...几乎全平台的客户端, 你可以把任意平台的设备接入VLAN.
注: 本文所指的VLAN的建立都是指在ZeroTier官方的Earth网络下建立的VLAN, 还有另外一种自建Moon网络服务器的一种策略, 关于两种网络策略的功能差异本文不做赘述, 有兴趣的小伙伴可以自行查阅ZeroTier的官网.
介绍完毕, 正式开始讲解如何进行相关配置:
ZeroTier的VLAN配置包括两个部分, Network配置和Client配置, 前者可以理解成VLAN的路由器配置, 配置原理大概就类似于配置家用路由器.
Network配置:
1. 在这里注册ZeroTier账号并登陆
image<figcaption style="margin-top: 0.66667em; padding: 0px 1em; font-size: 0.9em; line-height: 1.5; text-align: center; color: rgb(153, 153, 153);">注册流程, 这里我直接用某歌账号登陆了, 没有条件的朋友可以直接注册账号(话说这种流程有必要单独截个图么?)</figcaption>
2. 登录后就可以配置我们的网络了
image点击创建网络后会在右侧列表生成一个新的网络, 点击进入配置详情页进行相关的配置:
网络基本配置如图所示:
image image<figcaption style="margin-top: 0.66667em; padding: 0px 1em; font-size: 0.9em; line-height: 1.5; text-align: center; color: rgb(153, 153, 153);">客户端授权及ip配置参考</figcaption>
image其他的高级的配置对于我们来说是不必要可, 可以根据自己的需求自行了解配置
Client配置:
这里提供一个通过chocolatey一键安装ZeroTier客户端的脚本:
# 如果已经安装过choco的可以不用执行第一行
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
choco install zerotier-one -y
安装后在开始菜单找到刚安装的应用启动
image image<figcaption style="margin-top: 0.66667em; padding: 0px 1em; font-size: 0.9em; line-height: 1.5; text-align: center; color: rgb(153, 153, 153);">在通知栏操作客户端填入网络id加入网络即可</figcaption>
将你所有需要加入虚拟局域网的设备都安装客户端并加入虚拟网络之后, 再次回到网络管理的页面, 允许你的设备加入网络, 并且你可以在右侧配置静态IP.
image<figcaption style="margin-top: 0.66667em; padding: 0px 1em; font-size: 0.9em; line-height: 1.5; text-align: center; color: rgb(153, 153, 153);">允许你的服务器访问VLAN并指定静态IP</figcaption>
之后测试ping一下几台机器:
image<figcaption style="margin-top: 0.66667em; padding: 0px 1em; font-size: 0.9em; line-height: 1.5; text-align: center; color: rgb(153, 153, 153);">测试ping, VLAN组建成功</figcaption>
搞定收工.
PS: 看完全文的同学如果觉得有什么不够清楚或者有疑问的地方可以直接在评论区提出, 我看到后会尽快回复, 如果关于文章结构有任何意见, 也欢迎提出, 赶蟹~
linux安装与加入方法
https://www.zerotier.com/download/
我这里是centos7.9
安装
curl -s https://install.zerotier.com | sudo bash
加入网络
复制下面代码,将YourNetWorkID从zerotier官方网站中复制到下面代码中
sudo zerotier-cli join YourNetWorkID
若出现”200 join OK”则添加成功
查看加入的网络
sudo zerotier-cli listnetworks
退出网络
复制下面代码,将YourNetWorkID从zerotier官方网站中复制到下面代码中
sudo zerotier-cli leave YourNetWorkID
若出现”200 leave OK”则添加成功