【Zerotier】通过docker自建PLANET服务器

在如今全球互联的时代,我们对于互联网的依赖程度越来越高。然而,传统的网络连接方式在某些情况下可能会受到一些限制,例如局域网的范围限制、防火墙的阻断或者设备所处的多层NAT等。但是,现在有一个名为ZeroTier的工具出现了,它为我们提供了一种创新的解决方案,可以打破这些限制,搭建一个私密的P2P网络。事实上,ZeroTier可以被看作是在互联网上搭建一个与局域网类似的网络环境。

简单来说,ZeroTier充当了一个点对点的虚拟私有网络(VPN),将你的各个设备连接在一起,使其可以直接互联,就好像它们在同一个局域网内一样。这意味着,你可以轻松地在公司使用手机访问家里的NAS,或者直接与遥远的团队成员共享文件,而无需经过繁琐的设置和第三方服务器的中转。与传统VPN相比,ZeroTier有其独特的优势。它通过使用STUN和隧道技术,允许设备直接在NAT后进行通信,绕过了繁琐的端口映射和配置。这种P2P连接方式不仅提供了更好的网络性能和安全性,还可以在跨越不同网络和地理位置的设备之间建立起即时可用的连接。

无论是远程办公、跨地域协作还是私人网络搭建,ZeroTier都为我们提供了一种简单又强大的解决方案。它彻底改变了传统网络连接的限制,为我们的数字生活带来了更大的便捷和灵活性。让我们深入探索ZeroTier,发现这个令人激动的技术如何在当今互联网时代引领我们进入全新的网络连接方式。

简单拓扑图

在这里插入图片描述

专有名词

PLANET :行星服务器,Zerotier 根服务器

MOON :卫星服务器,起到代理加速的作用

LEAF :网络客户端,就是每台连接到网络节点。

为什么要自建PLANET服务器

必要条件

  • 具有公网ip的服务器
  • 安装 docker
  • 防火墙开放TCP端口 3443/9993 和UDP端口 9993

复制项目源码

git clone https://github.com/xubiaolin/docker-zerotier-planet.git

运行deploy.sh脚本

./docker-zerotier-planet/deploy.sh
欢迎使用zerotier-planet脚本,请选择需要执行的操作:
1. 安装
2. 更新
3. 复制planet文件到当前目录
其他任意键退出

截图如下:在这里插入图片描述根据提示选择即可,操作完成会自动部署
整个脚本预计需要 3-10 分钟,具体需要看网络与机型
当您看到类似如下字样时,表示安装成功
在这里插入图片描述

注意在此处项目里面自动启动的DOCKER镜像,因为没有数据固化,每次重启后,登录ztncui的用户名密码,以及配置信息都会丢失。我们需要删除DOCKER镜像,重新用以下命令开启。

docker rm -f -v  zerotier-planet
docker volume create zerotier-app
docker volume create zerotier-one
docker run -d -v zerotier-app:/app -v zerotier-one:/var/lib/zerotier-one -p 9993:9993 -p 9993:9993/udp -p 127.0.0.1:3443:3443 --name zerotier-planet --restart unless-stopped zerotier-planet

以下是对上面命令行的详细解释:

docker rm -f -v zerotier-planet

这条命令用于强制删除名为zerotier-planet的Docker容器,并移除与容器关联的卷(如果存在)。-f选项表示强制删除容器,即使它正在运行。-v选项表示同时移除与容器关联的卷。

docker volume create zerotier-app
docker volume create zerotier-one

这两条命令分别用于创建两个Docker Volume。第一个命令创建名为zerotier-app的卷,而第二个命令创建名为zerotier-one的卷。

docker run -d -v zerotier-app:/app -v zerotier-one:/var/lib/zerotier-one -p 9993:9993 -p 9993:9993/udp -p 127.0.0.1:3443:3443 --name zerotier-planet --restart unless-stopped zerotier-planet

这条命令用于运行一个名为zerotier-planet的Docker容器。其中:

-d选项表示将容器在后台运行(以守护态运行)。
-v zerotier-app:/app选项将名为zerotier-app的卷挂载到容器的/app目录。
-v zerotier-one:/var/lib/zerotier-one选项将名为zerotier-one的卷挂载到容器的/var/lib/zerotier-one目录。
-p 9993:9993选项表示将主机的端口9993映射到容器的端口9993,用于TCP流量。
-p 9993:9993/udp选项表示将主机的端口9993映射到容器的端口9993,用于UDP流量。
-p 127.0.0.1:3443:3443选项表示将主机的端口127.0.0.1:3443映射到容器的端口3443,只允许本地访问。
--name zerotier-planet选项为容器指定名称为zerotier-planet
--restart unless-stopped选项表示当容器停止后除非手动停止,否则会自动重新启动。
zerotier-planet是要运行的镜像名称,由该名称的解析来自于Docker镜像仓库。

访问http://ip:3443进入controller页面
在这里插入图片描述默认用户名: admin
默认密码:password
在这里插入图片描述根据自己情况重置密码即可。
在这里插入图片描述

下载 planet 文件

脚本运行完成后,会在/tmp/目录下有个planet 文件

下载该文件以备用

客户端配置

关于客户端的配置请参阅github项目作者的介绍。

私有部署zerotier-planet服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/6675.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言进阶】文件操作

🔥博客主页:小王又困了 📚系列专栏:C语言 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、什么是文件 1.1程序文件 1.2数据文件 1.3文件名 二、文件的打开和关闭 2…

银河麒麟服务器v10 sp1 nginx 部署项目

上一篇:银河麒麟服务器v10 sp1 nginx开机自动启动_csdn_aspnet的博客-CSDN博客 由于项目为前后端分离,前端项目使用nginx部署,VUE项目打包后上传至银河麒麟服务器: 8063 为前端项目文件目录,修改配置 ,默认…

脑电信号处理与特征提取——三. 脑电实验设计的原理与实例(古若雷)

三、脑电实验设计的原理与实例 被试间设计的实验结果也有可能是人员不同造成的,所以建议被试内设计。

双端队列(deque)与优先队列(priority_queue)

文章目录 一.双端队列——deque1.deque的优点与缺点2.deque的原理 二.优先队列——priority_queue1.什么是优先队列?2.优先队列的基本使用3.什么是仿函数?4.优先队列的模拟实现 一.双端队列——deque 在上一章stack、queue的模拟实现中,我们…

Mysql 数据库开发及企业级应用

文章目录 1、Mysql 数据库开发及企业级应用1.1、为什么要使用数据库1.1.1、数据库概念(Database)1.1.2、为什么需要数据库 1.2、程序员为什么要学习数据库1.3、数据库的选择1.3.1、主流数据库简介1.3.2、使用 MySQL 的优势1.3.3、版本选择 1.4、Windows …

【VUE】解决图片视频加载缓慢/首屏加载白屏的问题

1 问题描述 在 Vue3 项目中,有时候会出现图片视频加载缓慢、首屏加载白屏的问题 2 原因分析 通常是由以下原因导致的: 图片或视频格式不当:如果图片或视频格式选择不当,比如选择了无损压缩格式,可能会导致文件大小过大…

unity 控制text根据字数自动扩展大小,并扩展UI背景

需求:文字内容位置保持不变,向下增加,背景框随之同步扩展。 1.UGUI 九宫格 拉伸 对背景框图片资源处理,避免图片拉伸。 (10条消息) unity UGUI 九宫格 拉伸_unity九宫格拉伸_野区捕龙为宠的博客-CSDN博客 2.背景框添加组件 3.…

php裁剪图片,并给图片加上水印

本次以裁剪四个图片为例,图片如下 代码如下 public function cutImg($imgUrl){try{// 读取原始图片$src_img imagecreatefromjpeg($imgUrl);// 获取原始图片的宽度和高度$src_width imagesx($src_img);$src_height imagesy($src_img);// 计算每个部分的宽度和高…

【数字信号处理】带通采样定理及其MATLAB仿真

目录 一、带通采样定理1.1 内容1.2 公式推导 二、MATLAB信号仿真2.1 信号仿真实验2.2 MATLAB代码 三、总结参考 一、带通采样定理 按照奈奎斯特采样定理(低通采样),采样频率 f s f_{s} fs​ 要大于等于信号中最高频率 f m a x f_{max} fmax​ 的2倍,才…

C++OpenCV(2):图像处理基础概念与操作

🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 🔆 OpenCV项目地址及源代码:点击这里 文章目录 图形读取与显示加载图片显示图片打印图片信息保存图片 色彩模型转换RGB颜色模型HSV颜色模型HLS模型LAB模型 图像像素读写操作像素算数运…

macOS 源码编译 qpress

╰─➤ git clone https://github.com/PierreLvx/qpress.git ╰─➤ cd qpress ╰─➤ make g -O3 -o qpress -x c quicklz.c -x c qpress.cpp aio.cpp utilities.cpp -lpthread -Wall -Wextra -Werror ╰─➤ sudo make install …

怎么快速定位bug?怎么编写测试用例?

目录 01定位问题的重要性 02问题定位技巧 03初次怎么写用例 作为一名测试人员如果连常见的系统问题都不知道如何分析,频繁将前端人员问题指派给后端人员,后端人员问题指派给前端人员,那么在团队里你在开发中的地位显而易见 ,口碑…

垃圾回收标记阶段算法

1.标记阶段的目的 主要是在GC在前,判断出哪些是有用的对象,哪些是需要回收的对象,只有被标记为垃圾对象,GC才会对其进行垃圾回收。判断对象是否为垃圾对象的两种方式:引用计数算法和可达性分析算法。 2.引用计数算法…

如何搭建使用dubbo-Admin?

dubbo-Admin介绍 一款用于dubbo可视化界面操作的管理平台 dubbo-Admin特点 dubbo-Admin是dubbo的管理界面平台,且是一个前后端分离的项目,前端使用vue,后端使用springboot。 软件下载 dubbo-admin-0.5.0.zip 软件使用

会议OA项目之会议审批(亮点功能:将审批人签名转换为电子手写签名图片)

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于OA项目的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.主要功能点介绍 二.效果展示 三.前端…

MongoDB 的日常使用

一、简介 1、 常见的数据库分类 RDBMS(关系型数据库):常见的关系型数据库有 Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL; NoSQL(非关系型数据库):常见的非关系型数据库有 …

thinkphp实现无限分类(使用递归)

thinkphp实现无限分类(使用递归) 本文实例为大家分享了thinkphp实现无限分类的详细代码,希望对大家学习无限分类有所启发。 数据库:test 数据表:(tp_category): Common/conf/conf…

在VSCode中实现Rust编程调试指南

在 VS Code 中调试 Rust:终极指南 在本教程中,您将学习如何使用 VS Code 调试 Rust。可用于使用 VS Code 调试 Rust 的操作。设置 VS Code 来调试 Rust Rust因其易用性、安全性和高性能而继续保持其作为最受欢迎的编程语言的地位。随着 Rust 的流行&…

elementui el-table折叠表格,点击主表数据展开从表明细

用element-ui 的el-table实现&#xff1a;主表table可实现展开行显示关联的明细表table的列表数据&#xff0c;效果图如下 <el-tableref"tableData"v-loading"listLoading":data"tableData"row-key"id"borderstripehighlight-curr…

自动驾驶感知系统-激光雷达

感知系统 现有的车载传感器主要包括超声波雷达、激光雷达、毫米波雷达、车载摄像头、红外探头等。主流的自动驾驶感知平台以雷达和车载摄像头为主&#xff0c;呈现多传感器融合发展趋势。基于测量能力和环境适应性&#xff0c;预计雷达和车载摄像头会保持其感知平台霸主地位&a…