image-20230822001700617

基于 OpenWrt R23.5.1 / LuCI Master 与 ZeroTier 1.10.6,搭建具有IP转发功能的内网穿透。

概述

局域网中部署了一台 OpenWrt 设备,以LAN方式接入路由器作为透明网关。由于设备性能比较弱,因此上面只运行了极少网络相关的服务。由于最近有内网穿透的需求,因此考虑将该 OpenWrt 设备作为 ZeroTier Bridge,来实现整个局域网所有设备的外部访问。

当前的整个局域网结构如下:

image-20230822003736812

ZeroTier 的设置

  1. 打开 ZeroTier 官网 https://my.zerotier.com/network ,注册完成后即可使用一个免费的虚拟局域网。
  2. 打开该网络的详情界面,复制 Network ID,启用 IPv4 Auto-Assign,这里以192.168.194.* 为例进行接下来的所有设置。
  3. 打开openwrt,选择VPN - ZeroTier ,将Network ID粘贴进去,并勾选允许客户端NATimage-20230822004200545
  4. 转到 ZeroTier 设置界面, 可以在下面找到 OpenWrt 设备的访问记录,勾选Auth复选框,并点击 managed IPs 中的加号,为其分配一个虚拟局域网的IP地址,这个地址应该与该设备所在物理局域网区分开。在这个例子中,该设备位于 192.168.50.2 (物理局域网)与192.168.194.1 (ZeroTier ) image-20230822004308501
  5. 点击Auth旁边的扳手图标,在下拉菜单中选择 Allow Ethernet Bridging
  6. 向上翻到 Managed Routes ,添加如图所示的设置,让 192.168.194.1(openwrt设备的虚拟IP) 指向 192.168.50.0/24 (物理局域网地址池)image-20230822011928161

OpenWrt 的设置

  1. 打开openwrt,选择VPN - ZeroTier - 接口信息,窗口中会显示如下信息:

    1
    2
    ztkset3sce Link encap:Ethernet  HWaddr 00:00:00:00:00:00  
    inet addr:192.168.194.1 Bcast:192.168.194.255 Mask:255.255.255.0
  2. 选择 网络 - 接口 - 添加新接口,在包括以下接口中选择 ztkset3sce,点击提交

  3. 在新创建的接口中,设置 IPv4 地址,IPv4 广播,IPv4 子网掩码,其设置值分别对应第一步获取的 inet addr,Bcast,Mask
    image-20230822010309790

  4. 选择防火墙,为其分配一个从LAN转发到LAN的规则。注意要保证该规则对入站数据,出站数据,转发的规则为接受

现在,就可以使用其他设备从外网,使用局域网地址访问该局域网的所有设备了。例如,想要访问上图的NAS,只需连接 ZeroTier 后,在地址栏输入 192.168.50.111 即可