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

news/2024/12/21 10:23:20/

在如今全球互联的时代,我们对于互联网的依赖程度越来越高。然而,传统的网络连接方式在某些情况下可能会受到一些限制,例如局域网的范围限制、防火墙的阻断或者设备所处的多层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.ppmy.cn/news/973819.html

相关文章

内存的五大分区(自用水文)

1、堆区(heap)——由程序员分配和释放, 若程序员不释放,程序结束时一般由操作系统回收。注意它与数据结构中的堆是两回事 2、栈区(stack)——由编译器自动分配释放 ,存放函数的参数值&#xff0…

Matlab求解基于RRT算法的自定义垛型的路径避障

目录 背景 1 RRT搜索算法 2 基于Matlab的RRT搜索算法 3 基于Matlab的自定义垛型绘制 4 基于RRT算法的自定义垛型的路径避障 背景 在码垛机械臂路径规划过程中,需要根据现有箱子的码垛状态,给出下一个箱子的最佳码放无碰撞路径。RRT 快速搜索随机…

访客报警定位管理系统:提升安全管理水平的创新解决方案

在当前日益复杂的安全环境下,保障人员安全、提高安全响应能力和管理效率成为了各行各业的首要任务。 作为一种先进的安全管理解决方案,访客报警定位管理系统凭借其独特的优势和广泛的应用场景,正逐渐成为各行业安全管理的重要工具。 那么&a…

我开源了一个思维导图

在线地址:https://wanglin2.github.io/mind-map/#/index 仓库地址:https://github.com/wanglin2/mind-map 起源 我对思维导图最初的了解来源于我的老婆,她很喜欢用思维导图来记录各种东西,看的多了,作为一个前端&…

Linux下安装Mysql (CentOS 7) 详解

文章目录 前言环境检查查看是否安装MySql查看系统版本 源安装安装mysql的yum源官网下载从windows上传到linuxrz命令 方法2: 安装Mysql常见错误密钥问题安装后查看mysql是否可以工作查看是否安装成功启动服务 登录mysql配置文件方法(免密码) 使…

C# ScrollViewer与listview滑动冲突

记录一次ScrollViewer与listview嵌套滑动冲突解决方法 我的需求是listview自适应不可滑动,外层ScrollViewer可滑动 1.需要先保证ScrollViewer能滑动,里面先不嵌套listveiw,随便写个布局设置超长高度,确保能滑动,如果…

【项目 进程5】 2.10 进程间通信简介 2.11匿名管道概述 2.12父子进程通过匿名管道通信

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 2.10 进程间通信简介(IPC iner process communication)Linux进程间通信的方式(记) 2.11匿名管道概述匿名管道管道的特点(记&…

小狐狸ChatGPT付费创作系统V2.1.2独立版 +WEB端+H5端+小程序源码

针对ChatGPT付费创作系统V2.1.0提供最新的对应版本小程序端全套测试,上一版本增加了PC端绘画功能,绘画功能采用其他绘画接口-意间AI,本版新增了百度文心一言接口。后台一些小细节的优化及一些小BUG的处理,前端进行了些小细节优化&…