首页
学习
活动
专区
圈层
工具
发布

Wintun:一款惊艳的 WireGuard 虚拟网卡接口驱动

前一段时间,一直在找寻 windows 操作系统上的虚拟网卡接口,主要是为了搭建隧道使用。...但是 windows 操作系统不像 Linux 操作系统,它的代码不开源,导致这方面的资料很少,因此花费了较长时间来寻找相关实现框架,最终找到了两款开源项目的虚拟接口驱动: Wireguard 项目的...引入头文件:wintun.h 加载动态库,解析动态库中的函数指针 它通过动态库中方式来提供接口,我们可以加载此动态库,然后调用动态库中的函数指针来完成虚拟接口的创建、销毁、收发数据包等工作。...特别说明 Wintun 接口是严格意义上的 3 层逻辑接口。...这里出现了一个小小的问题:Wireshark 上无法抓取此接口报文。如果想看封装后的报文信息,则需要单独记录日志而非抓包来完成。 ?

11.9K30

【Rust日报】2021-10-16 让你的rust代码变得更快

然而,随着时间的推移,我们了解到使用null 可能非常容易出错,并且会导致许多麻烦,例如 NullPointerException在最意想不到的时刻出现错误使程序崩溃。...性能是开发人员选择应用程序的首要原因之一。事实上,这是Rust-lang.org主页“为什么选择Rust?”部分列出的第一个原因,甚至要排在在内存安全之前。...端口转发器 onetun在您的本地系统上打开一个TCP端口,流量从该端口转发到WireGuard网络中对等方的TCP端口。...它不需要对操作系统的网络接口进行任何更改:您不需要拥有root访问权限,也不需要在本地系统上安装任何WireGuard工具即可使其正常工作。...唯一的先决条件是在远程WireGuard端点上注册对等IP和公钥;这些是WireGuard端点信任onetun对等点和路由数据包所必需的。

83620
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    看你是否够老 – ipman的vxd程序介绍的翻译

    年龄大了就开始怀旧,在我尝试了n种搜索方法之后,终于找到了当年我翻译的ipman的网卡驱动的说明。可惜的是nankai bbs几经变迁,在上面已经找不到我发的原文。...2.关于接口抽象层 正像在图一中所看到的那样,这个虚拟设备驱动程序并没有直接面对已安装好的底层网络控制接口.在网络硬件和VXD之间有一个叫做NDIS 3.10的接口抽象层,使用这种接口抽象层的意图在于保护需要...因此这个VAPCKET VXD可以方便的同安装在不同机器上的任何NIC接口进行通讯,但这台机器上的网卡必须是支持NDIS的.注意,不同版本的NDIS对网卡的支持有些不同.尤其是微软的Dialup网卡(PPPMAC...函数所返回的句柄.第二个参数是命名句柄所将要绑定的适配器的字符串.这个字符串可以从Windows95的注册表的如下目录找到:HKEY_LOCAL_MACHINE\System\CurrentControlSet...当应用程序需要读出网卡所接受到的数据时,异步输入输出机制的强大优势将会更明显.应用程序(往往如此)不可能预先知道何时数据包将会从网上到达.因此程序可以完成一些其他的处理(如:处理Windows 95的消息

    1.1K100

    Antrea v1.3.0版本发布:支持WireGuard传输加密和基于FQDN的网络策略

    (#2297 #2697, @xliuxu @tnqn) 增加可配置的网卡接口用于传输 Pod流量。...注意这个特性只工作在三层或四层,此外此项功能无法作用于Kubernetes为Service创建的DNS域名(例如 kubernetes.default.svc或者antrea.kube-system.svc...(#2555, @antoninbas) 在Agent启动时检查OVS datapath所支持的特性列表,如果缺失Antrea必须的特性则Agent会输出错误日志并退出,而非继续尝试运行。...(#2695, @tnqn) 在Flow Exporter中周期性删除无法被导出的过期连接,以避免内存溢出错误。...(#2486, @luolanzone) 当创建到远端节点的IPsec OVS隧道端口时,优雅处理端口已经存在但是配置已经过期的问题。

    1.5K20

    64位内核开发第二讲.内核编程注意事项,以及UNICODE_STRING

    一丶驱动是如何运行的 1.服务注册驱动 我们编写驱动.一定要知道驱动是如何运行的 首先在我们安装一个驱动的时候,会创建一个服务....也就是说说我们只需要取出 IRP头部的SystemBuffer就可以了. 缓冲IO的意思就是 3环 发送数据到0环. 0环开辟一个空间.用来接收....函数 函数说明 ZwOpenKey 打开注册表键 ZwCreateFile 创建文件或打开一个文件 ZwOpenProcess 打开一个进程 ZwQuerySystemInformation 遍历进程的一些信息...在我们以前讲调用们的时候也说过. ring3可以使用0内存. 在Windows8以后内存不能申请为NULL....如果这样写.很可能让攻击者可以做到任意地址写入.提升权限. 5.给驱动提供的功能性接口必须小心 如果对注册表 文件 内核内存.进程线程等操作的功能性接口.一定要非常小心才可以.禁止一切受信进程的调用.

    2.9K20

    WireGuard 系列文章(二):WireGuard 简介 - 快速、现代、安全的 V** 隧道

    它最初是为 Linux 内核发布的,现在是跨平台(Windows,macOS,BSD,iOS,Android)并且可以广泛部署。...当接口收到数据包时,会发生这种情况: 1.我刚刚从主机 98.139.183.24 上的 UDP 端口 7361 获得了一个数据包。让我们解密它!...容器就绪 WireGuard 使用最初创建 WireGuard 接口的网络命名空间发送和接收加密数据包[14]。...这意味着您可以在主网络命名空间中创建 WireGuard 接口(该接口可以访问 Internet),然后将其移动到属于 Docker 容器的网络命名空间中,作为该容器的唯一接口。.../papers/wireguard.pdf [14] 使用最初创建 WireGuard 接口的网络命名空间发送和接收加密数据包: https://www.wireguard.com/netns/ [15

    18K62

    如何在 Linux 上从 WireGuard 或 OpenVPN 跳过 ChatGPT?

    在 Linux 上从 WireGuard 或 OpenVPN 跳过 ChatGPT 的过程逻辑很简单,找到 chat.openai.com IP 地址并设置路由策略以跳过 VPN 接口。...默认情况下,WireGuard 或 OpenVPN 将通过 VPN 接口路由所有流量,但我将设置低于 WireGuard 或 OpenVPN 接口的指标,并通过我的路由器而不是 VPN 直接路由 chat.openai.com...shell 脚本chat.openai.com 会不时更改其 IP 地址,所以这是一个通用脚本,它添加、删除和列出 chat.openai.com 和其他一些在连接到 VPN 时拒绝工作的域。...当 NetworkManager 连接到您的 OpenVPN 或 WireGuard 接口时,您可以通过添加挂钩自动运行此脚本。...这将在 VPN 接口联机时运行脚本。同样,当你想在 VPN 接口关闭时运行它时,将脚本放在 /etc/network/if-down.d/ 中。

    3.3K50

    Windows下底层数据包发送实战

    本文记录了我试图实现的过程中遇到的一些问题以及解决办法,需要注明:①本文只考虑Windows上的实现 ②本文主要目的是实现发送部分 ③本文假定读者理解网络分层结构和一些基本的网络编程方法 ④本文只是在讨论常规技术...2、实现底层数据包发送的简单方法 A)Raw Socket   Raw Socket是实现底层(网络层)数据包最轻松方便的途径,在使用WSASoccket(或socket)创建Socket时,可以用SOCK_RAW...从Windows XP SP2开始,以后的操作系统(除了部分Server系统外),出于安全考虑,微软对Raw Socket加了若干限制[3],主要的限制如下:     a)无法使用Raw Socket发送...②使用虚拟机,里面装一个Windows XP SP2以前的系统即可,这个方法理论上应该可行,但会牺牲效率和便捷。   那么还有没有其他方法呢?...Winpcap使用NDIS驱动来做到监听、发送底层数据包,已经是一种很好的解决方案了,说起Windows上的软件对网络设备的操控已经无出其右。但是,如果我们不希望使用像这样的第三方工具呢?

    3.9K20

    Windows错误码大全error code

    1019 系统无法在注册表日志文件中分配所需的空间。 1020 无法在已经有子键或键值的注册表项中创建符号链接。 1021 在易失的父键下不能创建固定的子键。...1142 试图在一文件上创建超过系统允许数额的链接。 1150 指定的程序需要新的 Windows 版本。 1151 指定的程序不是 Windows 或 MS-DOS 程序。...1406 无法创建最上层的子窗口。 1407 找不到窗口类。 1408 窗口无效;属于其他线程。 1409 已经注册热键。 1410 类已经存在。 1411 类不存在。...请与应用程序供应商联系,验证这是否是有效的 Windows 安装程序包。 1621 启动 Windows 安装服务用户界面时有错误。请与技术支持人员联系。 1622 打开安装日志文件时出错。...7002 指定的协议驱动程序无效。 7003 在系统路径上找不到指定的协议驱动程序。 7004 在系统路径上找不到指定的终端连接驱动程序。 7005 不能为这个会话创建一个事件日志的注册键。

    15.5K10

    Hook技术解析

    SEH HOOK SEH是Windows操作系统上结构化异常处理的缩写,在代码中通过try/except来捕获异常时,操作系统将会在线程的栈空间里安置一个异常处理器(其实就是一个数据结构),里面定义了发生异常时该去执行哪里的代码处理异常...在Linux上,这个表格的名字叫sys_call_table,在Windows上,它叫KeServiceDescriptorTable,简称SSDT。 ?...TDI HOOK && NDIS HOOK 这两种HOOK方式与Windows内核中的网络子系统密切相关。 Windows内核中的网络结构是分层式设计。...从最上层的API socket层、到TCP/IP协议栈层、再到底层的网卡驱动程序,分了很多个层次。 而层与层之间的交互,是通过一系列标准接口来实现的,其中最重要的两个接口标准就是TDI和NDIS。...TDI封装了不同协议栈的差异(Windows不止支持TCP/IP协议栈)提供给上层统一的调用接口。NDIS则封装了底层不同网卡的驱动程序接口差异,提供给上层统一的收发数据包接口。

    3.5K10

    黑客用这项技术攻击你的电脑!

    SEH HOOK SEH是Windows操作系统上结构化异常处理的缩写,在代码中通过try/except来捕获异常时,操作系统将会在线程的栈空间里安置一个异常处理器(其实就是一个数据结构),里面定义了发生异常时该去执行哪里的代码处理异常...在Linux上,这个表格的名字叫sys_call_table,在Windows上,它叫KeServiceDescriptorTable,简称SSDT。 ?...TDI HOOK && NDIS HOOK 这两种HOOK方式与Windows内核中的网络子系统密切相关。 Windows内核中的网络结构是分层式设计。...从最上层的API socket层、到TCP/IP协议栈层、再到底层的网卡驱动程序,分了很多个层次。 而层与层之间的交互,是通过一系列标准接口来实现的,其中最重要的两个接口标准就是TDI和NDIS。...TDI封装了不同协议栈的差异(Windows不止支持TCP/IP协议栈)提供给上层统一的调用接口。NDIS则封装了底层不同网卡的驱动程序接口差异,提供给上层统一的收发数据包接口。

    1K30

    Fedora33下搭建WireGuard虚拟专用网

    这让他创建了一个新的开源Virtual Private Network 协议和解决方案,它更加快速、安全、易于部署和管理。...WireGuard 最初是为 Linux 开发的,但现在可用于 Windows、macOS、BSD、iOS 和 Android。除了可以跨平台之外,WireGuard 的最大优点之一就是易于部署。...支持预共享密钥preshared key加密,防攻击 当将 WireGuard 安装为内核模块时,基本上需要你自行修改 Linux 内核并向其添加代码。从 5.6 内核开始,你无需手动添加内核模块。...(图片可放大查看) 3、创建wg0的接口配置文件 ip addr或者ifconfig 先确认目前的网络接口名称 如下图所示网络接口名称 为ens33 ?...(图片可放大查看) Tips 若Server端没有关闭firewalld防火墙,可能会导致客户端无法访问Server端的LAN网络 需要在Server端关闭firewalld防火墙并重启wg-quick

    3.6K10

    快速学习网络编程-Windows 网络协议

    Windows 网络协议 首先介绍一下网络协议:网络协议是网络上所有设备之间通信规则的集合,他定义了通信时信息必须采用的格式和这些格式的意义.大多数网络协议都采用分层体系结,每一层都建立在他的下层之上,..., 否则,一方就无法识别另一方发出的信息.网络协议使网络上的设备各种设备能相互交换信息....在网络的各层中还存在着许多协议,下面列出部分网络协议规范: 下面介绍网络7层协议在WINDOWS的实现: 层协议 WIN系统 应用层 应用程序 表示层 WINSOCK API(DLL) 会话层 SPI...(DLL) 传输层 TDI(VXD,SYS) 网络层 NDIS(VXD,SYS) 数据链路层 网卡驱动程序(VXD,SYS) 物理层 网卡 相信这个映射图可以让大家比较清楚了解他们的对应关系 TCP协议图示...TCP/IP协议基于四层结构:应用层,传输层,网络层,接口层,数据在传输时每通过一层就要在数据上加个头,其中的数据供接受端同层使用,在 接收端,每经过一层就把头去掉,来保证传输数据格式的一致.

    82630

    Windows事件ID大全

    25 驱动器找不到磁盘上特定区域或磁道。 26 无法访问指定的磁盘或软盘。 27 驱动器找不到请求的扇区。 28 打印机缺纸。 29 系统无法写入指定的设备。 30 系统无法从指定的设备上读取。...57 网络适配器硬件出错。 58 指定的服务器无法运行请求的操作。 59 出现了意外的网络错误。 60 远程适配器不兼容。 61 打印机队列已满。 62 服务器上没有储存等待打印的文件的空间。...170 请求的资源在使用中。 173 对于提供取消区域进行锁定的请求已完成。 174 文件系统不支持锁定类型的最小单元更改。 180 系统检测出错误的段号。 183 当文件已存在时,无法创建该文件。...1019 系统无法分配注册表日志中所需空间。 1020 无法在已有子项或值的注册表项中创建符号链接。 1021 无法在易变父项下创建稳定子项。...防火墙启动时,以下策略处于活动状态 4945 ----- Windows防火墙启动时列出了规则 4946 ----- 已对Windows防火墙例外列表进行了更改。

    23.7K62

    Windows Server 2008对NLB网络负载平衡的改进

    "支持NDIS 6.0:NLB驱动器经过全部重新编写,采用了新的NDIS 6.0轻量过滤器模型。NDIS 6.0保留了之前的版本所具备的可兼容性。...在NDIS 6.0的设计方面进行的改进有:提高的服务器性能,可扩展性,以及简化的NDIS驱动器模型。 "改进WMI:为微软NLB命名空间所做的WMI改进使Ipv6和多个相关的IP地址获得支持。..."提高了拒绝服务器攻击的性能以及计时消耗保护: 通过回拨接口,NLB能够检测并通知服务器正在进行的攻击或正在超负荷的节点。...微软的ISA Server 2006便是在群集节点超负载或受到攻击时使用这项功能的。...具体配置上可以参看[WS08]HOWTO:在 Windows Server 2008 上实现 NLB 和 Windows Server 2008怎麼設定網路負載(Network LoadBalance)

    1K100

    玩转「Wi-Fi」系列之wpa_supplicant 目录介绍(八)

    ).当移植一个新操作系统不支持libdnet/libpcap时,需要添加新的l2_packet实现.Makefile可以选择包含哪个l2_packet实现, l2_packet_linux.c 使用Linux...注册表的后端配置 控制界面 wpa_supplicant有一个控制界面可以用来获取状态信息和管理来自外部程序的操作.一个命令行界面的例子(wpa_cli)和GUI(wpa_gui)的接口包含在wpa_supplicant...ctrl_iface_udp.c基于UDP套接字的控制接口后端 ctrl_iface_named_pipe.c Windows基于管道的控制接口后端 wpa_ctrl.c和wpa_ctrl.h库函数为外部程序提供对...端口 ndis_events.c 接收NdisMIndicateStatus()事件的代码,传递它们给 wpa_supplicant driver_ndis.c,使用起来更加方便 win_if_list.c...列出当前网络接口的外部程序 测试程序 radius_client.c radius_client.h和 radius_client.h 无线电认证客户端实现eapol_test radius.c和radius.h

    5.4K11

    关于http 500错误的小结分享

    3、录制时请求的页面、图片等,在回放的时候服务器找不到,则报HTTP500错误,若该页 面无关紧要,则可以在脚本中注释掉,问题将会得到解决。...: 现象: 浏览ASP时 HTTP500内部错误 [解决ⅡS 服务器无法加载应用程序 '/LM/W3SVC/1/ROOT' 错误是 '没有注册类别 查看了一下事件查看器: 服务器无法加载应用程序 '/LM...错误是 '没有注册类别'。 无法启动 MS DTC 事务管理器。 MS DTC 事务管理器启动失败。LogInit 返回错误 0x2。 找不到 MS DTC 日志文件。...解决办法: 检查你的DTC服务(Distributed Transaction Coordinator)是否可以正常启动,如果正常的话请你跳过此步骤;如果出错,无法正常启动,请在开始菜单的运行中 运行:...注:以上很多方法都是参考网上的,有的没有试过,本人遇到500的情况一般是自己大意配置出错或者代码出现错误,所以不难改,今天遇到一个情况是,同一个接口在某些情况下会报500,某些情况下又不会,环境是java

    8.8K10

    加载出错收集解答

    )上拷贝下来放到c:windowssystem32下就可以了 [rundll]加载时出错…..找不到指定的模块 进入注册表编辑器(点开始—运行—输入regedit—回车) 逐项进入分支: HKEY_LOCAL_MACHINE...电脑启动时显示“加载MSSIGN30。DLL时出错怎么回事 打开注册表编辑器。...加载 C:PROGRA~1TENCENTAddrPlusQAHook.dll时出错找不到指定的模块 注册表编辑器,搜索注册表,查找这个文件名,相关的内容都删掉就OK 加载C:WINDOWSsystem32supdate2....dll时出错 找不到指定的模块 这个是杀毒后遗症,病毒清除掉了,但注册表中有一些启动项目没清除干净,这样做就能解决: 开始菜单 点“运行” 输入 regedit 打开注册表编辑器 按ctrl+F...加载C:Windowssystem32Soundmix.dll时出错找不到指定模块 开始-运行-regedit-编辑-查找-Soundmix.dll在注册表里删除,一定要多搜索几次,彻底删除。

    1.4K20

    【里程碑】WireGuard系列文章(七):使用WireGuard和Netmaker创建Full Mesh网络

    WireGuard 网络的平台[5] 6.WireGuard系列文章(六):Netmaker安装[6] 终于来到一个重要里程碑了,通过 WireGuard + Netmaker 创建 Full Mesh...,减少复杂度) 创建后可以再点击 Network Details 编辑细节,如下图: 包括: •IPv6 地址范围 •网络接口名称 •监听端口 •Postup •Postdown •Keepalive...•默认外部 DNS •MTU •是否允许没有访问密钥的节点注册(出于安全原因,建议关闭) 查看 Netmaker 所在节点状态 创建网络之后,Netmaker 所在节点会自动作为客户端加入,可以在 Nodes...DNS 记录 创建访问密钥 在 Home / Access Keys 页面,创建指定客户端数量(如 10 个,那么这个 key 用 10 次后就自动失效,其他客户端无法再用这个 key 加入网络),如下图...4.Android:手机,暂无法安装 netclient,通过外部客户端方式加入。 Linux 和 Windows 不用多说,直接加入即可。

    5.7K40
    领券