问题标签 [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.
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
。
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 自动启动的问题。
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适配器就收到了这样一个数据包。
我已经尝试了很多,但仍然不知道出了什么问题,所以请给我一些帮助。非常感谢。