使用ECS搭建Zerotier虚拟局域网

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 使用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。这里也算是给大家提供一个方案吧,当你希望将一些大型项目部署在远程,但云服务器性能不足以支撑起项目时,可以用云服务器作为跳板,组建网络,转发至网络内的高性能本地主机,祝大家都可以愉快玩耍,希望我这篇文章可以通过续期任务。

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
10月前
|
机器学习/深度学习 并行计算 TensorFlow
anaconda迁移深度学习虚拟环境 and 在云服务器上配置(下)
anaconda迁移深度学习虚拟环境 and 在云服务器上配置
192 0
|
1天前
|
运维 Java 测试技术
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
9 3
|
1月前
|
域名解析 监控 安全
虚拟服务器注册教程
云主机提供全球机房选择、灵活配置及客户支持。购买时要考虑CPU、内存、硬盘和流量需求,推荐根据预算选择不同套餐。本文介绍了如何快速注册云主机,购买流程包括选择套餐、注册/登录、支付和管理主机。
25 0
虚拟服务器注册教程
|
6月前
|
应用服务中间件 开发工具 Android开发
Tomcat配置虚拟路径,使上传文件与服务器分离
Tomcat配置虚拟路径,使上传文件与服务器分离
67 0
|
10月前
|
机器学习/深度学习 并行计算 PyTorch
anaconda迁移深度学习虚拟环境 and 在云服务器上配置(上)
anaconda迁移深度学习虚拟环境 and 在云服务器上配置
480 0
|
11月前
|
前端开发 PHP
web开发HTML生成PDF的三种解决方案(服务器端mpdf、html2canvas.js、浏览器打印、PDF虚拟打印机)
web开发HTML生成PDF的三种解决方案(服务器端mpdf、html2canvas.js、浏览器打印、PDF虚拟打印机)
932 0
|
11月前
|
存储 移动开发 JavaScript
MP4大文件虚拟HLS分片技术,避免服务器大量文件碎片
MP4大文件虚拟HLS分片技术,避免服务器大量文件碎片
286 0
|
IDE Linux 开发工具
git clone 从GitHub上下载项目到服务器上运行+创建虚拟环境
可先进入需要放置文件的路径之下
1105 0
|
弹性计算 固态存储
阿里云服务器的vCPU是什么意思?虚拟CPU?
阿里云服务器的vCPU是什么意思?虚拟CPU?阿里云服务器vCPU和CPU是什么意思?CPU和vCPU有什么区别?一台云服务器ECS实例的CPU选项由CPU物理核心数和每核线程数决定,CPU是中央处理器,一个CPU可以包含若干个物理核,通过超线程HT(Hyper-Threading)技术可以将一个物理核变成两个逻辑处理核。vCPU(virtual CPU)是ECS实例的虚拟处理核。云服务器吧来详细说下阿里云服务器CPU和vCPU的区别:
1501 0
|
存储 弹性计算 Ubuntu
AWS虚拟服务器EC2实战
AWS虚拟服务器EC2实战
245 0