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

news2024/11/25 11:22:25

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

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

相关文章

yolov7 详解(1):yolov7 网络结构及创新点

文章目录 0. 概述1. 网络整体结构2.创新点2.1 创新点1:E-ELAN结构 (Extended efficient layer aggregation networks)ELAN结构2.2 创新点2: 模型缩放2.3 创新点3: 计划的重参数化卷积2.3.1 结构重参化原理2.3.2 什么是计划的重参数化卷积2.4 标签匹配策略论文: Trainable bag-…

【网络】协议与序列化反序列化

目录 一、相关概念 二、自定义协议 三、编写服务器 四、编写客户端 五、JSON 六、补充内容 一、相关概念 在《网络编程套接字》中,我们实现了服务器与客户端之间字符串的通信。但是更多的时候,需要传输的不仅仅是字符串,而是结构化的数…

奇思 妙想

一. main方法可以被其它方法调用吗? 在C语言中,一个工程内只能声明一个main函数,如果声明多个,则程序无法运行然后报错。Java则不同,Java在一个工程内,可以声明多个main方法,但在程序执行时&am…

搭建OIDC Provider,以Golang为例

搭建OIDC Provider,以Golang为例 1 需求 结合对OIDC:https://blog.csdn.net/weixin_45747080/article/details/131810562的理解,我尝试自己搭建OIDC的demo。在搭建demo之前,我需要先确定我想要实现成什么样子。以上文提到的http…

【算法|动态规划No.6】leetcode63. 不同路径Ⅱ

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

使用diagrams画架构图

序 最近发现一个画架构图的神器diagrams,提供了很多云厂商及开源组件的图标,相比于C4-PlantUML显得更专业一点。 之前写过技术文档画图工具箱,diagrams属于diagram as code工具派别。 mac安装 brew install graphviz pip install diagrams…

【Matlab】基于遗传算法优化 BP 神经网络的时间序列预测(Excel可直接替换数据)

【Matlab】基于遗传算法优化 BP 神经网络的时间序列预测(Excel可直接替换数据) 1.模型原理2.文件结构3.Excel数据4.分块代码4.1 arithXover.m4.2 delta.m4.3 ga.m4.4 gabpEval.m4.5 initializega.m4.6 maxGenTerm.m4.7 nonUnifMutation.m4.8 normGeomSel…

【模型压缩】 LPPN论文阅读笔记

LPPN论文阅读笔记 LPPN: A Lightweight Network for Fast Phase Picking 背景 深度学习模型的问题在于计算复杂度较高,在实际数据处理中需要面临较高的处理代价,且需要专用的加速处理设备,如GPU。随着数据累积,迫切需要设计一种…

IDE/mingw下动态库(.dll和.a文件)的生成和部署使用(对比MSVC下.dll和.lib)

文章目录 概述问题的产生基于mingw的DLL动态库基于mingw的EXE可执行程序Makefile文件中使用Qt库的\*.a文件mingw下的*.a 文件 和 *.dll 到底谁起作用小插曲 mingw 生成的 \*.a文件到底是什么为啥mingw的dll可用以编译链接过程转换为lib引导文件 概述 本文介绍了 QtCreator mi…

17 界面布局--登录界面

要点: 利用widgets做布局:水平,垂直,栅格 利用弹簧设置收缩 widget宽高比实际控件大很多:设置Fixed 如果需要去除其余边框间隙可以设置layout 将最小尺寸和最大尺寸设置为固定即为固定尺寸 设置窗口标题:wi…

基于DeepFace模型设计的人脸识别软件

完整资料进入【数字空间】查看——baidu搜索"writebug" 人脸识别软件(无外部API) V2.0 基于DeepFace模型设计的人脸识别软件 V1.0 基于PCA模型设计的人脸识别软件 V2.0 更新时间:2018-08-15 在观看了吴恩达老师的“深度学习课程”,了解了深…

关于新手学习Ubuntu使用vim,如何使用c/cpp的编译器以及如何使用makefile的详细记录

ubuntu下 首先如何编辑 1.启动vim编辑器 打开终端,输入vim,按回车键。 vim gcc.c 2.进入编辑模式 输入i ,进入插入模式。就可以修改文件内容了。 按“ESC”退出编辑模式。 3.退出 Shift键 “:”,切换到命令模式。 输入“q”后回车&…

基于OpenCV的红绿灯识别

基于OpenCV的红绿灯识别 技术背景 为了实现轻舟航天机器人实现红绿灯的识别,决定采用传统算法OpenCV视觉技术。 技术介绍 航天机器人的红绿灯识别主要基于传统计算机视觉技术,利用OpenCV算法对视频流进行处理,以获取红绿灯的状态信息。具…

【Linux】Tcp服务器的三种与客户端通信方法及守护进程化

全是干货~ 文章目录 前言一、多进程版二、多线程版三、线程池版四、Tcp服务器日志的改进五、将Tcp服务器守护进程化总结 前言 在上一篇文章中,我们实现了Tcp服务器,但是为了演示多进程和多线程的效果,我们将服务器与客户通通信写成了一下死循…

【Linux】 由“进程”过渡到“线程” -- 什么是线程(thread)?

知识引入初识线程1.什么叫做进程?2.什么叫做线程?3.如何看待我们之前学习的进程? 理解线程创建线程函数调用1.线程一旦被创建,几乎所有资源都是被线程所共享的2.与进程之间切换相比,线程的切换 初识线程总结&#xff1…

JWT 的使用

一、简介 JWT将用户的一些信息存储在客户端,访问后台时会带着JWT,服务器要对这个JWT进行检验。 由于signKey是存放在服务器端的,所以比较安全只要JWT被篡改就会立刻发现。 JWT认证的优势 1.简洁:JWT Token数据量小,传…

WebRTC带宽评估 -- Transport-wide Congestion Control

简述:在RTP包中增加transport-wide-cc扩展头,放置传输层面的包序号。视频接收端记录RTP包的接收时间,并通过RTCP Feedback消息反馈到视频发送端,发送端结合缓存的RTP包发送时间,基于丢包和延迟估算当前带宽&#xff0c…

zabbix 企业级监控 (3)Zabbix-server监控mysql及httpd服务

目录 web界面设置 server.zabbix.com 服务器操作 编辑 chk_mysql.sh脚本 查看web效果 web界面设置 1. 2. 3. 4. 5. 6. 7. 8. server.zabbix.com 服务器操作 [rootserver ~]# cd /usr/local/zabbix/etc/ [rootserver etc]# vim zabbix_agentd.conf UnsafeUserParameters1 Us…

Java当中的栈

栈的理解 栈(Stack)是一种受限的线性数据结构,所谓受限是指栈只暴露栈顶和栈底的操作,其底层是由数组实现的。栈的特性是先进后出。 常用方法 注意上面的peek()方法和pop()方法的区别! 实例 import java.util.Stack…

【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(7 月 19 日论文合集)

文章目录 一、分割|语义相关(12篇)1.1 Disentangle then Parse:Night-time Semantic Segmentation with Illumination Disentanglement1.2 OnlineRefer: A Simple Online Baseline for Referring Video Object Segmentation1.3 MarS3D: A Plug-and-Play Motion-Aware Model for…