2.1 Yakit 应用架构与安装配置
2.1.1 Yakit 应用架构
在深入探索 Yakit 强大的功能集之前,理解其底层的应用架构至关重要。这不仅能帮助我们更高效地利用平台,还能在遇到问题时,提供清晰的故障排查思路。Yakit 采用了现代软件工程中主流的前后端分离(Client-Server)设计模式,将整个系统解耦为两个独立而又协同工作的核心部分:用户区与核心功能区。
本小节将围绕两大核心命题展开:第一,阐明 Yakit 前后端分离架构的核心理念与组件构成;第二,解析各组件之间的通信机制与数据流转过程。 通过对这一架构的理解,用户将能从“黑盒”使用者转变为能够洞察其内部工作原理的“白盒”使用者,为后续的高级应用和二次开发奠定坚实的理论基础。
架构组件解析
图:Yakit 架构组件解析示意图
Yakit 的整体架构可以清晰地划分为两大区域:负责用户交互的用户区和执行核心安全任务的核心功能区。
-
用户区 (Client-Side):
-
Yakit 用户入口: 这是用户直接与之交互的图形化界面(GUI),基于 Electron 技术栈构建。作为一个跨平台的客户端,它负责渲染所有操作界面、响应用户输入,并将用户的操作意图转换为具体的指令,通过 gRPC 协议发送给后端。同时,它也负责接收后端返回的数据,并以可视化的形式(如表格、图表)呈现给用户。
-
外部生态: Yakit 的强大之处还在于其开放性,它能够无缝对接和利用业界成熟的第三方安全生态。例如,它可以支持
nmap/wappalyzer格式的指纹库进行资产识别,分析 Web 应用技术栈,或执行基于nuclei yaml poc格式的漏洞检测规则。这种设计使得 Yakit 能够站在巨人的肩膀上,快速集成和利用外部先进能力。
-
-
核心功能区 (Server-Side):
-
操作系统交互区: 这是后端服务的“上层建筑”,由三大组件构成。
-
Yak gRPC 核心引擎: 作为后端服务的入口,它是一个 gRPC 服务器,持续监听并处理来自前端的请求。
-
认证服务: 负责管理用户身份与权限,确保操作的合法性。
-
本地数据持久化: 通过内建的数据库,负责存储项目数据、扫描历史、配置信息等,保证工作的可追溯性和连续性。
-
-
Yakit 核心能力: 这是后端服务的“能力基石”,真正执行安全任务的功能模块集合。所有模块均由高性能的 Yaklang 语言驱动。
- Yaklang 语言核心功能: 包括中间人攻击(MITM)模块、Web Fuzzer 模糊测试模块、强大的 Yak 语言引擎自身、原生深度集成的安全领域模块与插件。这些模块构成了 Yakit 执行具体安全测试任务的核心武器库。
-
通信与工作流
Yakit 的前后端之间通过高效的远程过程调用(RPC)框架 gRPC 进行通信。当用户在前端界面执行一个操作时(例如,发起一次 Web 扫描),前端会将目标、参数等信息打包成一个 gRPC 请求,发送给后端的 Yak gRPC 核心引擎。引擎接收到请求后,会分发给相应的核心能力模块(如 Web Fuzzer)去执行。任务执行过程中产生的数据或最终结果,会通过 gRPC 流式或一次性地返回给前端进行实时展示,并由本地数据持久化模块存入数据库。
这种前后端解耦的架构带来了显著的优势:首先,性能与体验兼顾,计算密集型的任务交由后端高性能引擎处理,保证了前端 UI 的流畅响应;其次,高度的灵活性与可扩展性,后端引擎可以独立部署在远程服务器上,实现远控操作,也为未来开发不同形态的前端(如 Web 端、移动端)提供了可能。
在理解此架构后,当我们遇到问题时,便可以进行初步的定位:界面显示错乱、按钮无响应等大概率是前端问题;而某个功能长时间无返回、执行报错等则很可能是后端引擎或其依赖的核心模块出现了异常,应首先检查引擎的运行状态和相关日志。
2.1.1 软件获取安装与基本配置
Yakit 当前支持 Windows、Linux 和 macOS 等主流操作系统(包括某些国产操作系统环境也有对应支持)。在安装之前,请确定你的电脑操作系统符合要求,并准备好足够的磁盘空间。对于 Windows 用户,确保具备管理员权限;Linux 用户如要使用全部功能(例如进行SYN端口扫描需要原生套接字),需要 root 权限运行;macOS 用户可能需要通过安全设置允许应用运行。
下载Yakit安装包
- 官网下载:访问 Yaklang 的官方网站(https://yaklang.com),在首页可以找到 Yakit 最新版本的安装程序并下载。官网通常提供 Windows 安装包(.exe)、macOS 安装包(.dmg)以及 Linux 可执行文件或压缩包。
图:Yakit IDE多平台安装包下载界面
- Github Releases:也可以前往 Yakit 的 GitHub 仓库页面(https://github.com/yaklang/yakit/releases)下载发布的安装文件。GitHub 上通常也提供各平台对应的版本。
图:Yakit GitHub页面v1.4.1-0606版本发布页
下载完成后,应该获得对应平台的安装程序文件。例如 Windows 下是一个 .exe 可执行安装程序,macOS 下是 .dmg 安装镜像,Linux 下可能是一个可运行的压缩包或安装脚本。
在多系统多平台下安装Yakit
Windows下安装 Yakit
Yakit 的 Windows 安装程序是一个独立的 .exe 可执行文件,封装了所有必要的组件和依赖。整个过程通过一个清晰的向导界面引导用户完成,无需复杂的手动配置。
双击下载的 Yakit-<version>-windows-amd64.exe 安装文件。随后将出现标准的安装向导界面。基于 Windows 标准安装向含,Yakit 的部署流程被清晰地分解为以下四个核心步骤。每一步都包含了关键的配置选项和需要用户理解的背景信息,以确保安装的顺利与后续使用的稳定。
图:Yakit 安装向导步骤界面
步骤一:启动向导与准备 (对应图示 ①)
在执行下载的 Yakit-<version>-windows-amd64.exe 文件后,用户将首先看到“欢迎使用 Yakit 安装向导”界面。这是一个标准的启动画面,其主要作用是告知用户即将开始安装流程。如向导提示,建议在进行下一步操作前关闭其他所有应用程序,这是一个保障安装过程不受干扰的行业标准实践,可以有效避免因文件占用或系统资源冲突导致的安装失败。用户确认准备就绪后,应单击“下一步(N)”继续。
步骤二:定义安装路径与数据迁移 (对应图示 ②) 此步骤是整个安装过程中至关重要的一环,它不仅决定了程序文件的存放位置,更关系到用户数据的持久化与版本升级的平滑过渡。用户可以在“目标文件夹”字段中自定义 Yakit 的安装目录,或直接接受默认路径。
核心技术点在于数据迁移机制:安装向导会智能检测系统中是否存在旧版本的 Yakit。如提示所示,“检测到程序已经安装…安装程序会自动迁移 yakit-projects 文件夹”。yakit-projects 是 Yakit 用于存放所有用户工作数据(包括项目、笔记、配置、历史记录等)的核心目录。这一自动化迁移功能是确保用户在升级时所有宝贵数据都能被无缝继承到新版本的关键,极大地简化了版本更新操作并保障了数据的安全性。确认路径后,点击“安装(I)”进入下一阶段。
步骤三:自动化安装执行 (对应图示 ③) 在确定安装配置后,向导将进入“正在安装”阶段。在此过程中,安装程序会自动执行一系列后台操作,包括但不限于:解包程序文件、将文件复制到指定的目标目录、创建必要的文件夹结构以及写入相关的配置信息。用户界面会通过一个进度条实时反馈安装进度。此过程完全自动化,用户无需进行任何干预,只需耐心等待其完成即可。
步骤四:完成安装与环境配置 (对应图示 ④) 这是安装流程的最后一步,向导在“正在完成 Yakit 安装向导”界面提供了三个关键的收尾选项,允许用户对安装后的即时行为和环境进行配置:
-
运行 Yakit(R): 勾选此项,在关闭向导后将立即启动 Yakit GUI。推荐在首次安装时勾选,以便直接进入后续的引擎初始化步骤,验证安装是否成功。
-
创建桌面快捷方式: 一个便捷性选项,勾选后将在桌面生成一个 Yakit 的快速启动图标。
-
删除旧引擎: 这是一个重要的环境清理与维护选项。鉴于 Yakit 前后端分离的架构,此选项特指清理本地可能残留的、与新版本不兼容的旧版核心引擎(Yak-Core)。在执行升级安装时,强烈建议勾选此项,以防止新版 GUI 与旧版引擎之间可能出现的版本兼容性问题,同时能够释放磁盘空间,保持系统环境的纯净。
根据个人需求完成上述选项的配置后,点击“完成(F)”即可正式结束安装流程。
macOS安装Yakit
我们将以 macOS 平台为例,详细阐述从获取安装包到首次启动并完成引擎初始化的完整流程。对于专业用户而言,正确的初始化配置是决定工具工作模式(本地或远程)的关键步骤,直接影响后续的协作效率与资源利用。首先我们打开下载好的 Yakit-<version>.dmg 镜像文件。按照弹出的安装窗口提示,将 Yakit 图标拖动到“Applications”(应用程序)文件夹中完成安装。
图:Yakit macOS安装界面展示拖拽操作
操作步骤非常直观:
-
下载适用于您 Mac 芯片架构(Intel x86_64 或 Apple Silicon arm64)的最新
.dmg文件。 -
双击打开该文件,系统将挂载一个虚拟磁盘并展示如上图所示的窗口。
-
按住鼠标将左侧的 Yakit 图标直接拖拽到右侧的 Applications (应用程序) 文件夹快捷方式上。
-
完成文件复制后,即可在“启动台”或“应用程序”文件夹中找到并运行 Yakit。
安装后可在“Launchpad”中找到 Yakit。安装后,Yakit 即可在 macOS 上运行。
Linux安装Yakit
Yakit 在 Linux 下通常以 AppImage 或可执行二进制发布。很多情况下无需复杂安装,只需确保 Yak 引擎已安装(后续会提到)。如果提供的是 AppImage 文件,如 Yakit-<version>-linux-x86_64.AppImage,则需要先给它执行权限(chmod +x Yakit-*.AppImage),然后直接运行即可。首次运行可能弹出集成提示,按照选项操作。
首次启动与运行模式分类
在前一节中,我们深入解析了 Yakit 前后端分离的应用架构,这一设计赋予了 Yakit 极高的灵活性。在首次启动应用时,您将直接体验到这种灵活性——系统会引导您在两种运行模式中做出选择。正确理解并选择适合您当前工作场景的模式,是发挥 Yakit 全部潜能的关键。
本节的核心任务是阐明两种运行模式的定位与价值,并提供清晰的配置指引。我们将重点介绍作为标准推荐的本地模式,它已经能够满足绝大多数大规模、高性能的专业安全任务需求。同时,我们也会解析远程模式,它作为一种灵活的架构补充,在特定场景下发挥着不可替代的作用。
初始化页面
当您完成安装并首次运行 Yakit 客户端时,一个简洁的初始化向导会呈现在您面前。这是您进入 Yakit 世界的第一个关口,它提供了两个核心选项:“初始化引擎”和“远程连接”。
图:Yakit本地引擎初始化界面与提示
-
初始化引擎(本地模式): 这是 Yakit 的标准推荐模式。选择此项,Yakit 会为您创建一个完整、高效的本地一体化工作站。它将 Yakit 客户端与后台强大的 Yak 核心引擎无缝集成在您的本地机器上。这种模式足以应对从日常渗透测试到大规模资产测绘的绝大多数专业任务,能够最大化利用本地硬件性能,提供最佳的响应速度和执行效率。
-
远程连接(远程模式): 这是一个面向特定架构需求的高级选项。它允许 Yakit 客户端连接到一个独立部署的 Yak 核心引擎实例。当您遇到资源限制(如需在高性能服务器上执行重度任务)或需要团队协作(多成员连接同一后端引擎)等情况时,远程模式将提供有效的解决方案。
对于某一些基于 Apple Silicon (arm64) 的 macOS 用户,如果你想要在本地运行 arm64 版本的 Yak 引擎,若系统未安装 Rosetta 2,向导会提示您先行安装以确保 Yakit 所有组件的完美兼容性(如果用户使用较新版本的Yakit则一般不会出现这个兼容问题)。
本地模式:开箱即用的一体化高性能工作站
对于绝大多数用户而言,本地模式是兼具便捷性与强大性能的最佳选择。它实现了“开箱即用”的体验,让您能立刻投入核心工作。直接点击之前的“初始化引擎”然后重启应用,初始化成功后系统将直接带您进入 “项目管理” 页面,这是您所有工作的起点。
在此,推荐用户直接使用“初始化引擎”直接进入 Yakit 操作界面,在第一次使用Yakit平台的时候,用户会首先看到“项目管理”功能(我们在后续讲详细讲解项目管理的功能)
图:Yakit本地模式项目管理界面
远程模式:应对特定架构的分布式部署方案
虽然本地模式已足够强大,但在某些特定场景下,将“界面”与“计算”分离的远程模式会更具优势。其核心价值在于资源解耦与协同作业。
适用场景:
-
资源解耦:在高性能服务器上部署核心引擎以执行计算密集型任务,同时在您的个人笔记本上运行轻量级客户端进行操作。
-
中心化协作:团队成员连接至同一个中心化后端引擎,共享项目数据、任务状态和测试成果。
-
网络穿透:将引擎部署在目标内网环境中,您可以在外网通过客户端进行远程安全测试。
配置步骤:
-
在服务器端部署核心引擎:
- Linux / macOS 一键安装:
bash <(curl -sS -L http://oss-qn.yaklang.com/install-latest-yak.sh)- Windows系统一键安装 (Windows PowerShell):
(new-object System.Net.WebClient).DownloadFile('https://oss-qn.yaklang.com/yak/latest/yak_windows_amd64.exe','yak_windows_amd64.exe'); ./yak_windows_amd64.exe install; del /f yak_windows_amd64.exe- 您也可以随时访问官方 GitHub
https://github.com/yaklang/yaklang/releases手动下载二进制文件。
-
启动引擎 gRPC 服务: 在服务器终端中执行
yak grpc命令。可使用--host和--port参数指定监听的 IP 与端口,如yak grpc --host 0.0.0.0 --port 9999。 -
在 Yakit 客户端配置连接: 返回客户端,选择“远程模式”,并填写服务器的 IP 地址 和 端口号。
图:Yakit远程模式连接配置界面
- 点击 “启动连接”,成功后即可像使用本地模式一样操作,但所有任务都将在远程服务器上执行。
项目管理:结构化工作的核心枢纽
当您完成初始化并进入 Yakit 主界面后,首先接触到的便是“项目管理”视图。这并非一个简单的文件列表,而是 Yakit 进行结构化安全工作的核心枢纽,是您所有测试活动的起点。
其核心设计理念是工作空间隔离与数据持久化。在专业的安全测试流程中,针对不同目标或任务的数据(如资产信息、MITM 流量、漏洞详情、插件扫描结果等)必须进行严格分离,以确保数据的完整性和机密性。Yakit 中的每一个“项目”,本质上都是一个独立的、自包含的数据库文件,它封装了特定任务的全部上下文数据,从而实现了彻底的逻辑隔离。
图:Yakit项目管理界面展示
如图所示,项目管理界面提供了清晰的操作路径:
-
新建项目:为一次正式的渗透测试或漏洞挖掘任务创建专属工作空间。这是最常用的选项。
-
临时项目:用于进行临时的、无需长期保存的验证性工作,关闭后数据即被销毁,保持工作区整洁。
-
文件夹与导入/导出:通过文件夹对项目进行分类归档,并支持项目的导入导出,便于数据迁移和团队分享。
当然,普通用户可以直接点击默认数据库进入主界面,我们将在2.2章节中对Yakit主体的内容进行讲解。