#wireguard #vpn #networking

defguard_wireguard_rs

用于管理WireGuard接口的统一的多平台高级API

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 网络编程

Download history 15/week @ 2024-03-13 8/week @ 2024-03-20 6/week @ 2024-03-27 15/week @ 2024-04-03 3/week @ 2024-04-17 13/week @ 2024-04-24 13/week @ 2024-05-01 28/week @ 2024-05-08 19/week @ 2024-05-15 20/week @ 2024-05-22 153/week @ 2024-05-29 180/week @ 2024-06-05 225/week @ 2024-06-12 200/week @ 2024-06-19 544/week @ 2024-06-26

1,173 每月下载量
用于 2 crates

Apache-2.0

165KB
4K SLoC

defguard

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,并且命令 wgwireguard 需要从命令行调用。

关于 wireguard-go 的说明

如果您打算使用用户空间WireGuard实现,请注意,当前该库假设在运行时 wireguard-go 二进制文件将可用。在实例化API时有一些合理性检查,但安装不在本项目的范围内。

示例

文档

请参阅文档获取更多信息。

社区和支持

在Matrix上找到我们:#defguard:teonite.com

贡献

请参阅贡献指南了解如何开始为项目做贡献。您可能还会发现我们的环境设置指南很有用。

法律

WireGuard是Jason A. Donenfeld的注册商标:商标政策

依赖项

~0.7–2.1MB
~46K SLoC