OmniEdge 异地组网部署

作者: alphapenng | 1613 字, 4 分钟 | 2022-12-31 | 分类: geek

geek, homelab, omniedge, vpn

toc

OmniEdge 是什么?

打开 OmniEdge的官网 https://omniedge.io/ 可以看到它的 slogan:

连接任何设备到局域网。 使用 OmniEdge 的下一代异地组网 Mesh VPN,将局域网架设到网上,将任何地方的任何设备连接到局域网,实现快速的访问。

OmniEdge 的功能其实跟 WireGuard 类似,是一个 VPN 软件,可以实现远程 Mesh 互连, 组建「大」局域网。

为什么选择 OmniEdge?

在上一篇博文 Tailscale 异地组网实践:Headscale 的部署方法和使用 中,我选择通过 Headscale + Tailscale 来组建我的「大」局域网,但在部署完成后测试各节点连通情况时,我发现我的节点之间并没有走直连方式,都是通过中继服务器来达成连接,公共的中继服务器都在国外,通过中继连接等于迂回了路由,效果不理想。虽然可以在国内云服务器上部署私有中继服务器,参考这篇文章 Tailscale 基础教程:部署私有 DERP 中继服务器,但文中提到这种方案实现的前提是需要满足以下几个条件:

  • 需要准备一台或多台云主机
  • 要有自己的域名,并且申请了 SSL 证书
  • 如果服务器在国内,域名需要备案

云主机我是有一台,在腾讯云上买的轻量应用服务器,享受的新用户首单特惠 88 元一年。

lighthouse-m

但没有申请域名,想着申请域名要花钱还要备案,就果断放弃了。

于是我就转向了 OmniEdge,OmniEdge 也可以部署私有中继服务器,在 OmniEdge 中它叫做 Supernode。部署 Supernode 只需要云主机有公网 ip 就行了,另外 OmniEdge 的其他客户端部署也较为容易,只要跟着文档一步一步来就行了。

Supernode 部署

  1. 安装 docker 环境

    部署 Supernode 需要云主机有 docker 环境,我的云主机系统是 Ubuntu Jammy 22.04 (LTS)的,可以参考 docker 官方文档,按照 Install Docker Engine on Ubuntu 指引,按步骤执行即可,最后通过 sudo docker run hello-world 测试是否安装成功

  2. 安装 supernode

    只需要执行一条命令即可

    sudo docker run -d -p 7787:7787/udp omniedge/supernode:latest
    

    查看 supernode 是否运行

    sudo docker container ls
    

    container_ls

    查看容器日志

    sudo docker logs -f <container-names>
    

    container_logs

    看到以上日志,就说明 supernode 启动成功了,如果日志有报错,就根据报错再排查。

  3. 开启云主机防火墙 7787 端口。

    找到云主机防火墙设置页面,在防火墙设置页添加一条规则,以允许云主机开放 udp/7787 端口。

    firewall

至此,supernode 就算部署完成了,接着我们根据需要安装客户端。

安装 OmniEdge 客户端

注册 OmniEdge,添加虚拟网络

首先访问 OmniEdge 注册页面,注册用户,然后登录后,点击虚拟网络选项,创建虚拟网络,免费用户只能创建一个虚拟网络,不过对于只组建一个「大」局域网的我来说,已经够了。

virtual-network

安装 macOS 客户端

可以参考官方文档 Installing on MacOS 进行安装。

这里我选择安装命令行客户端

  1. 安装 Tun/Tap 驱动

  2. 安装命令行客户端

    • 通过脚本安装:curl https://omniedge.io/install/omniedge-install.sh | bash

    • 然后在此页面 https://omniedge.io/dashboard 创建安全码

      secret-key

      create-key

      list-key

    • 通过刚才创建的安全码进行登录:omniedge login -s <yoursecuritykey>

    • 加入你创建的虚拟网络:sudo omniedge join

      join_virtual_network

至此,macOS 命令行客户端安装完成,接着我们安装 windows 客户端

安装 windows 客户端

可以参考官方文档 Installing on Windows 进行安装。

windows 客户端安装相对简单。

  1. 这里 下载 windows 安装包。下载完成后,双击运行进行安装。

  2. 右键点击系统托盘上的 OmniEdge 图标,在弹出的菜单中选择“Log in…”。

    log_in

  3. 登录客户端,再次打开系统托盘上的 OmniEdge 菜单,点击“Virtual Networks”,选择所要加入的虚拟网络名,点击“join”加入。

    join_virtual_network

  4. 当获取到虚拟网络IP地址后,即表示连接成功。

    connected

至此,windows 客户端安装完成并连接成功,接着我们安装 openwrt 客户端。

安装 openwrt 客户端

待更新。。。

测试节点连通情况

回到 mac,我们打开终端,测试一下与 windows 的连通情况,输入以下命令:

# 10.1.0.1 为 windows 客户端的虚拟网络 ip
gping -4 10.1.0.1

gping 是一个图表化 ping 命令的开源工具,可以通过 https://github.com/orf/gping 下载安装。

omniedge_test

从测试结果可以看出,最高延时在 158ms,最低延时在 56ms,平均延时稳定在 88ms,效果还是不错的。从我的网络情况来看,两个节点之间应该是通过中继服务器连接的,能达到这种延时不错了,就是不知道直连效果怎样。无论是在客户端还是在 supernode 上,都不知道怎样查看节点之间是直连还是中继的,今后就这样使用再看看稳定性如何。

相关文章

2022-12-02
OpenWrt开启802.11k-v-r协议实现手机在路由器之间无缝漫游
2022-11-21
EPON 上行 E8 C 家庭网关(烽火 HG220GS) telecomadmin 密码获取及桥接设置
2022-10-10
Tailscale 异地组网实践:Headscale 的部署方法和使用
2022-10-06
红米 AX6 解锁 SSH 安装 ShellClash 及刷机 Openwrt 教程