无公网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. .net core IIS 发布

    发布时注意事项: 1.本机安装.net core SDK 2.启动项目预加载 3.应用池配置为 无托管代码 4.设置应用池-->高级设置-->启动模式为:AlwaysRunning 5.在 ...

  2. OracleDBConsoleorcl 服务无法启动:Agent process exited abnormally during initialization.

    OracleDBConsoleorcl 服务无法启动 在事件查看器里看到 Agent process exited abnormally during initialization.的记录.知道是因为 ...

  3. 如何让DOS命令在新窗口打开

    可以调用别外的批处理如 start a.batstart b.batstart c.bat 新建a.bat.B.BAT.C.CAT,在这几个批处理中输入你的命令. 以上我自己测试通过.

  4. Go之NSQ

    文章引用自 NSQ NSQ是目前比较流行的一个分布式的消息队列,本文主要介绍了NSQ及Go语言如何操作NSQ. NSQ介绍 NSQ是Go语言编写的一个开源的实时分布式内存消息队列,其性能十分优异. N ...

  5. scipy1.3.0开始被弃用的imread,imresize,如何代替

    scipy1.3.0开始被弃用的imread,imresize,如何代替 SciPy最新官方文档的说明(20190730): Functions from scipy.interpolate (spl ...

  6. EF中 GroupJoin 与 Join

    数据: GroupJoin: 返回左表所有数据 using (tempdbEntities context = new tempdbEntities()) { var query = context. ...

  7. 类型不匹配 java.lang.IllegalArgumentException : argument type mismatch

    异常: 解决: money的类型是 float类型(把0.8改成 0.8f 即可)

  8. Flask - app.debug=True,python manage.py和export FLASK_DEBUG=True,flask run的不同。

    TL;DR,可以直接看下面的总结 问题1:为什么app.config['DEBUG'] = True,然后flask run并没有开启debugger和reloading,而直接运行脚本(python ...

  9. ORM框架的概述

    ORM: object relation mapping [对象][关系]映射    将对象  映射到  数据库中        类名        数据库表名        对象           ...

  10. toFixed的坑

    因为项目需要使用小数,所以第一时间想到了javaScript 的toFixed 方法,开始测试了一下,觉得没有问题就没管了,后来同事偶然间发现 toFixed 之后的数据不对,后来自己查阅资料才知道, ...