跳到主要内容

使用ZeroTier实现外网文件共享

ZeroTier 可以建立一个私有的虚拟化对等网络,在没有公网IP的情况下可以实现外网设备访问互通。

悦库网盘是一款私有部署的企业级文件管理系统,实现安全存储、文件共享、权限管控、协同编辑等功能,支持Windows、Linux部署,拥有WEB、PC、虚拟盘、手机端、命令行多种客户端访问方式。

本文使用悦库网盘作为文件服务器,通过ZeroTier创建一个虚拟化网络,然后访问悦库网盘的设备加入到该网络,实现外网文件共享。

1. 准备工作

  • 参考悦库官网文档,完成服务端部署,并验证可访问。
  • 注册ZeroTier账号 (截止本文发布时,免费版可以创建25个节点)。

2. 配置虚拟网络

  1. 登录ZeroTier,创建一个虚拟网络,以下简称网络。 image-20220818154918652

  2. 创建成功后会在列表中生成一个新网络,名称会自动生成。

    image-20220818155317162

  3. 点击进入网络完成配置。

    基础设置

    基础设置用于设置网络名称、网络描述、访问控制。访问控制分为私有和公共,私有是指其他用户首次加入网络时需要审核,公共则不需要审核。为了安全,我们设置为私有网络。

    这里您需要保存网络ID,因为后续其他设备加入网络时,需要使用这个网络ID。

    高级设置

    高级设置可以设置路由和网段、IPV6、广播等信息。

    通常不需要额外的高级设置,这里使用默认的 172.27.* .* 网段,这样我们建立网络后,设备连接网络时会分配 172.27. 开头的IP地址。

    image-20220818155943569 网络中的成员

    这一栏显示加入当前网络中的成员,由于是刚创建的网络还没有任何成员加入。

    image-20220818161146833 完成网络配置

    配置信息更新后会自动保存,到此为止我们就完成了简单的配置。

3. 访问设备加入网络

通过以下步骤,将悦库服务端所在设备和所有需要访问悦库网盘的设备都加入到虚拟网络中。

  1. 下载安装ZeroTier客户端

image-20220818161900129

  1. 设备加入网络

    Windows设备

    下载WIndows客户端,安装后会在托盘中显示,鼠标右键点击后弹出菜单,点击加入新网络,填写上面步骤中我们创建的网络ID。

    点击进入后,显示网络ID已加入,但此时连接被拒绝。 这是因为我们创建网络时设置的是私有网络,需要登录ZeroTier授权。

    Linux设备

    下载并安装ZeroTier Linux客户端

    curl -s https://install.ZeroTier.com | sudo bash

    加入网络,下面命令的网络ID,需填写上面步骤中我们创建的网络ID。

    sudo ZeroTier-cli join e5cd7a9e1ccedd59
  2. ZeroTier授权

    网络的创建者登录ZeroTier,进入对应的网络设置页面,找到Members标签。没有勾选的项就是还没有授权的设备。

    勾选需要授权访问的设备,同时也可以对该设备进行名称备注。

  3. 确认设备已加入网络

    如果当前是悦库服务端所在设备,则加入网络后请保存当前设备的虚拟网络IP,用于后续用于配置悦库客户端连接地址。

    Windows设备

    确认网络加入成功:

    image-20220818165338256

    确认设备的虚拟网络中的IP:

    image-20220818165634077

    Linux设备

    输入命令,通过查看IP,确认已加入网络

    ifconfig

    image-20220819101537699

4. 配置悦库连接地址

在所有设备都加入虚拟网络后,无论在内网或外网环境下,我们都可以通过虚拟网络的IP地址访问悦库服务端。

  1. 确认悦库服务端所在设备的虚拟网络IP。如果在之前的步骤中没有记录,可以查看确认设备已加入网络

  2. 使用虚拟网络地址打开悦库服务端网页端:

    image-20220818170333580

  3. 客户端在登录配置中填写悦库服务端设备的虚拟网络地址。

    登录进入

    image-20220819104441080