10个版本
0.4.2 | 2024年2月8日 |
---|---|
0.4.1 | 2024年2月5日 |
0.4.0 | 2024年1月25日 |
0.3.2 | 2023年12月19日 |
0.2.3 | 2023年10月16日 |
#376 in 网络编程
1,173 每月下载量
用于 2 crates
165KB
4K SLoC
defguard_wireguard_rs 是一个多平台Rust库,它使用原生操作系统内核和用户空间WireGuard协议实现,提供统一的高级API来管理WireGuard接口。它可以用来创建自己的WireGuard™️ VPN服务器或客户端,用于安全且私密的网络。
它是作为defguard 安全平台的一部分开发的,并在gateway/server 以及桌面客户端中使用。
支持的平台
- 原生OS内核:Linux,FreeBSD(包括pfSense/OPNSense),Windows
- 使用wireguard-go 的用户空间 - Linux,macOS,FreeBSD
独特功能
- 对等路由 - 请参阅WGApi 文档。
- 配置 DNS解析器 - 请参阅WGApi 文档。
- 在FreeBSD上使用 ioctl 管理网络接口。
- 在Linux上,使用 netlink 处理网络路由。
- 处理 fwmark
Windows支持
请注意,在Windows上需要使用 WireGuard,并且命令 wg
和 wireguard
需要从命令行调用。
关于 wireguard-go
的说明
如果您打算使用用户空间WireGuard实现,请注意,当前该库假设在运行时 wireguard-go
二进制文件将可用。在实例化API时有一些合理性检查,但安装不在本项目的范围内。
示例
- 客户端:https://github.com/DefGuard/wireguard-rs/blob/main/examples/client.rs
- 服务器:https://github.com/DefGuard/wireguard-rs/blob/main/examples/server.rs
文档
请参阅文档获取更多信息。
社区和支持
在Matrix上找到我们:#defguard:teonite.com
贡献
请参阅贡献指南了解如何开始为项目做贡献。您可能还会发现我们的环境设置指南很有用。
法律
WireGuard是Jason A. Donenfeld的注册商标:商标政策
依赖项
~0.7–2.1MB
~46K SLoC