使用ECS搭建Zerotier虚拟局域网

简介: 使用ECS创建Zerotier MOON节点,加入Zerotier网络,从而大幅降低各PLANET节点直连延迟,搭建私人的虚拟局域网

第一部分

作者目前就读于西安电子科技大学,计算机硕士一年级。其实大学期间就知道云服务器包括阿里云的云翼计划等,不过本科期间对云服务器没有什么需求就没有继续了解过。读研期间因为个人业余时间多了起来,而且通过云服务器拿到公网ip也可以做一些实验和其他便利自己的操作,就在知乎等地方对比了一下几个云服务器提供商的方案,最后选了阿里云来入门云服务器。

第二部分

使用场景

本地网络联机游戏
远程桌面
程序远程调试
远程文件传输等

前情提要

Zerotier作为一款开源异地虚拟局域网构建工具,已经被广泛关注和应用,相比蒲公英、花生壳等工具,ze ro tier免费、可加入节点多,数据传输安全,但有时两台都在内网的主机打通udp隧道较为困难,而且通常延迟较高,好在官网提供了解决方案,即使用一台接入公网的主机作为MOON节点,用于初始化打通两节点之间的隧道,使延迟可以从几百ms降至十几ms,故我选择了阿里云2核2g内存的ecs作为moon节点,十分有效。

ecs/MOON端

出于个人习惯,我选择ubuntu20.04作为操作系统
1.下载Zerotier
参考官网指南

curl -s https://install.zerotier.com | sudo bash

2.启动zerotier服务

service zerotier-one start

3.加入zerotier网络

zerotier-cli join <your_network_id>

之后在web端控制台允许此节点接入网络
4.生成MOON节点
首先进入zerotier目录“/var/lib/zerotier-one”

cd /var/lib/zerotier-one
zerotier-idtool initmoon identity.public >> moon.json

然后修改moon.json

{
  ..
  {
    ..
    ”stableEndpoints”:[]
  }
  ..
}

添加ECS的公网ip地址

{
  ..
  {
    ..
    ”stableEndpoints”:[“<your_ip_addr>/9993”]
  }
  ..
}

保存并退出
5.生成签名文件

Zerotier-idtool genmoon moon.json

命令执行后,当前目录生成一个名为000000xxxxxxxxxx.moon的文件

其他主机/PLANET端

6.配置moon
将签名文件放在当前目录的子目录“moons.d”(首次需要新建目录)下,并拷贝该签名文件至所有需要配置moon节点的主机中,对于windows系统的节点,找到该路径“C://ProgramData/Zerotier/One/”,在此目录下新建moons.d文件夹,并放入签名文件。最后重启zerotier服务

Service zerotier-one restart

7.测试效果
使用命令:

Zerotier-cli peers

查看各节点状态(windows系统下zerotier-cli位于“C://Program Files(x86)/ZeroTier/One/”下),
出现为“MOON”的节点则配置成功,如果MOON节点对应为“—1–”,等待一段时间即可自动修改为ecs公网ip地址,可以通过分别ping moon节点的公网地址和虚拟局域网内网地址对比延迟来确定是否打通局域网。

第三部分

通过“高校学生在家实践”的活动还是学到了不少关于服务器的基本操作,对于一些没有实习过、没参与过什么项目的学生,这个活动确实可以让学生体验并了解一些实际开发环境,对我个人而言,通过有公网ip的主机搭建异地虚拟局域网让我的个主机之间通信延迟降到了极低,甚至可以媲美本地运行的程度,主机间文件传输也变得相当便利,而且云服务器还可以体验一些有趣的项目比如部署code-server,在浏览器端使用vscode。这里也算是给大家提供一个方案吧,当你希望将一些大型项目部署在远程,但云服务器性能不足以支撑起项目时,可以用云服务器作为跳板,组建网络,转发至网络内的高性能本地主机,祝大家都可以愉快玩耍,希望我这篇文章可以通过续期任务。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
机器学习/深度学习 并行计算 TensorFlow
anaconda迁移深度学习虚拟环境 and 在云服务器上配置(下)
anaconda迁移深度学习虚拟环境 and 在云服务器上配置
221 0
|
8天前
|
Web App开发 安全 网络安全
tplink虚拟服务器设置方法
为了更全面地理解云服务及其在企业应用中的角色,推荐访问,他们提供了一系列高性能、安全稳定的云服务器解决方案,包括但不限于香港云服务器、高防服务器等,特别适合寻求全球化业务扩展的企业。蓝易云不仅拥有全球化的基础设施布局,还提供针对各种行业定制的全栈云解决方案,助力企业实现云端部署,跨越传统界限,即刻启航云端之旅。
17 0
|
3月前
|
网络协议 Linux Shell
如何在运行Centos 6的虚拟服务器上安装cPanel
如何在运行Centos 6的虚拟服务器上安装cPanel
26 0
|
5月前
|
运维 Java 测试技术
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
45 3
|
6月前
|
域名解析 监控 安全
虚拟服务器注册教程
云主机提供全球机房选择、灵活配置及客户支持。购买时要考虑CPU、内存、硬盘和流量需求,推荐根据预算选择不同套餐。本文介绍了如何快速注册云主机,购买流程包括选择套餐、注册/登录、支付和管理主机。
62 0
虚拟服务器注册教程
|
11月前
|
应用服务中间件 开发工具 Android开发
Tomcat配置虚拟路径,使上传文件与服务器分离
Tomcat配置虚拟路径,使上传文件与服务器分离
101 0
|
机器学习/深度学习 并行计算 PyTorch
anaconda迁移深度学习虚拟环境 and 在云服务器上配置(上)
anaconda迁移深度学习虚拟环境 and 在云服务器上配置
578 0
|
前端开发 PHP
web开发HTML生成PDF的三种解决方案(服务器端mpdf、html2canvas.js、浏览器打印、PDF虚拟打印机)
web开发HTML生成PDF的三种解决方案(服务器端mpdf、html2canvas.js、浏览器打印、PDF虚拟打印机)
1459 0
|
存储 移动开发 JavaScript
MP4大文件虚拟HLS分片技术,避免服务器大量文件碎片
MP4大文件虚拟HLS分片技术,避免服务器大量文件碎片
376 0
|
IDE Linux 开发工具
git clone 从GitHub上下载项目到服务器上运行+创建虚拟环境
可先进入需要放置文件的路径之下
1374 0