在自定义应用程序中嵌入 WireGuard
WireGuard 项目的客户端应用程序在设计时充分考虑了最大程度的可重用性,因此可以使用 WireGuard 创建自定义应用程序。不同平台上的情况略有不同,本页试图总结该项目的可用功能。
如果您是一名系统管理员,只是想编写现有 WireGuard 客户端的脚本,那么本页面不适合您。除了Windows 企业管理指南之外,您还可以查看wg(8)
和工具的文档。wg-quick(8)
Windows:可嵌入 dll 服务
可嵌入 dll 服务代码和文档让库的消费者可以创建嵌入 WireGuard 的完整独立 Windows 服务。
Windows:WireGuardNT
WireGuardNT 项目提供了一种比 embeddable-dll-service 低级得多的嵌入 WireGuard 的方法。强烈建议使用 embeddable-dll-service 而不是直接使用 WireGuardNT,因为前者在内部使用了后者。
macOS 和 iOS:WireGuardKit
macOS 和 iOS 都从同一个存储库提供WireGuardKit,允许使用 Swift PM 轻松集成。
安卓: com.wireguard.android:tunnel
Android在 Maven Central 上提供了 com.wireguard.android:tunnel 库,其中包含详尽的类文档和gradle 的简介。
Linux:可嵌入的 wg 库
wireguard-tools 包包含一个用于与内核交互的单文件 C 库。
Linux/BSD/Darwin: wgctrl-go
wgctrl-go项目允许从 Go 创建和操作 WireGuard 配置。
Linux:网络管理器、Systemd、connmann
NetworkManager、Systemd 和 connman 均具有完整的 WireGuard 支持,可以使用其各自的 dbus API 进行操作。