异地旁路组网:zerotier

news2024/12/24 20:18:44

有这么一个需求:需要远程访问内网的nas。然后现成的解决方案有蒲公英这个方案,但是个人版的话限了只能3个设备,因此找了半天,最后选择了功能类似的zerotier.

创建网络

zerotier的使用很简单,首先去官网http://zerotier.com注册一个帐号,然后创建虚拟网络。

然后就会得到一个“网络ID”

 

安装zerotier

接着,我们在自己电脑以及内网的机器上面,安装Zerotier.具体安装方式可以看官网的链接:Download – ZeroTier

我本机和内网机器都是linux的,因此我安装了Linux版本。

安装完之后通过以下两条命令配置开机自启动:

sudo systemctl start zerotier-one.service
sudo systemctl enable zerotier-one.service

加入网络

然后,分别在内网的机器和自己的电脑上面运行下面这条命令:

sudo zerotier-cli join 网络id

这样就能加入网络了。但是申请加入网络之后,我们需要在zerotier官网允许设备的加入。

 

勾选最左边的框,即可允许设备加入网络。然后为了我们接下来设置路由转发,我们需要在右侧的框中为内网的机器设置固定的ip。(对于自己的电脑就不需要设置了)

配置旁路路由

由于我们希望借助内网的这台机器作为跳板,访问内网的nas,因此我们需要配置一定的路由规则。

配置Zerotier网关路由规则

首先,我们在zerotier官网上,设置一条路由规则,将所有尝试访问内网的请求,路由到内网的机器上面。我们假设内网的上级网段为192.168.1.*, 内网跳板机在虚拟网络中的ip为172.27.x.x, 那么就可以配置这样一条路由规则:

这样,虚拟网络的网关就会将发往192.168.1.0/24这个网段的数据包导向这台跳板机。

配置内网跳板机

接着,我们要配置这台跳板机,使得它能将来自zerotier的虚拟网卡的路由请求,转发到它的连接着内网的那个网卡接口。

由于内网的这台机器是Ubuntu的,因此以下的配置对于ubuntu来说是没有问题的。没有在别的linux发行版上面测试过。

首先,我们要启用内核的ip转发功能:

vim /etc/sysctl.conf

编辑上面这个文件,然后将里面关于ip路由转发的配置打开。就是,删掉相关内容前面的#号即可。

如下图所示,我只开启了ipv4转发,没有开ipv6的。如果要开ipv6的话,就把下面那行的#号给删了即可。

保存后,输入以下命令重载配置:

sysctl -p /etc/sysctl.conf

接着,我们需要配置路由规则。

首先,我们需要确定一下zerotier虚拟网卡的名字,以及连接着内网的网卡的名字。

在控制台输入

ifconfig

然后从输出的信息中,看对应的网段,找到虚拟网卡以及内网的网卡。zerotier的网卡名字一般是一串哈希值,看着就是很乱的无规律的字符。

接着我们直接在控制台输入以下命令,导出网卡的名字为环境变量:

PHY_IFACE=连接内网的网卡的名字
ZT_IFACE=zerotier的虚拟网卡名字

然后我们就可以在同一个控制台窗口下输入以下命令,更新路由表,就搞定了。


sudo iptables -t nat -A POSTROUTING -o $PHY_IFACE -j MASQUERADE
sudo iptables -A FORWARD -i $PHY_IFACE -o $ZT_IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i $ZT_IFACE -o $PHY_IFACE -j ACCEPT
iptables-save

至此,内网跳板机的配置工作就结束了。

配置自己电脑的zerotier客户端

zerotier启动的时候默认不会把在zerotier官网设置的静态路由规则应用到本机,因此我们需要手动的启用。对于有可视化界面的客户端,比如安卓的,就会有一个选项:Route Via ZeroTier.对于Linux的命令行客户端,则需要这样配置:

sudo zerotier-cli set 网络id allowGlobal=1
sudo zerotier-cli set 网络id allowDefault=1

然后就可以ping通内网的其他机器了!

转载请注明来源:异地旁路组网:zerotier – 龙进的博客icon-default.png?t=MBR7https://longjin666.cn/?p=1646

欢迎关注我的公众号“灯珑”,让我们一起了解更多的事物~

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

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

相关文章

vue 时间栏选择

效果图&#xff1a; 用el-carousel 的轮播组件 将样式修改 添加change事件 区分左右点击 获取当前年 和 当前月 <el-carouseltrigger"click"height"36px":autoplay"false"arrow"always"change"carouselChange"><e…

Leetcode.189 轮转数组

题目链接 Leetcode.189 轮转数组 题目描述 给你一个数组&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步:[7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5…

数据分析师最佳选择,帆软自研函数计算满足BI复杂场景需求

‍‍数据智能产业创新服务媒体——聚焦数智 改变商业伴随着数字经济的加快推进和企业数字化转型的不断深入&#xff0c;数据时代正在朝我们走来。越来越多的企业管理者已经意识到数据的重要性&#xff0c;数据分析和商业智能也成为管理决策的重要辅助工具&#xff0c;由此而生…

几个潜在的AI科研助手

最近看到一个新闻说ChatGPT被某科研文章列为作者之一。以自然语言处理和深度学习为基础的人工智能在语言修改润色和翻译方面表现优异&#xff0c;似乎还将改变一些传统的论文阅读和写作方式。本文记录几个最近了解到的几个工具。Scispace地址&#xff1a;https://typeset.io/搜…

详细解析各种TCP漏洞攻击方式及防御方法

TCP/IP攻击是利用IP地址并不是出厂的时候与MAC固定在一起的&#xff0c;攻击者通过自封包和修改网络节点的IP地址&#xff0c;冒充某个可信节点的IP地址&#xff0c;进行攻击。 由于TCP/IP协议是Internet的基础协议&#xff0c;所以对TCP/IP协议的完善和改进是非常必要的。TCP…

Redis 异地双活实战

本文主要讲述异地双活方案redis的热备、双写、双向同步的区别和优劣势。并且说明了双写同步方案中redis集群主从数据同步的过程&#xff0c;以及中间件方案遇到的部分问题点&#xff0c;说明最终方案的实现思路和方案。 redis的双活方案无非有以下三种&#xff1a;热备&#xf…

是否只能搞底层才能成为技术大神?

hi&#xff0c;大家好&#xff0c;我是大师兄alex&#xff0c;想必大家经常听到&#xff0c;想要长远发展&#xff0c;必须要往底层走&#xff0c;技术大神都是搞底层的&#xff0c;你会看到很多人一旦想变得硬核&#xff0c;都喜欢展现自己搞过一些底层技术&#xff0c;比如体…

配置热更新/支持 Reload、QUIC 桥接再升级

12 月&#xff0c;NanoMQ 继续保持稳步更新&#xff0c;最新的 0.15 版本将于本月初发布。这一版本增加了配置热更新功能和 Reload 命令&#xff1b;MQTT over QUIC 桥接再次得到升级&#xff0c;增加了拥塞控制和 QoS 消息优先传输&#xff1b;另外也为上一个版本新增的 HOCON…

2003-2021年高铁线路信息数据

2003-2021年高铁线路信息数据 1、时间&#xff1a;2003-2021年 2、指标&#xff1a; 高铁线路名称、起点名、终点名、开通时间、线路长度(km)、设计速度(km/h&#xff09;、沿途主要车站 3、指标说明&#xff1a; 高铁一般指高速铁路。 高速铁路&#xff0c;简称高铁&…

基于 K8s 的 MySQL 数据持久化存储

目录一、步骤二、实践2.1 创建 PV 和 PVC2.2 部署 MySQL 服务2.3 创建测试数据2.4 模拟节点宕机2.5 数据一致性验证FAQ一、步骤 &#xff08;1&#xff09;创建 PV 和 PVC。 &#xff08;2&#xff09;部署 MySQL 服务。 &#xff08;3&#xff09;向 MySQL 添加数据。 &am…

什么是Vue、Vue开发的方式、Vue的基本指令

一、什么是Vue 1. 前端技术的发展&#xff08;html、CSS、JavaScript&#xff09; ​ &#xff08;1&#xff09;jQuery&#xff1a;是对JavaScript进行了封装&#xff0c;使得操作DOM、事件处理、动画处理、ajax交互变得非常简洁、方便。是JavaScript的库。 ​ &#xff08…

贴吧低代码高性能规则引擎设计

作者 | 贴吧UEG技术组 导读 本文首先介绍了规则引擎的使用场景&#xff0c;引出贴吧规则引擎。从组件、变量、规则、处置四个模块介绍了规则引擎的组成部分&#xff0c;同时对最终规则文件的编译过程做了详细介绍。为了做到低代码&#xff0c;在规则配置上做到平台化&#xff0…

2022第十一届中国创新创业大赛全国总决赛在深圳举办

为深入贯彻党的二十大精神和创新驱动发展战略&#xff0c;强化企业科技创新主体地位&#xff0c;支持企业融合创新&#xff0c;推进科技型创新型企业遴选和培育&#xff0c;加大金融对硬科技企业的支持力度&#xff0c;营造有利于科技型中小微企业成长的环境&#xff0c;推动创…

Nuxt.js

Nust.js介绍 Nust.js介绍 移动互联网的兴起促进了web前后端分离开发模式的发展&#xff0c;服务端只专注业务&#xff0c;前端只专注用户体验&#xff0c;前端大量运用的前端渲染技术&#xff0c;比如流行的vue.js、react框架都实现了功能强大的前端渲染。但是&#xff0c;对…

深入探索Linux虚拟化KVM-Qemu分析之CPU虚拟化

说明&#xff1a; KVM版本&#xff1a;5.9.1QEMU版本&#xff1a;5.0.0工具&#xff1a;Source Insight 3.5&#xff0c; Visio 1. 概述 本文围绕ARMv8 CPU的虚拟化展开&#xff1b;本文会结合Qemu KVM的代码分析&#xff0c;捋清楚上层到底层的脉络&#xff1b;本文会提供一…

MYSQL对千万级数据的快速迁移

MYSQL对千万级数据&#xff08;10个G左右&#xff09;的迁移&#xff0c;耗时控制在半小时内 1.show variables like %secure%;查看 secure-file-priv 当前的值是什么 2.如果没有可以在my.ini&#xff08;windows&#xff09;my.cnf&#xff08;linux&#xff09;中添加secure…

得物染色环境落地实践

1. 背景 测试环境治理一直是各大公司非常重要的一个课题&#xff0c;测试环境稳定性很大程度影响迭代开发&测试效率。 综合来看&#xff0c;测试环境不稳定的原因主要有以下几点&#xff1a; 测试环境的变更非终态变更&#xff0c;经常会有代码发布/配置发布导致服务无法…

ArcGIS基础实验操作100例--实验47融合相邻面要素

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 高级编辑篇--实验47 融合相邻面要素 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;1&am…

【Vue3】Vue内置指令

注意&#xff1a;在vue中使用v-开头的都是Vue指令。一、v-html插入标签可以识别标签。<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"&…

argparse简介

一、argparse简介 argparse 模块是 Python 内置的用于命令项选项与参数解析的模块&#xff0c;argparse 模块可以让人轻松编写用户友好的命令行接口&#xff0c;能够帮助程序员为模型定义参数。 argparse定义四个步骤 导入argparse包 ——import argparse创建一个命令行解析…