自Xlink发布以来,我们经历了4年的时间,从Xlink 1.0到Xlink 4.0,我们经历了发布、改版、优化、创新等各项工作。
一、Xlink基于vnc+容器实现了远程桌面的自动化管理功能,但是由于vnc协议的问题,在性能上始终有些解不开的答案,同时由于EDA行业的特殊性,vnc跳转无法有效的支持LSF的bsub -Ip功能。只能使用XF来提交job。
在Xlink上,我们做了大量的工作,但是后续的开发已经无法有效解决实际问题,因此我们决定放弃vnc方案,改用其他开源组件作为后续开发的依据,在后续开发的基础上,我们将基于vnc的xlink命名为ftu/v1协议版本。
但是Xlink依旧作为半开源项目继续开放使用,且提供持续的技术支持,只是不再更新版本,针对BUG和补丁需要用户自行负责。
****** FTU为 Fasteda Turbo Unit的简称(EDA 连接高速连接单元)。
二、在Xlink开发和改版优化的同时,我们开发了ftu 2.0版本,这个版本是基于xpra实现的。我们称之为ftu/v2协议。
Ftu2.0版本经过开发、优化、测试后,我们同样发现了一些难以解决的问题,例如无法有效的将xpra进行打包分发,无法有效的进行二次编译开发。虽然在连接能力上已经实现了,但是经过深思熟虑,我们还是决定不做2.0的版本发布。同时基于2.0版本开发自有协议的快速连接工具。
三、Ftu3.0基于自有协议 ftu/v3进行开发。我们制作了 客户端模块(launcher和ftu-client)、App(ftu_app)、及服务端模块(ftu-agent和ftu-server)五大模块
模块介绍
组件 | 文件 | 运行位置 | 职责 |
App (管理端) | ftu_app | 管理服务器 | 用户认证、会话管理、Web UI、WS代理 |
ftu-agent | ftu-agent | 每台节点服务器 | 节点注册、启动/停止 ftu-server、CONNECT隧道 |
ftu-server | ftu-server | 节点服务器(由agent启动) | 桌面采集、FTU/3协议服务端、Web桌面(HTTPS) |
ftu-client | ftu-client | 用户客户端(由launcher启动) | FTU/3协议客户端、渲染远程桌面 |
launcher | launcher.py | 用户客户端 | 解析链接、建立隧道、启动ftu-client |
在安全机制上,我们采用了分组加密、多重密钥和握手的方式
安全性介绍
函数/方法 | 签名 | 说明 |
FTU/3 握手加密 | X25519 ECDH + HKDF-SHA256 → AES-256-GCM;每帧独立随机 IV;零明文密码传输 | |
PSK 扩展 | REMOTEX_SECRET 设置时,DH shared secret 与 PSK 混合再 HKDF;未持有 PSK 的客户端 GCM tag 验证失败 | |
隧道 URL 加密 | 路径和 auth 参数均 AES-128-CBC 加密;密钥从变量获取 | |
ConnectionToken | 一次性 token(validity=300s),validate_web_token 每次验证后刷新过期时间 | |
TLS(Web 模式) | ftu-server 生成自签名 RSA-2048 证书;ws_proxy 以 CERT_NONE 方式连接(内网场景) |
客户端兼容性
平台 | 兼容 | 描述 |
Windows | 兼容 | 以开发windows版本的客户端,支持非管理员的msi与exe,与支持管理员模式(Alluser)的msi与exe |
Linux | 兼容 | 当前适配RHEL8与UBUNTU |
Macos | 未兼容 | 暂时未开放客户端 |
信创(ARM) | 半兼容 | 只具备显示和操作功能 |
信创(龙芯) | 未兼容 | 暂时未开放客户端 |
三种连接模式
direct 模式
launcher → agent (CONNECT) → ftu-server:tcp_port
📌 适合 launcher 与 agent 在同一内网,无需经过 app 中转。
redirect 模式
launcher → app (CONNECT hop1) → agent (CONNECT hop2) → ftu-server:tcp_port
📌 适合 launcher 只能访问 app,agent 与 app 在同一内网。
web 模式
浏览器 ws://app/web/<sid>/<token>
→ ws_proxy 验证 token → CONNECT 到 agent→ TLS wrap → WS 握手到 ftu-server:web_port
📌 无需安装客户端,任意支持 WebSocket 的现代浏览器可用。
在暴露外网或者VPN的情况下,我们支持以APP为跳板,只需要开放APP独立端口的情况下就支持所有用户接入,不在需要针对node节点暴露单独的端口。
四、关于版本发布
Ftu协议虽然已经到了ftu/v3,但是ftu软件将以初始版本1.0.0作为发布信息,因此请注意:用户手册及软件版本标注不同,但是适用性没有问题。
所以:各位,敬请期待!!!
FTU预览页面:https://www.fasteda.cn/ftu.html


网友留言: