问题标签 [wintun]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
488 浏览

c++ - wintun:ERROR_INVALID_PARAMETER 注册环形缓冲区

我目前正在尝试让wintun驱动程序与我的程序一起工作以进行简单的隧道传输(请参阅:https ://www.wintun.net/ )。

我成功找到并打开了网络设备,但是在注册缓冲区时,我得到了结果ERROR_INVALID_PARAMETER(87)。就像我说的那样,打开工作就很好,并且注册是通过SYSTEM特权完成的(如果不这样做,我得到ERROR_ACCESS_DENIED(5))。

第一次尝试是malloc环形缓冲区,但在那之后没有用,我查看了 OpenVPN 是如何做到的(是的,它添加了 wintun 支持),它们似乎与CreateFileMapping.

首先,这是我的结构:

这是根据文档(https://git.zx2c4.com/wintun/about/ “环形布局”部分)。它也与 OpenVPN 相同。

之后我创建文件映射

然后我创建映射:

最后(在模拟系统用户之后)尝试注册它DeviceIoControl

谁能指出我错在哪里?就像我说的,malloc而不是文件映射相同的错误arieses。

我已经写了一个完整的例子,现在使用malloc

请确保RUN THIS ELEVATED否则您将收到错误 5 ERROR_ACCESS_DENIED

0 投票
1 回答
3255 浏览

wireguard - Windows 上的 WireGuard:无法创建 Wintun 接口:注册环时出错:列出 NDIS 接口时出错:未找到接口

我已经在 Windows server 2017 上安装了 WireGuard。当我通过客户端应用程序(管理器)激活隧道时,一切正常。重新启动计算机后,WireGuard 无法自动启动。该日志包含以下错误:

[tun] [wg0] Unable to create Wintun interface: Error registering rings: Error listing NDIS interfaces: no interfaces found

我可以通过客户端应用程序显式/手动激活隧道,但如果机器重新启动,我需要隧道自动启动。

我已将它安装在其他 Windows Server 2017 机器上,并且在这些机器上 WireGuard 在系统启动时自动启动。

感谢您帮助解决机器启动时 WireGuard 自动启动的问题。

0 投票
0 回答
61 浏览

c++ - Wintun 适配器无法接收正确的数据包

我用 WireGuard 和 c++ 的 wintun 创建了一个适配器。一般来说是这样的(我删除了一些不相关的代码)

我没有自己更改路由表,但是系统添加了一些规则。路由表如下所示: 路由打印命令的结果

然后我使用 python 脚本通过发送 udp 数据包对其进行测试:

但是,我的 wintun 适配器刚刚收到一些奇怪的 IP 数据包,其目标 IP 地址为 192.168.21.255,并且从未收到预期的 IP 数据包。其中一个看起来像这样:

此外,我的wintun适配器也收到了一些目的IP地址为224.0.0.252或157.216.24.127的数据包,它们都与上面类似。只要我运行我的python脚本发送一个udp数据包,我的wintun适配器就收到了这样一个数据包。
我已经尝试了很多,但仍然不知道出了什么问题,所以请给我一些帮助。非常感谢。