前言

每次换路由器、刷机后,都要重复一遍zerotier的配置过程,今天抽时间记录下来备用。

zerotier是一个虚拟局域网工具,可以用来做内网穿透,从而实现在外网方便自由地访问内网设备的目的。我家的主路由器是Openwrt系统,通过桥接光猫方式上网,局域网里有NAS等设备,希望能够在外面通过zerotier客户端建立虚拟局域网,直接用原有的内网IP地址访问NAS等设备。

参考: https://github.com/mwarning/zerotier-openwrt/wiki

准备:在Openwrt上安装zerotier

大多数第三方Openwrt固件都带了zerotier,如果实在没有,可以去zerotier官网下载用于不同设备的版本,或从Openwrt官方或第三方的插件库自行寻找适配的ipk,自行上传安装,网上教程很多,此处不赘述。

0. 注册Zerotier

去Zerotier官网注册账号,并创建一个虚拟网络,记下下图红框中的Network ID

1. 在Openwrt中启用Zerotier

如下图,在Openwrt中输入Network ID,让当前设备加入虚拟网络。注意下面的“自动允许客户端NAT”,是实现外网访问路由器后其他设备的必要条件,但仅此还不够,还需要后面的步骤配合才能实现。

启用后,你应该能看到接口信息中有如下的内容。目前这里看不到虚拟网络分配的地址,需要下一步完成。

2. 在Zerotier官网认证路由器设备

路由器输入Network ID后,并不能直接被访问到,需要去Zerotier官网,登录后进入你建立的虚拟局域网的管理界面,拉到最下面,你会看到类似下面这样的列表,

左边有虚红线的,表示有一个设备刚刚接入,需要你认证。只要简单的打勾就可以了。系统会自动给该设备分配一个虚拟局域网网段内的IP,如果不满意可以调整。
现在,回Openwrt看一下zerotier的信息,如果还没有显示虚拟网IP地址,就重启一下zerotier,信息变成这样就说明路由器已经成功接入虚拟网:

3. 在Zerotier官网配置NAT

因为我们希望通过路由器的zorotier虚拟局域网访问内网设备,这就需要如下图,在虚拟网络管理界面中,添加路由:

假设你的局域网是192.168.3.0/24(即网络是192.168.3.x,掩码255.255.255.0),路由器的虚拟IP是10.222.33.1,则这里两个框就分别输入192.168.3.0/24和10.222.33.1。这个配置其实就是对加入虚拟局域网的所有设备设置了一个路由:当从任意设备上想访问192.168.3.0网段时,需要经过10.222.33.1,也就是我们的路由器来转发数据。

Zerotier官网的配置到此结束,接下来回到路由器上继续配置。

4. 在防火墙上放行外网对路由器9993端口的UDP输入

如下图,在Openwrt防火墙上建立如下规则:

5. 在Openwrt上配置路由信息

在Openwrt界面的网络->接口下,点击“添加新接口”,按照下图配置:

  • 名称:任意,这里用了Zerotier
  • 协议:不配置
  • 设备:从列表中选择一个zt打头的设备,这其实是zerotier在系统中创建的虚拟接口。

点击创建接口,并设置成开机自动启用,回到接口列表,保存并应用。

6. 配置防火墙

进入Openwrt的网络->防火墙,在最下方的区域列表下方,点“新增”,然后按照下图配置:

注意:按照官网说明,在“允许转发到目标区域”设置中,如果仅仅为了访问局域网内部设备,是不需要选中wan的。当你想让虚拟网络中的其他设备也利用该Openwrt设备上网时,才需要选中wan。我没做过深入测试,考虑到可能其他设备的客户端如果是以VPN方式接入虚拟网络后必须通过这个openwrt上网,简单起见,我选中了wan。

保存,并应用。大功告成。

7. 测试

随便找一台电脑或手机,安装zerotier客户端,并参照步骤2做设备认证。不要用家里的WiFI,启动zerotier客户端,上线,试试直接访问局域网任意设备的IP地址,看是不是能访问了!
如果遇到配置正常但无法连接,可以确认一下路由器上的zerotier接口信息中是否只分配了IPv6地址,没有虚拟IPv4地址。本人在某个版本的openwrt上遇到过这种情况,关掉下图中的选项就正常了,具体原因未知。

8. 补充

其实并不是只能通过Openwrt设备访问局域网,任意一台安装了zerotier的设备都可以做到。只是需要你对网络知识比较了解,能够在该设备上通过命令行或其他方式进行防火墙、路由等相关配置,也一样可以实现目标。

通过Zerotier访问局域网所有设备相关推荐

  1. 通过 zerotier 访问所在局域网的其他设备

    通过 zerotier 访问所在局域网的其他设备 zerotier 网段:10.10.10.0/24 局域网网段:10.121.104.0/24 10.121.10.0/24 - - 所在局域网的其中 ...

  2. 无公网IP通过旁路由openwrt的Zerotier实现和在家一样访问家里每个设备

    现在的IP地址精贵,很多人拉的线路都没有公网IP了,早期时候有公网IP可以干很多事情,例如架个Web,FTP,游戏等各种服务,再通过动态域名,在公司或者朋友可以直接访问,只要映射端口就可以了. 如果没 ...

  3. OpenWRT使用iptables设置只允许MAC地址对应设备访问局域网

    OpenWRT只允许设备访问局域网 原理分析 要想设备只能访问局域网,有两个方案 1.使用iptables匹配设备MAC地址为XXXXXXXXXXX且目的地址为公网地址的设备若匹配则拒绝 2.使用ip ...

  4. 如何实现局域网下设备之间的互通互联和外网访问?

    两台电脑怎么在同一路由下访问共享文件夹?两台不同系统的电脑在同一个路由器下访问共享文件夹进行数据共享,从本质上说就是在同一个局域网下设备之间的互通互联,这就需要我们搭建一个内网文件共享服务器来实现此功 ...

  5. VPS自己搭建frp/frps内网穿透实现外网访问局域网设备

    如果你家里有一台黑群晖,想在外面也能访问.但大家也知道公网 IPv4 地址现在已经所剩无几了,网络运营商一般是不会给你公网 IPv4 地址的.当然,你也可以使用第三方的内网穿透(比如花生壳),如果实在 ...

  6. 内网穿透,使用 IPv6 公网访问内网设备踩坑指南

    本文是开启宽带 IPv6 功能并使用公网 IPv6 地址访问内网设备的踩坑指南.IPv6 是目前个人体验最优的内网访问方案,个人体验远胜过 ZeroTier,frp 等方案. 场景 将个人设备暴露于公 ...

  7. win10访问不了局域网计算机名,Win10正式版无法访问局域网电脑怎么办

    Win10正式版无法通过网上邻居访问局域网其它电脑该如何解决呢?升级到Win10正式版系统后,打开"网络"后找不到其它电脑,导致此类情况产生的重要原因是电脑未开启"文件和 ...

  8. 使用 Metasploit 渗透局域网 Windows 设备

    使用 Metasploit 渗透局域网 Windows 设备 警告 请勿将本文提到的任何技术用于非法用途. 请遵守<中华人民共和国刑法><中华人民共和国网络安全法><中华 ...

  9. w10不能访问网络计算机,今天解答win10无法访问局域网电脑的详尽解决举措

    今天有一位用户说他安装了win10系统以后,在使用中突然遇到了win10无法访问局域网电脑的情况,新手处理关于win10无法访问局域网电脑的问题不是特别容易,如果你想让自己的电脑水平有所提高,那这次就 ...

最新文章

  1. 智能&大数据时代,架构师思维的十个学习步骤(优化版)
  2. dorado学习笔记(二)
  3. 使用sun.net.ftp.FtpClient进行上传功能开发,在jdk1.7上不适用问题的解决
  4. SwipeRefreshLayout和RecyclerView滑动冲突的解决
  5. 项目既有vue又有html,01-vue指令
  6. spring事务传播属性与隔离级别
  7. (原创)c++中的类型擦除
  8. cocos3.2中如何创建一个场景
  9. JS 网页自动加载js函数
  10. 如何打造应对超大流量的高性能负载均衡?
  11. python入门视频教程-Python入门视频全套教程
  12. centos8装mysql_CentOS8下安装mysql8
  13. java多线程 同一资源_同一资源多线程并发访问时的完整性
  14. 智慧城管系统提高城市综合管理水平
  15. 刘汉国老师的3路单火智能开关
  16. 【爬虫工具】哔哩哔哩插件姬(bilibili-plugin)
  17. android读取assets中的txt文件路径,Android 读取assets文件下的txt文件
  18. NOTA-NHS ester,1338231-09-6,双功能配体的大环化合物
  19. 举头望明月打计算机术语,关于月亮的谜语
  20. Window10主硬盘更换及系统重装

热门文章

  1. matlab 如何调用mex文件,matlab调用mex文件报错
  2. 每日一练2425——年终奖迷宫问题(难)星际密码(易错)数根(接收数据的方法)
  3. 为物联网而生:NB-IOT开启广袤市场空间
  4. Keras-yolov3计算验证集acc一直为0
  5. K3s+Rainbond默认集群添加agent节点
  6. 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到 或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许 远程连接
  7. 【微信抢红包】红包助手-修改版
  8. 8月 (August)总结规划
  9. [Appium] 搭建Android App UI自动化环境
  10. Mybatis源码解析《一》