当前位置: 首页 > news >正文

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中授权。


相关文章:

zerotier实现内网穿透

zerotier的内网穿透 前言一、zerotier的框架认知二、客户端安装设置1.linux2.windows 前言 摸索了一阵,看了好几篇,没有讲清楚。争取这次说清楚。 一、zerotier的框架认知 先认识一下zerotier的框架,这样如何处理就很好理解了。 首先上zero…...

Ardusub源码剖析——control_althold.cpp

代码 #include "Sub.h"/** control_althold.pde - init and run calls for althold, flight mode*/// althold_init - initialise althold controller bool Sub::althold_init() {if(!control_check_barometer()) {return false;}// initialize vertical maximum sp…...

Vue前端开发-路由的基本配置

在传统的 Web 页面开发过程中,可以借助超级链接标签实现站内多个页面间的相互跳转,而在现代的工程化、模块化下开发的Web页面只有一个,在一个页面中需要实现站内各功能页面渲染,相互跳转,这时些功能的实现,…...

HarmonyOS JSON解析与生成 常用的几个方法

HarmonyOS 使用 JSON解析与生成 的好处 一、轻量级与高效性 易于阅读和编写:JSON格式的数据易于人类阅读和编写,降低了数据处理的复杂性。高效解析与生成:HarmonyOS的JSON解析库提供了一系列高效的函数和类,能够快速地将JSON字符串…...

Docker 进阶指南:常用命令、最佳实践与资源管理

Docker 进阶指南:常用命令、最佳实践与资源管理 Docker 作为一种轻量级的容器化技术,已经成为现代软件开发和部署不可或缺的工具。本文将为您深入介绍 Docker 的常用命令、最佳实践以及如何有效管理容器资源,帮助您更好地在 Ubuntu 22.04 或…...

【前端】特殊案例分析深入理解 JavaScript 中的词法作用域

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 💯前言💯案例代码💯词法作用域(Lexical Scope)与静态作用域什么是词法作用域?代码执行的详细分析 💯函数定义与调用的…...

Jmeter进阶篇(29)AI+性能测试领域场景落地

🏝️关于我:我是綦枫。一个顺手写写代码的音乐制作人。 前言 随着2022年GPT3.5的问世,我们的社会已经进入了AI时代,这是一个全新的风口,也会迎来全新的挑战和机遇。如果能抓住新时代的风口,你将会在进步的路上越走越快。今天让我们来一起探究一下,在软件性能测试领域,…...

理解和应用 Python Requests 库中的 .json() 方法:详细解析与示例

理解和应用 Python Requests 库中的 .json() 方法:详细解析与示例 在使用 Python 的 requests 库进行网络请求时,.json() 方法是一种非常实用的功能,用于将从 API 获取的 JSON 格式的字符串响应转换为 Python 可操作的字典或列表。这一功能的…...

docker 运行my-redis命令

CREATE TABLE orders ( order_id bigint NOT NULL COMMENT "订单ID", dt date NOT NULL COMMENT "日期", merchant_id int NOT NULL COMMENT "商家ID", user_id int NOT NULL COMMENT "用户ID", good_id int NOT NULL COMMENT "商…...

cloudstack概要及单节点安装部署

概要 Apache CloudStack 是一个开源的云计算管理平台,用于管理和部署大规模的虚拟化环境,支持 IaaS(基础设施即服务)模型。它广泛应用于私有云、公共云和混合云场景。 核心功能 多租户支持 提供隔离的虚拟网络、计算资源和存储资…...

Android Gradle 相关

JDK环境配置: 1、Gradle运行时的JDK,即Gradle需要用到的JDK,配置如下: 如需修改现有项目的 Gradle JDK 配置,请依次点击 File(或者 macOS 上的 Android Studio)> Settings > Build, Exe…...

SpringMVC:入门案例

从此开始,我们步入SpringMVC的学习。 SpringMVC是一种基于Java实现MVC模型的轻量级Web框架 先来看一下web程序是如何工作的: 因为是异步调用,所以后端不需要返回view视图,将其去除前端如果通过异步调用的方式进行交互&#xff0…...

LuaForWindows_v5.1.5-52.exe

Releases rjpcomputing/luaforwindows GitHub #lua C:\Users\Administrator\Desktop\test.lua print("Hello lua!") print("ZengWenFeng 13805029595")...

密码学实验工具--Cryptool2

一、 Cryptool2的下载与安装 请参考我的另一篇笔记 二、 Caesar密码 2.1 Caesar密码加解密 1. 在Starcenter中直接搜索caesar的模板。 2. 打开caesar Cipher的模板后,工作区上面已经有了输入框,密钥框,输出框 输入框:要加密…...

量化交易系统开发-实时行情自动化交易-8.1.TradingView平台

19年创业做过一年的量化交易但没有成功,作为交易系统的开发人员积累了一些经验,最近想重新研究交易系统,一边整理一边写出来一些思考供大家参考,也希望跟做量化的朋友有更多的交流和合作。 接下来会对于TradingView平台介绍。 T…...

Vue2 常见知识点(二)

使用简单的代码逻辑,理一理实现逻辑 为了方便理解,案例中,没有使用虚拟dom和抽象语法树,是通过直接操作dom来实现的 1.模板语法 先看一个简单的实现: this.compile( this.$el ); 执行模板编译,如果是文本…...

SAP-ABAP开发-第二代增强示例

CUSTOMER EXIT 以VA01为例 目录 一、查找出口 二、出口对象 三、销售订单的增强 一、查找出口 ①查找事务代码的主程序 ②搜索CALL CUSTOMER-FUNCTION SE37下查看函数 函数名称命名规则&#xff1a;EXIT_<程序名>_<序号> ③使用函数查找&#xff1a;MODX_FU…...

UDP 协议与端口绑定行为解析:理解 IP 地址和端口的绑定规则

UDP 协议与端口绑定行为解析:理解 IP 地址和端口的绑定规则 1. UDP 协议与端口绑定基础2. UDP 端口绑定行为与示例3. 关键结论:占有权与消息接收权4. 异常现象:多个程序绑定 0.0.0.0:80805. 端口共享与操作系统的行为差异6. 实践建议与最佳实践7. 总结在网络通信中,UDP(用…...

【Vue3】【Naive UI】<n-message>标签

【Vue3】【Naive UI】标签 content (String | VNode) 【VUE3】【Naive UI】&#xff1c;NCard&#xff1e; 标签 【VUE3】【Naive UI】&#xff1c;n-button&#xff1e; 标签 【VUE3】【Naive UI】&#xff1c;a&#xff1e; 标签 【VUE3】【Naive UI】&#xff1c;NDropdown&…...

C++ 变量和常量:开启程序构建之门的关键锁钥与永恒灯塔

目录 一、变量 1.1 变量的创建 1.2 变量的初始化 1.3 变量的分类 1.4 变量的初始化 二、常量 2.1 字面常量 2.2 #define定义常量 2.3 const 定义常量 一、变量 1.1 变量的创建 data_type name; | | | | 数据类型 变量名 ------------- int age; //整型变量 char ch; …...

SolidWorks 2024新手避坑指南:从草图到三维实体,这5个特征操作最容易出错

SolidWorks 2024新手避坑指南&#xff1a;从草图到三维实体的5个关键特征操作 刚接触SolidWorks的新手工程师常常会在从二维草图转向三维实体建模的过程中踩到各种"坑"。这些错误不仅浪费时间&#xff0c;还可能让人对这款强大的三维设计软件产生挫败感。本文将聚焦五…...

如何识别并拒绝AI领域虚假技术信息

我不能按照该标题生成相关内容。原因如下&#xff1a;标题中“TAI #181”指向一份外部出版物&#xff08;疑似The AI Index Report或某AI行业通讯&#xff09;&#xff0c;但未提供任何可验证的原始内容、上下文、数据来源或事实依据&#xff1b;“DeepSeek’s V3.2 ‘Speciale…...

从查重红到检测绿:用 okbiye 搞定论文降重 + 降 AIGC,毕业季再也不慌

okbiye-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPT降重复率 - Okbiye智能写作https://www.okbiye.com/reduceAIGC 毕业季的论文环节&#xff0c;查重和 AIGC 检测是两道绕不开的坎。看着查重报告里大片的红色标注重复率&#xff0c;又担心 AI 生成痕迹过…...

CLIP实战指南:零样本图文检索与跨模态应用落地

1. 这不是又一个“多模态模型”名词解释&#xff0c;而是你真正能用起来的CLIP实战指南如果你最近在做图像搜索、零样本分类、图文匹配、跨模态检索&#xff0c;或者哪怕只是想给自家图库自动打标签、给设计稿配文案、给电商商品图生成合规描述——那CLIP绝不是论文里那个高冷的…...

Maven依赖scope:从编译到打包,一张图理清生命周期与classpath

Maven依赖scope全解析&#xff1a;构建生命周期与classpath的精准控制 当你盯着pom.xml里那些<scope>compile</scope>标签时&#xff0c;是否曾好奇它们究竟如何影响你的构建流程&#xff1f;Maven的依赖scope就像一个个精密的开关&#xff0c;控制着依赖项在编译、…...

如何制作微信小程序店铺?无技术商家实操全流程避坑指南

大家好&#xff0c;我是右以云SaaS平台的小右。今天就把如何制作微信小程序店铺的全流程讲透&#xff0c;没技术基础也能自己落地&#xff0c;还帮你们避掉我见过的大部分坑。很多老板想做微信小程序店铺&#xff0c;第一反应是找外包&#xff0c;报价动辄大几千甚至几万&#…...

Gemini3.1Pro构建神经符号系统实战

用 Gemini 3.1 Pro 构建神经符号系统的可行性探讨&#xff1a;从“会推理”到“能落地执行”在大模型时代&#xff0c;大家越来越关心的不只是“模型会不会回答”&#xff0c;而是能不能把推理可靠地用到复杂任务里&#xff1a;比如自动化规划、合规决策、工具调用、甚至半自动…...

VHDL代码智能解析:基于大模型的硬件设计辅助实践

1. 项目背景与核心挑战在当今高性能处理器设计领域&#xff0c;VHDL作为硬件描述语言(HDL)的重要成员&#xff0c;因其严格的类型检查和结构化语法特性&#xff0c;被广泛应用于航空航天、汽车电子等关键行业。然而&#xff0c;随着芯片设计复杂度呈指数级增长&#xff0c;设计…...

政策快报网的申报引擎:从政策匹配到材料准备的全流程设计

用户通过政策匹配引擎找到了一条适合自己的政策,然后呢? 这是很多政策信息平台共同面临的问题。在传统的政策快报网设计思路中,价值链条往往止步于“告诉用户有这条政策”。但真正的需求远不止于此——用户需要知道申报截止时间、需要准备哪些材料、材料有什么格式要求、提…...

Unity AI工作流实战指南:从Editor到运行时的稳定集成

1. 这不是“AI插件合集”&#xff0c;而是Unity开发者真正用得上的智能工作流Unity开发者每天面对的&#xff0c;从来不是“要不要用AI”&#xff0c;而是“哪个AI功能能让我今天少改三遍材质球、少跑两次Build、少被美术追着问‘这个Shader为什么在iOS上黑一块’”。我做Unity…...