zerotier实现内网穿透

zerotier的内网穿透

  • 前言
  • 一、zerotier的框架认知
  • 二、客户端安装设置
    • 1.linux
    • 2.windows


前言

摸索了一阵,看了好几篇,没有讲清楚。争取这次说清楚。


一、zerotier的框架认知

先认识一下zerotier的框架,这样如何处理就很好理解了。
首先上zerotier网站注册,网站给一个16位的网络号,可能交钱的用户可以有多个虚拟网络号。
有了这个网络号,就可以把需要的机器,加入这个虚拟网络。当然需要加入这个网络的先安装客户端,然后在客户端填入需要加入的网络号。
客户端加入后,zerotier就会自动分配一个内网ip地址,比如192.168.193.xxx,然后同一个网段的机器之间就可以互相访问了。
以上都是用的zerotier的默认设置,如果改变设置,可以在网页的setting部分去更改,每个网络号都有个setting部分。
1.Basics中,重要的是:acess control
是private,还是public。如果是private,每个加入这个网络号的都需要在网站上授权(选中一个客户端就可以点击authorize、Deauthorize),比较安全。
切记,在basic setting中最好选择private,否则别人只要知道了这个网络号就可以加入你的VPN了。
2.高级设置中
1.路由(Managed Routes ),最好在设置完ip地址后再设置。
2.IPv4 Auto-Assign,可以选择easy,那就系统帮你定ip段。也可以用advanced,自己设定ip段,为了好输入,我自己输入了192.168.222.1-99。
这个网络段一定注意不要和你的真实内网重叠。比如你办公室是192.168.5.0/24,你家里是192.168.1.0/24,那么你的zerotier虚拟网就不要使用这两个网络段了。
当你选定网络段后,你还可以到最上端Members部分,直接修改某客户端的ip地址,比如为了便于记住家里路由器中ip地址,把最后一段改成22,这样路由器的地址就是192.168.222.22。路由设置中会用到。
3.回到路由设置。默认系统有了一个192.168.222.0/24 (LAN)的路由,代表这个网段的机器间能互相访问。
其中你还可以添加其他路由。比如,你的笔记本在外想访问家里所有机器,但不想在家里所有机器都安装zerotier客户端,只在路由器上安装了,并且路由器ip是192.168.222.22,家里内网地址段是192.168.1.0,那么你需要告诉zerotier所有去192.168.1.0的数据都通过192.168.222.22转发(至于家里路由器中的防火墙设置另说,但首先得让zerotier知道这个路由,这个只能在zerotier网站上设置),就增加路由,就是在add routes中,destination是192.168.1.0/24,via 直接填ip地址192.168.222.22,submit后上面就能看到这个路由。路由的意思也就很明白。
同理,如果办公室还有一个zerotier的中转,也需要添加一条相似的路由。
注意:
1.这是告诉zerotier网络的转发,所以必须在zerotier网站设置。
2.这种路由设置只能让有zerotier客户端的机器能够访问到所有内网,还不能让内网中没有安装zerotier客户端的机器访问到zerotier整个网络。
——让内网中没有安装zerotier客户端的机器访问到zerotier网络:需要在家中路由器中设置。如果内网中安装了zerotier客户端的不是路由器,就更复杂了。这个复杂在于:内网中的网关都是你的路由器,一般的访问都是通过网关转发,但你想让去zerotier虚拟网的访问用另外一个网关,就得让每台机器知道你的想法,设置两个网关。

二、客户端安装设置

1.linux

如果是openwrt用Luci界面就比较简单,有的已经安装了zerotier的软件包,直接开启,并添加自己的网络号就可以了。
——其中的NAT是否要勾选?应该勾选,目的是让这个路由器由能力将外部zerotier终端发来的包转发到内网。是对zerotier网站上设置转发路由的呼应。
后面按照如下思路进行设置:
1.openwrt的网络-接口中,添加接口。在openwrt默认有LAN、wan、wan6接口。
“添加新接口”按钮:
接口名称自己定如abcd1都可以,但是为了方便记忆,假设我们的接口名称位zerotier1,后面用这个名字进行配置。
协议选择:静态地址,因为路由器的ip在之前zerotier网站中已经设置好了(如例子中,便于记忆的192.168.222.22);
包括以下接口中,选择带“zt7……”那个以太网适配器。
这样,zerotier的网络接口就定义好了。
多说一句,正常linux系统中不需要定义一个接口的别名,直接用eth0、zt7……等物理名称就可以了。但是openwrt中,使用UCI之后,在uci层面增加了一层对接口的定义,这样一个LAN口可以包含多个物理接口,还可以进行桥接。
2.建立好zerotier1后,对这个接口进行配置,openwrt中有四项:基本设置、高级设置、物理设置、防火墙设置。
——基本配置中,需要设置ip地址和子网掩码,其他默认就行了。当然 ip就是192.168.222.22,掩码就是255.255.255.0,网关应该不需要,因为都在192.168.222这个网段,不会需要网关就不填了。
——高级设置,物理设置就默认就可以。
——防火墙设置。其实在这里不是设置防火墙具体内容,而只是给防火墙划一个区,具体的防火墙设置还要到防火墙中去设置。 openwrt有防火墙区域,打开LAN、WAN都可以看到他们属于哪个防火墙区域。默认,LAN中接口属于LAN区域,wan、wan6属于WAN区。同一个区内使用同一个防火墙规则,设置防火墙区就便于管理。
所以基本为了安全可以有两种方法,一种是将zerotier1归到LAN区域,这样lan和zerotier1使用同一个防火墙规则。另外一种就是单独给zerotierVPN设立一个区,在“新建”中输入一个区域名字(比如VPN)给zerotier1,然后保存并应用,这样就有三个防火墙区域。
3.防火墙的设置。
到网络-防火墙页面,看到四项:基本设置、端口转发、通讯规则、自定义。这里只需调整基本设置,其余不用调整。
——在基本设置中,常规设置内容默认就行,对于区域的需要进行调整。
假设,zerotier单独形成一个区。那么就有三个区。lan、wan不用调整。在新的VPN区进行修改。首先允许出站入站外,允许VPN的转发,目的是为了由VPN区转发到其他区,便于外部zerotier终端电脑访问整个内部内容。然后允许VPN区转发到lan区和接受lan区来的数据,所以允许转发到和允许从哪儿转发中勾选lan。这样就允许转发到lan区,或者从lan区发来的转发到VPN区。

到此。设计就结束了。后面就进行测试了。
新增

如果没有安装,更新包,然后找到zerotier的包安装。或者ssh登录用命令行安装

命令行安装:

opkg update
opkg install zerotier-one

其他linux安装zerotier:也可以使用 apt 或 yum 更新 zerotier-one。

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

linux中zerotier的命令:

# 加入网络命令,操作成功则返回 “200 join OK” 
sudo zerotier-cli join  ###########
# 查看当前连接的网络,如果列表中出现 Network ID、Name 说明连接成功,后台分配好IP后再查看IP地址也会出现。
sudo zerotier-cli listnetworks
# 返回信息 “200 info ########### 1.10.6 ONLINE”
zerotier-cli status
#手动启动
sudo systemctl start zerotier-one.service
# 开机自启动,成功怎返回值的最后会有“enable zerotier-one”字样
sudo systemctl enable zerotier-one.service
# 查看当前连接的网络,如果列表中出现 Network ID、Name 说明连接成功,后台分配好IP后再查看IP地址也会出现。
sudo zerotier-cli listnetworks
# 断开网络命令,操作成功则返回 “200 leave OK”
sudo zerotier-cli leave ###########
#停止zerotier
sudo systemctl stop zerotier-one 或sudo service zerotier-one start
#卸载(根据不同系统)ubuntu、Debian用
sudo dpkg -P zerotier-one 
sudo rm -rf /var/lib/zerotier-one/
# CentOS、Redhat 用
sudo rpm -e zerotier-one 
sudo rm -rf /var/lib/zerotier-one/

2.windows

简单,安装后只要添加一下网络号,在zerotier中授权。


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

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

相关文章

从0开始学PHP面向对象内容之常用设计模式(策略,观察者)

PHP设计模式——行为型模式 PHP 设计模式中的行为模式(Behavioral Patterns)主要关注对象之间的通信和交互。行为模式的目的是在不暴露对象之间的具体通信细节的情况下,定义对象的行为和职责。它们常用于解决对象如何协调工作的问题&#xff…

Python办公——openpyxl处理Excel每个sheet每行 修改为软雅黑9号剧中+边框线

目录 专栏导读背景1、库的介绍①:openpyxl 2、库的安装3、核心代码4、完整代码5、最快的方法(50万行44秒)——表头其余单元格都修改样式总结 专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍…

【AI系统】TVM 实践案例

TVM 实践案例 在本文我们探讨一下,如何利用 AI 编译器在新的硬件上部署一个神经网络,从算法设计到实际运行,有哪些需要考虑的地方?本节将以 TVM 为例,首先介绍一下 TVM 的工作流: 导入模型。TVM 可以从 Te…

【AI系统】昇腾异构计算架构 CANN

昇腾异构计算架构 CANN 本文将介绍昇腾 AI 异构计算架构 CANN(Compute Architecture for Neural Networks),这是一套为高性能神经网络计算需求专门设计和优化的架构。CANN 包括硬件层面的达芬奇架构和软件层面的全栈支持,旨在提供…

C++:map容器——自定义数据类型进行自定义排序规则

map容器和set容器自带排序操作,但是,对于自定义数据类型,二者必须指定排序规则。本文以map容器为例,针对自定义数据类型作为key值的指定排序进行程序实现。 首先,自定义数据类型:Person类,该类将…

Vue Web开发遇到问题汇总

1.Vue Web开发遇到问题汇总 1.1. vue项目main.js文件下import router from ‘./router‘默认导入router文件夹下index.js的原因 vue项目main.js文件下import router from ./router’默认导入router文件夹下index.js的原因 import router from ./router //等效于 //import rou…

lua download

https://www.lua.org/ https://www.lua.org/versions.html#5.4

CentOS7:MySQL 8.0.36升级到8.0.40

文章介绍RPM形式进行小版本升级。 1、查看系统版本 ldd --version 2、下载相应的MySQL rpm包 MySQL :: Download MySQL Community Server 3、查看现有MySQL安装的rpm rpm -qa |grep mysql 如图,有6个rpm包安装。 4、电脑上解压下载的rpm压缩包,对应…

【element-tiptap】添加公式编辑器【MathQuill】

前言:前面的文章【element-tiptap】实现公式编辑 中,已经实现了一种非常简单的公式编辑,键入latex公式直接在文档中转换。今天讲的另一个更加复杂的公式编辑器的扩展,双击公式的时候弹出公式编辑的弹窗,可以对公式进行…

SpringBoot源码-Spring Boot启动时控制台为何会打印logo以及自定义banner.txt文件控制台打印

1.当我们启动一个SpringBoot项目的时候,入口程序就是main方法,而在main方法中就执行了一个run方法。 SpringBootApplication public class StartApp {public static void main(String[] args) {// testSpringApplication.run(StartApp.class);} }publi…

【人工智能-基础】SVM中的核函数到底是什么

文章目录 支持向量机(SVM)中的核函数详解1. 什么是核函数?核函数的作用:2. 核技巧:从低维到高维的映射3. 常见的核函数类型3.1 线性核函数3.2 多项式核函数3.3 高斯径向基函数(RBF核)4. 总结支持向量机(SVM)中的核函数详解 支持向量机(SVM,Support Vector Machine)…

【Docker】Docker 容器日志过大导致磁盘爆满

docker容器的日志文件目录位于/var/lib/docker/containers/容器/容器-json.log 查看日志大小 cd /var/lib/docker/containers/ du -h --max-depth1 临时删一点 cd xxxxxxx/ tail -100 xxxxxxx-json.log > xxxxxxx-json.log 如图 解决方式(全局) …

SpringBoot集成Milvus|(实现向量的存储和查询)

此文章为转载文章: 原文链接 文章目录 SpringBoot集成Milvus|(实现向量的存储和查询)前言一、Milvus介绍二、Milvus数据库安装 1.Milvus安装环境准备(centos7)2.Milvus客户端安装3.attu新建Milvus集合 三、Milvus集成 1.依赖引入2…

数据结构__01

六.图 一.定义 1.有向图 2.无向图 3.完全图 4.子图 5.度 6.路径以及长度 7.简单路径 回路 简单回路 二.图的存储结构 1.邻接矩阵 有向图 无向图 有向网 2.邻接矩阵的优缺点 (行出列入) 3.邻接表 三.图的遍历 深度优先遍历 广度优先遍历 四.图的应用 …

嵌入式蓝桥杯学习1 电量LED

cubemx配置 1.新建一个STM32G431RBT6文件 2.在System-Core中点击SYS,找到Debug(设置为Serial Wire) 3.在System-Core中点击RCC,找到High Speed Clock(设置为Crystal/Ceramic Resonator) 4.打开Clock Configuration &#xff0…

【网络】协议与网络传输

目录 一、协议 1.1 认识协议 1.2 协议分层 二、OSI七层模型 三、TCP/IP五(四)层模型 四、网络传输 4.1 数据包封装与分用 4.2 网络传输基本流程 4.2.1 以太网通信 (1)原理 (2)数据碰撞问题 (3)…

【力扣】3274. 检查棋盘方格颜色是否相同

一、题目 给你两个字符串 coordinate1 和 coordinate2,代表 8 x 8 国际象棋棋盘上的两个方格的坐标。以下是棋盘格的参考图: 如果这两个方格颜色相同,返回 true,否则返回 false。坐标总是表示有效的棋盘方格。坐标的格式总是先字…

JavaWeb12

登陆拦截 会话技术 会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含多次请求和响应 会话跟踪:一种维护浏览器状态的方法,服务器需要识…

使用STM32CubeMX配置串口各种功能

使用STM32CubeMX配置串口各种功能 STM32CubeMX软件的安装接收空闲中断STM32CubeMX配置1.新建工程2. 选择芯片3. 选择时钟和下载方式4. 配置串口5.设置工程消息6.生成代码7.修改生成的代码 空闲中断DMA转运STM32CubeMX配置4.配置串口5.设置工程消息6.生成代码7.修改生成的代码 S…

Linux详解:文件权限

文章目录 前言Linux文件权限基础文件成员与三组权限字符 权限的修改修改文件所有者总结 前言 在浩瀚的操作系统世界中,Linux以其开源、灵活和强大的特性,成为了服务器、开发环境以及众多个人用户的首选。而在Linux的众多特性中,文件权限机制…