DefGuard/wireguard-rs

GitHub: DefGuard/wireguard-rs

一个跨平台 Rust 库,为内核态和用户态 WireGuard 实现提供统一的编程接口。

Stars: 292 | Forks: 28

defguard

**defguard_wireguard_rs** 是一个多平台 Rust 库,提供统一的高级 API,用于使用原生 OS 内核和用户空间 WireGuard 协议实现来管理 WireGuard 接口。 它可用于创建您自己的 [WireGuard:tm:](https://www.wireguard.com/) VPN 服务器或客户端,以实现安全且私密的网络连接。 它是作为 [defguard](https://github.com/defguard/defguard) 安全平台的一部分开发的,并用于 [gateway/server](https://github.com/defguard/gateway) 以及 [desktop client](https://github.com/defguard/client)。 ## 支持的平台 - 原生 OS 内核:Linux, FreeBSD (以及 pfSense/OPNSense), NetBSD, Windows - 用户空间:Linux, macOS, FreeBSD, NetBSD ### 独特功能 - **Peer 路由** - 参见 [WGApi](https://docs.rs/defguard_wireguard_rs/latest/defguard_wireguard_rs/struct.WGApi.html) 文档。 - 配置 **DNS 解析器** - 参见 [WGApi](https://docs.rs/defguard_wireguard_rs/latest/defguard_wireguard_rs/struct.WGApi.html) 文档。 - 在 FreeBSD 上,网络接口使用 **ioctl** 进行管理。 - 在 Linux 上,使用 **netlink** 处理网络路由。 - **fwmark** 处理 ### Windows 支持 请注意,[WireGuard-NT](https://git.zx2c4.com/wireguard-nt/about/) [dll 文件](https://download.wireguard.com/wireguard-nt/) 必须放置在相对于您的二进制文件的 `resources-windows/binaries/wireguard.dll` 路径下。 #### Windows 开发 进行 Windows 开发您需要: 1. `stable-x86_64-pc-windows-gnu` Rust 工具链。使用 `rustup` 更改工具链: ``` rustup install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu ``` 2. 安装 [MSYS2](https://www.msys2.org/) 3. 然后在 MSYS2 终端中运行: ``` pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-nasm ``` 4. 最后将 msys 添加到您的 PATH: ``` # cmd set PATH=C:\msys64\ucrt64\bin;%PATH% # power-shell $env:PATH = "C:\msys64\ucrt64\bin;" + $env:PATH ``` 更多信息可以在 [这里](https://stackoverflow.com/a/79640980) 找到。 ## 示例 - Client: https://github.com/DefGuard/wireguard-rs/blob/main/examples/client.rs - Server: https://github.com/DefGuard/wireguard-rs/blob/main/examples/server.rs ## 文档 更多信息请参见 [文档](https://defguard.gitbook.io)。 ## 社区与支持 通过 [GitHub Discussions](https://github.com/DefGuard/defguard/discussions/new/choose) 联系我们的社区 ## 贡献 请查阅 [贡献指南](https://defguard.gitbook.io/defguard/for-developers/contributing) 了解如何开始为项目做贡献。您可能也会发现我们的 [环境设置指南](https://defguard.gitbook.io/defguard/for-developers/dev-env-setup) 很有用。 # 法律信息 WireGuard® 是 Jason A. Donenfeld 的 [注册商标](https://www.wireguard.com/trademark-policy/)。
标签:API, Defguard, DNS配置, FreeBSD, Fwmark, ioctl, Netlink, Rust, VPN, WireGuard, WireGuard-NT, 内核态, 加密通信, 可视化界面, 客户端开发, 用户态, 网关开发, 网络安全, 网络安全, 网络接口管理, 网络流量审计, 网络路由, 跨平台库, 通知系统, 通知系统, 隐私保护, 隐私保护