Openwrt使用ZeroTier内网穿透

2019年10月24日 3182点热度 11人点赞 2条评论

之前一直使用FRP内网穿透,最近路由路固件换成了L大的OpenWrt,随便折腾了一下ZeroTier内网穿透,实现了路由器硬盘上的资料无论在家还是在单位都可以随意访问。看起来就像两个网段被物理桥接在一起一样,完全就是个虚拟局域网。

一、主要功能:

将安装ZeroTier软件的所有设备统一到一个虚拟局域网,用虚拟局域网ip和内网ip均可以无缝访问虚拟局域网中的任一台设备,并且拥有如下优势:①. 节点之间属于 P2P UDP 直连,无需服务器中转流量,互联速度仅仅取决于你的和其他节点的直连上传带宽(当然握手之初是需要经过中心服务器来当媒婆的,之后就是UDP直连了!);②. 节点之间的流量是加密和压缩的,所以有带宽放大的功能;③. 配置简单,只需要填入一个 Network ID ,然后管理员在 Zerotier 官网管理页面允许通过一次,以后就直接允许连上了。④.连上后各个虚拟网卡相当于同一局域网内,无应用的限制了——至于有哪些应用场景就需要读者你自己脑洞大开了。⑤.关键的一点,节点在100以内,所有功能都是免费的!

二、简易设置:

首先到官网ZeroTier.com去注册账号(https://my.zerotier.com/network),并新建你的Network ID(官网自动生成ID,你可以为它设置一个好记的名字并添加说明以便于记忆)。

然后在你需要组建成局域网的设备上安装ZeroTier客户端(官网下载和安装指南地址),填入之前生成的Network ID,并到官网管理中心将设备对应的【Auth】选项进行勾选以将其并入该Network ID的局域网。

 

三、进阶设置

在所有的设备上都安装 Zerotier 就可以实现互相访问的目的。但这也是最麻烦的方法,毕竟要在所有设备上安装 ZeroTier。于是有一种想法,在需要组网的设备端上级路由器上安装ZeroTier客户端并在官网管理中心添加许可、设置路由表,这样安装了ZeroTier客户端的所有路由器下的所有设备都处在同一局域网下啰。

1、在 路由器 上安装 Zerotier,并填写 network ID 加入 ZeroTier 网络


2、假设 ZeroTier 为 我的路由器 分配的 IP 为 192.168.192.250,路由器分配的内网IP段为192.168.2.0/24 ,在 ZeroTier 官网设置 Managed Routes 选项 如下图填写:

点击加号,等待生效。
3、配置 OPENWRT 路由器防火墙

iptables -I FORWARD -i ztrfyazrys -j ACCEPT
iptables -I FORWARD -o ztrfyazrys -j ACCEPT
iptables -t nat -I POSTROUTING -o ztrfyazrys -j MASQUERADE

其中的“ztrfyazrys”在不同的路由器中不一样,你可以在路由器ssh环境中用zerotier-cli listnetworks查询。
并在防火设置-常规设置中将转发设置为接受。

四、注意

组网的多个局域网,IP 段不能冲突。

至此,单位电脑也能访问家里路由器下的所有设备了。单位电脑把软路由上的硬盘映射成网络磁盘,随时访问; 远程桌面家里电脑,而且电脑上不用再装ZeroTier客服端。使用中也发现一些问题:不同营商穿透延迟高,4G网络下大很验证穿透成功。但好家里和单位都是同一营运商网络,访问非常流畅。

Qing

心中那自由的世界,如此的清澈高远

文章评论

  • jim

    请问为何我用电脑上的zerotier客户端和openwrt上的zerotier插件同时ping一个主机所用的时间不一样?电脑ping要600+ms,openwrt上ping只要60+ms

    2020年05月27日
    • 信仰飘扬

      @jim 电脑和openwrt不在同一个网络下吧。如果是openwrt下面的电脑,电脑上都不用装zerotier客户端。

      2020年05月29日