无公网IP通过ZeroTier实现内网穿透

需求:想要在公司访问家里内网NAS,或是在家里访问公司服务

有固定的公网IP或动态的公网IP:常见的方案动态域名解析做端口转发方式等

无公网IP:常见的实现方案向日葵、teamviewer、ngrok、frp

有公网地址的情况下,我这里还是推荐端口转发方式,速度最理想!!!另外条件允许还是优先考虑frp做内网穿透,速度根据自己情况可控,最理想的方案!!!

本文主要讲解一个无公网IP的情况,通过ZeroTier实现内网穿透,而且配置起来非常容易

ZeroTier设备支持:

免费用户可以支持100个设备,支持Windows、macOS、Linux、IOS、Android、Synology、QNAP、Western Digital MyCloud NAS等等。

ZeroTier原理:

ZeroTier虚拟了一个网段,网段为192.147.17.0/24,公司和家里分别安装ZeroTier客户端,客户端会虚拟出一个网络并加入192.147.17.0/24这个网段,在家即可访问192.147.17.22地址,反之同理。

ZeroTier部署流程:

1、注册账号并创建一个网段
2、下载客户端并加入这个网段

开始部署:

1、创建账号

https://my.zerotier.com

2、创建网络

进入https://my.zerotier.com/network点击Create创建网络

3、点击进入已创建的网络

此时可以看到Network ID,后续添加设备都会需要这个ID。

我这里说下Access Control,默认是Certificate (Private Network),选择此模式表示每次在添加新的主机时,需要手动勾选是否允许连接,如果选择None (Public Network)模式,表示加入网络后自动分配IP并允许连接,从安全性来说建议使用默认选项Certificate (Private Network),方便性来看None (Public Network)更方便,不用每次加入网络后手动勾选。

另外根据个人情况你也可以自由设置网段,此处不做过多说明

好了,一个中转的ZeroTier就配置完成了,接下来只需要在其他设备安装所对应的客户端,然后加入到这个网络中就可以了。

Windows客户端安装

下载zerotier windos客户端

https://download.zerotier.com/dist/ZeroTier%20One.msi

安装后右键点击zerotier图标,点击Join Network加入

输入要连接的 network id,点击Join加入

然后在https://my.zerotier.com/network页面所创建的网络中刷新即可看到,刚刚加入的主机,如果使用的是Certificate (Private Network)模式,需要在页面中手动勾选一下允许加入网络。

Centos7客户端安装

1、编辑添加yum源

 
1
vi /etc/yum.repos.d/zerotier.repo
 
1
2
3
4
5
[zerotier]
name=ZeroTier, Inc. RPM Release Repository
baseurl=http://download.zerotier.com/redhat/el/$releasever
enabled=1
gpgcheck=0

2、安装zerotier

 
1
2
yum clean all
yum install zerotier-one

3、启动服务

 
1
zerotier-one -d

4、查看服务状态

 
1
zerotier-cli status

看到200 info 596811110b 1.2.12 ONLINE表示服务正常

可以使用netstat命令看到所启动的服务端口(这里192.168.1.162是centos本机的IP)

5、加入网络(后面是你自己的ID号)

 
1
zerotier-cli join Network ID

加入后会提示200 join OK

进入https://my.zerotier.com/network

刷新几次页面即可看到新加入的主机,然后在前面勾选即可,勾选后Version会变成版本号,并且会分配出一个IP地址

6、主机验证

回到centos7主机上通过ifconfig命令即可看到,此处又多了一个内网IP,此内网IP和zerotier一致,表示配置完成

附:加入、离开、列出网络状态

 
1
2
3
zerotier-cli join Network ID
zerotier-cli leave Network ID
zerotier-cli listnetworks
 

ZeroTier 局域网组建工具的更多相关文章

  1. 用Socket做一个局域网聊天工具(转)

    原文:http://www.cnblogs.com/technology/archive/2010/08/15/1799858.html 程序设计成为简单的服务端和客户端之间的通信, 但通过一些方法可 ...

  2. C# WINFORM 局域网PING 工具(技术改变世界-cnblog)

    WINFORM 局域网PING 工具(技术改变世界-cnblog) 需求: 1.实时更新 日期时间 2.可以ping多个IP 地址,必须判断 IP地址的正确性,不能为广播地址 3.对ping结果的显示 ...

  3. 局域网查看工具Lansee注册码

    相信好多人为查看局域网IP发愁,今天给大家推荐一个工具 lansee 猛戳下载

  4. Padavan安装使用ZeroTier实现组建虚拟局域网的方法

    首先到这个网站ZeroTier – Global Area Networking注册登陆,注册及创建网络的过程可以参考网上及其他UP主的教程,我就不重复了. 本篇主要讲述的是hiboy大佬编译的固件在 ...

  5. ARP局域网欺骗工具编写

    每台主机都设有一个ARP高速缓存(ARP cache),里面有本局域网上各主机和路由器的IP地址和硬件地址的映射表,这些都是该主机目前知道的一些地址. 当主机A要向本局域网上的某个主机B发送IP数据报 ...

  6. linux 局域网探测工具nmap

    NMap,也就是Network Mapper,是Linux下的网络扫描和嗅探工 具包,其基本功能有三个, 一是探测一组主机是否在线: 其次是扫描主机端口,嗅探所提供的网络服务: 还可以推断主机所用的操 ...

  7. 蛮好用的局域网测试工具iperf

    公司局域网总是莫名其妙的和一台机器网速很慢,虽然无法解决也无人解决,但是能有个有效的测试至少也会心里有数. 咱干不了网络硬件布线的活,就测测网速吧. 网上找了下,开始有文章介绍NetIQ Chario ...

  8. CentOS 7 安装Dukto(局域网通信工具)

    rmp包 http://download.opensuse.org/repositories/home:/colomboem/CentOS_7/x86_64/dukto-6.0-13.1.x86_64 ...

  9. C#局域网聊天工具_UDP广播

    接上一讲,程序启动就要发送广播消息,如何发送广播消息,这一讲将给大家好好讲讲网络广播的知识,以及C#如何实现广播. 第一部分.什么是广播地址,以及广播地址怎么计算 1.1 广播地址是什么? 主机号全为 ...

随机推荐

  1. 【Python】使用socketserver建立一个异步TCP服务器

    概述 这篇文章是讲解如何使用socketserver建立一个异步TCP服务器,其中Python版本为3.5.1. socketserver主要的类 socketserver模块中的类主要有以下几个:1 ...

  2. JVM(三、双亲委派机制)

    javadoc的解释: ClassLoader的每一个实例都会有一个与之关联的父ClassLoader,当被要求去寻找一个类或者资源的时候,ClassLoader的实例就会对于类或者是资源的寻找委托给 ...

  3. ioutils

    import yaml import json import csv import configparser class IoUtils(object): """ dep ...

  4. The Preliminary Contest for ICPC Asia Shenyang 2019 C Dawn-K's water (完全背包)

    完全背包为什么要取到M,可以取到2*M嘛,这题需要整取,对于不能整取的背包容量,dp[k]=INF,以及dp[j-water[i].weight]=INF时,dp[j]也不需要更新.如果不整取的话,后 ...

  5. Django项目配置数据库时,已安装mysqlclient,却提示 Did you install mysqlclient错误,后右报错ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3

    错误信息如下: 解决方案是: 找到自己的项目文件夹下的__init__.py  添加如下代码 解决这个问题后,右报错django2.2/mysql ImproperlyConfigured: mysq ...

  6. C语言:有序递增链表的插入问题。

    //已建立一个带头节点的单向链表,链表中的各结点按结点数据域中的数据递增有序连接.fun函数:把形参x的值放入一个新结点并插入链表中,使插入的各个数据域的数据仍保持递增有序. #include < ...

  7. JavaScript的变量提升机制

    变量提升 JavaScript的变量提升有两种,用var声明的变量以及用function声明的变量. 用var声明的变量 我们先来看下面这段代码,a的值是多少 代码1 console.log(a); ...

  8. nfs的原理 安装配置方法 centos6.5

    NFS周边 Network File System 作用 像访问本地文件一样去访问NFS服务器上的文件,目录 引用场景: ..1 用户上传的静态文件---图片,视频,用户上传的视频,头像 ..2 中小 ...

  9. Linux :ls 命令

    常用命令: ls:列出当前路径下的文件和目录 ls -a:列出当前路径下的所有文件和目录(包括隐藏文件和目录) ls -l:以列表方式显示文件或目录的详细信息 ls -al:可以结合使用 ls xxx ...

  10. scala基础API

    1.对象和json转换 1.1 json取值 val json:JSONObject = JSON.parseObject(jsonMsg:String)val message:String = js ...