dwgx@blog:~$dwgx
> cd ../posts

QtEasyTier:给 EasyTier 套个 Qt 图形壳

// created

QtEasyTier 是一款基于 EasyTier 的去中心化异地组网工具,给命令行的 EasyTier 套了一层 Qt 图形壳,一键就能拉起网络。原作者是 myqfeng(gitee 仓库在这),我这份是 fork,自己用着顺手也拿来研究实现。

组网这块我踩过不少方案,靠中心服务器的那种一挂全断,延迟也不好看。EasyTier 走去中心化,每个节点平等,不依赖某台中心机,核心用 Rust + Tokio 写。缺点是本体是命令行,参数一大堆,临时拉朋友联机很麻烦,QtEasyTier 就是来解决这个入口问题的。

界面是纯 Qt C++,没塞 Chromium 也没 Webview,日常占用不到 50MB。现在很多桌面工具动不动打包一个浏览器内核,一个组网小工具就吃掉几百 MB,它这份克制很难得。UI 从 KDE 的 Breeze 移植过来,没自己硬造控件,直接搬 Plasma 那套现成样式,省事又好看。

功能上把 EasyTier 大部分能力都透出来了,可以按需配虚拟网络;同时留了一键联机,房主起服务拿到房间号发出去,房客输号就进同一个网。复杂内核加傻瓜入口这套分层,既没阉割能力又照顾了新手。

QtEasyTier 界面展示

自己编需要 Qt 6(作者推荐 6.10.1)、CMake 3.5+、支持 C++20 的 llvm-mingw,cmake 三连 cmake .. / --build / --install 走一遍就行。有个点值得记,加 -DSAVE_CONF_IN_APP_DIR=true 能编成便携版,配置写在程序目录而不是系统路径,还会禁掉开机自启,不污染系统。目前只覆盖 Windows 10/11,Linux 在计划里,Mac 因为作者没设备暂时搁置。协议 GPLv3。

想深入直接翻原仓库,别认错门。