在自定义应用程序中嵌入 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 进行操作。