随行记录

Openwrt安装zerotier及设置教程

Openwrt路由通过Zerotier组网实现异地内网互访

发表于 2018-07-23 更新于 2022-10-11

最近有三地组网需求,使相互能内网访问。此方案还可以通过OpenVPN来实现,本文只记录一下本次使用的Zerotier方案。

关于Zerotier方案的优缺点,阅读本文的同学自行搜索一下,此处不做赘述了。

本方案以Openwrt 18.06-RC2为例子做说明,其他版本理论类似,有需求的同学自己实验即可。

至于怎么注册zerotier账户,此处也不做说明。

Zerotier地址:https://my.zerotier.com/

Openwrt 安装Zerotier

安装Zerotier的方式有两种,本质是一样的,Luci 或者命令行安装。

  • 命令行安装
    |
1
2

|

opkg update
opkg install zerotier
  • Luci 下图形界面安装
    20180723161213

初始化Zerotier

  • 编辑配置文件
    |
1

|

root@Beijing:~#  vi /etc/config/zerotier

第一次打开文件看到的默认配置是下面这个,默认9993端口,如有冲突或者其他需要请自行修改。

|

1
2
3
4
5
6
7
8
9
10
11
12
13

|

config zerotier sample_config
        option enabled 0

        # persistent configuration folder (for ZT controller mode)
        #option config_path '/etc/zerotier'

        #option port '9993'

        # Generate secret on first start
        option secret 'generate'

        # Join a public network called Earth
        list join '8056c2e21c000001'

我们需要修改的共有两处:

    1. option enabled 0 改为option enabled 1
    2. list join ‘你的网络id’ ,其他的可以默认保持不变;
    • 启动zerotier
      |
    1
    2
    3

    |

    root@Beijing:~# /etc/init.d/zerotier start
    Generate secret - please wait...
    root@Beijing:~#

    这个时候会生成一个密钥,zerotier服务器端会根据密钥来判定用户id。

    如果执行以上命令失败,则尝试执行一下以下命令:

    失败信息有可能是[zerotier-one: missing port and zerotier-one.port not found in /var/lib/zerotier-one ]

    |

    1

    |

    root@Beijing:~# zerotier-one -d
    • 查询状态
      |
    1
    2
    3

    |

    root@Beijing:~# zerotier-cli listnetworks
    200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips>
    200 listnetworks 8056c2e21c000001  da:b4:ee:00:00:00 ACCESS_DENIED PRIVATE zt2lrwm2qj -

    从命令返回状态可以看出,已经成功连接zerotier服务器,但还未获得授权(ACCESS_DENIED)。

    不着急授权,先进行本地网络配置。

    接口添加

    单独添加一个新的接口是为了更清晰方便,如果想利用LAN接口桥接也是可行的,本文不做说明了,有这个技能的人,也不需要看此文章了:)

    • 添加本地接口
      20180723163333
      • 接口信息

    20180723163435

    • 创建并分配新的防火墙区域
      20180723163459

    配置防火墙

    • 进入防火墙基本设置
      20180723164230
    • 编辑基本规则
      20180723164252
    • 修改zerotier转发规则
      20180723164451

    最终修改结果

    20180723164453

    • 修改IPTABLES
      20180723164724

    |

    1
    2
    3

    |

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

    其中 zt2lrwm2qj 为接口名称

    Zerotier网页配置

    20180723165054

    • 设置路由
      20180723165150

    10.0.0.0/24为刚才配置的路由信息,一般家庭用户大部分默认的是192.168.1.1/24,建议进行一次修改,组网过程中,内网的网段不允许相同,10.10.10.110为自动分配或者手动分配给该设备的IP地址。

    • 查询路由状态
      进入路由,重新输入命令查询状态。可以看到已经成功获取到刚刚分配的10.10.10.110的IP地址。

    |

    1
    2
    3

    |

    root@Beijing:~# zerotier-cli listnetworks
    200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips>
    200 listnetworks 8056c2e21c000001  da:b4:ee:00:00:00 OK PRIVATE zt2lrwm2qj 10.10.10.110/24

    至此,第一台路由已经入网成功,依次设置第二个、第三个你所需要加入网络的路由。重复以上步骤,则可成功组网。

    完全完成之后

    ping 第二台路由的网关,可以看到已经成功连接:

    |

    1
    2
    3
    4
    5
    6
    7

    |

    root@Beijing:~# ping 10.0.1.1
    PING 10.0.1.1 (10.0.1.1): 56 data bytes
    64 bytes from 10.0.1.1: seq=0 ttl=64 time=36.784 ms
    64 bytes from 10.0.1.1: seq=1 ttl=64 time=17.829 ms
    64 bytes from 10.0.1.1: seq=2 ttl=64 time=17.901 ms
    64 bytes from 10.0.1.1: seq=3 ttl=64 time=18.004 ms
    64 bytes from 10.0.1.1: seq=4 ttl=64 time=19.042 ms

    本文是完成之后的回忆记录,尽可能的还原当时的状态,难免有不尽之处,还请谅解。
    希望此文能帮助初入Openwrt+Zerotier的你。

    回复

    This is just a placeholder img.