通过Zerotier访问局域网所有设备
Posted 沙漠豪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过Zerotier访问局域网所有设备相关的知识,希望对你有一定的参考价值。
前言
每次换路由器、刷机后,都要重复一遍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地址,看是不是能访问了!
8. 补充
其实并不是只能通过Openwrt设备访问局域网,任意一台安装了zerotier的设备都可以做到。只是需要你对网络知识比较了解,能够在该设备上通过命令行或其他方式进行防火墙、路由等相关配置,也一样可以实现目标。
以上是关于通过Zerotier访问局域网所有设备的主要内容,如果未能解决你的问题,请参考以下文章