精华内容
下载资源
问答
  • 2020-10-30 22:16:02

    高云FPGA 软件 与 MAC地址绑定了,想要在另一个电脑上运行就得重新申请很麻烦,使用虚拟的网卡 设置同一个MAC地址,就可以通过认证。

     

    1、下载 tap-windows

    2、设备管理器->网络适配器->找到tap-windows  双击 高级 ->MACAddr  设定成你想要的地址就可以了。

     

    更多相关内容
  • 前一段时间,一直在找寻windows操作系统上的虚拟网卡接口,主要是为了搭建隧道使用。但是windows操作系统不像Linux操作系统,它的代码不开源,导致这方面的资料很少,因此花费了较长时间来寻找相关实现框架,最终...

    前一段时间,一直在找寻windows操作系统上的虚拟网卡接口,主要是为了搭建隧道使用。但是windows操作系统不像Linux操作系统,它的代码不开源,导致这方面的资料很少,因此花费了较长时间来寻找相关实现框架,最终找到了两款开源项目的虚拟接口驱动:

    这两个项目都是非常出名的搭建隧道的开源V.P.N项目。由于目前对openVPN项目不太了解,也没有适配Tap接口,因此这里重点介绍下WinTun接口。此接口实现我是非常非常的喜欢,喜欢到简直不要不要的。

    1.简介

    说到Wintun项目,就不得不说到它的父亲:WireGuard项目(以下简称WG)。Github传送门

    WG项目作为开源V.P.N项目,不同于OpenVPN, Openswan, Strongswan等,它的实现非常简介,Linux内核代码实现不到4000行。相对于上述的三个“按行收费”的项目(代码10万行起步),它简直是太简洁了。故而得到了众多好评,其中就包括Linux鼻祖:Linus Torvalds。他的评价如下:

    Btw, on an unrelated issue: I see that Jason actually made the pull request to have wireguard included in the kernel.

    Can I just once again state my love for it and hope it gets merged soon? Maybe the code isn’t perfect, but I’ve skimmed it, and compared to the horrors that are OpenVPN and IPSec, it’s a work of art.

    Linus

     简而言之就是:劳资稀罕你,要把你合入我的Linux项目中。因此Linux内核自5.6之后便自带WG隧道功能,配置非常的简单。通过几行代码便可以完成一个WG隧道:

    ip link add dev wg0 type wireguard
    ip address add dev wg0 10.0.0.1/24
    wg set wg0 listen-port 51820 private-key ./private.key peer NIk5TyDpRDoU9tfIckTTXCsz1eht2aEmdN7l0Q31ow0= allowed-ips 10.0.0.2/32 endpoint 192.168.1.5:51820
    ip link set dev wg0 up

    官网上的配置如下:

    配置非常简单。除此之外,还提供了Windows客户端,这也是此项目为何包含Wintun虚拟网络接口的原因。

    客户端页面也是非常简洁,没有多余的东西(客户端链接):

    客户端上隧道协商成功之后,会根据隧道名称建立一个虚拟网卡,隧道拆除后接口自动删除。由于我的隧道名称为Tun-1,因此在“控制版面”的“网络连接”中出现了一个Tun-1的网络接口:

    好了,下面开始介绍此虚拟网络接口。

     

    2.WinTun虚拟网络接口

    Github传送门

    wintun官网传送门

    常见的windwos的接口驱动开发、安装比较复杂。常见的驱动安装包有:.inf文件、.sys文件、.cat文件; 除此之外还涉及驱动程序签名,否则无法安装成功。尤其在开发调试阶段,每次都得签名,太磨叽了。

    但是WinTun接口用法非常简单高效非常简单高效非常简单高效

    1. 引入头文件:wintun.h

    2. 加载动态库,解析动态库中的函数指针

    它通过动态库中方式来提供接口,我们可以加载此动态库,然后调用动态库中的函数指针来完成虚拟接口的创建、销毁、收发数据包等工作。此外它提供了一个示例供大家学习,我便是通过参考开源代码中的示例(example.c),将Wintun接口移植到我的工程之中。非常简单,我太喜欢它了。

    实例代码就400行,其中大部分为log信息,供大家查看程序运行状态和报文收发信息。

    2.1加载动态库中的函数指针

    此函数的作用:

    • 加载动态库,获取到动态库中的函数指针,后面通过函数指针来操作虚拟网卡接口。
    static HMODULE
    InitializeWintun(void)
    {
        HMODULE Wintun =
            LoadLibraryExW(L"wintun.dll", NULL, LOAD_LIBRARY_SEARCH_APPLICATION_DIR | LOAD_LIBRARY_SEARCH_SYSTEM32);
        if (!Wintun)
            return NULL;
    #define X(Name, Type) ((Name = (Type)GetProcAddress(Wintun, #Name)) == NULL)
        if (X(WintunCreateAdapter, WINTUN_CREATE_ADAPTER_FUNC) || X(WintunDeleteAdapter, WINTUN_DELETE_ADAPTER_FUNC) ||
            X(WintunDeletePoolDriver, WINTUN_DELETE_POOL_DRIVER_FUNC) || X(WintunEnumAdapters, WINTUN_ENUM_ADAPTERS_FUNC) ||
            X(WintunFreeAdapter, WINTUN_FREE_ADAPTER_FUNC) || X(WintunOpenAdapter, WINTUN_OPEN_ADAPTER_FUNC) ||
            X(WintunGetAdapterLUID, WINTUN_GET_ADAPTER_LUID_FUNC) ||
            X(WintunGetAdapterName, WINTUN_GET_ADAPTER_NAME_FUNC) ||
            X(WintunSetAdapterName, WINTUN_SET_ADAPTER_NAME_FUNC) ||
            X(WintunGetRunningDriverVersion, WINTUN_GET_RUNNING_DRIVER_VERSION_FUNC) ||
            X(WintunSetLogger, WINTUN_SET_LOGGER_FUNC) || X(WintunStartSession, WINTUN_START_SESSION_FUNC) ||
            X(WintunEndSession, WINTUN_END_SESSION_FUNC) || X(WintunGetReadWaitEvent, WINTUN_GET_READ_WAIT_EVENT_FUNC) ||
            X(WintunReceivePacket, WINTUN_RECEIVE_PACKET_FUNC) ||
            X(WintunReleaseReceivePacket, WINTUN_RELEASE_RECEIVE_PACKET_FUNC) ||
            X(WintunAllocateSendPacket, WINTUN_ALLOCATE_SEND_PACKET_FUNC) || X(WintunSendPacket, WINTUN_SEND_PACKET_FUNC))
    #undef X
        {
            DWORD LastError = GetLastError();
            FreeLibrary(Wintun);
            SetLastError(LastError);
            return NULL;
        }
        return Wintun;
    }

    2.2 main()函数

    作用:

    • 通过函数指针创建虚拟网卡
    • 创建虚拟网卡的收发线程
    int
    main(void)
    {
        HMODULE Wintun = InitializeWintun();
        if (!Wintun)
            return LogError(L"Failed to initialize Wintun", GetLastError());
        WintunSetLogger(ConsoleLogger);
        Log(WINTUN_LOG_INFO, L"Wintun library loaded");
        WintunEnumAdapters(L"Example", PrintAdapter, 0);
    
        DWORD LastError;
        HaveQuit = FALSE;
        QuitEvent = CreateEventW(NULL, TRUE, FALSE, NULL);
        if (!QuitEvent)
        {
            LastError = LogError(L"Failed to create event", GetLastError());
            goto cleanupWintun;
        }
        if (!SetConsoleCtrlHandler(CtrlHandler, TRUE))
        {
            LastError = LogError(L"Failed to set console handler", GetLastError());
            goto cleanupQuit;
        }
    
        GUID ExampleGuid = { 0xdeadbabe, 0xcafe, 0xbeef, { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef } };
        WINTUN_ADAPTER_HANDLE Adapter = WintunOpenAdapter(L"Example", L"Demo");
        if (!Adapter)
        {
            Adapter = WintunCreateAdapter(L"Example", L"Demo", &ExampleGuid, NULL);
            if (!Adapter)
            {
                LastError = GetLastError();
                LogError(L"Failed to create adapter", LastError);
                goto cleanupQuit;
            }
        }
    
        DWORD Version = WintunGetRunningDriverVersion();
        Log(WINTUN_LOG_INFO, L"Wintun v%u.%u loaded", (Version >> 16) & 0xff, (Version >> 0) & 0xff);
    
        MIB_UNICASTIPADDRESS_ROW AddressRow;
        InitializeUnicastIpAddressEntry(&AddressRow);
        WintunGetAdapterLUID(Adapter, &AddressRow.InterfaceLuid);
        AddressRow.Address.Ipv4.sin_family = AF_INET;
        AddressRow.Address.Ipv4.sin_addr.S_un.S_addr = htonl((10 << 24) | (6 << 16) | (7 << 8) | (7 << 0)); /* 10.6.7.7 */
        AddressRow.OnLinkPrefixLength = 24; /* This is a /24 network */
        LastError = CreateUnicastIpAddressEntry(&AddressRow);
        if (LastError != ERROR_SUCCESS && LastError != ERROR_OBJECT_ALREADY_EXISTS)
        {
            LogError(L"Failed to set IP address", LastError);
            goto cleanupAdapter;
        }
    
        WINTUN_SESSION_HANDLE Session = WintunStartSession(Adapter, 0x400000);
        if (!Session)
        {
            LastError = LogLastError(L"Failed to create adapter");
            goto cleanupAdapter;
        }
    
        Log(WINTUN_LOG_INFO, L"Launching threads and mangling packets...");
    
        HANDLE Workers[] = { CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ReceivePackets, (LPVOID)Session, 0, NULL),
                             CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)SendPackets, (LPVOID)Session, 0, NULL) };
        if (!Workers[0] || !Workers[1])
        {
            LastError = LogError(L"Failed to create threads", GetLastError());
            goto cleanupWorkers;
        }
        WaitForMultipleObjectsEx(_countof(Workers), Workers, TRUE, INFINITE, TRUE);
        LastError = ERROR_SUCCESS;
    
    cleanupWorkers:
        HaveQuit = TRUE;
        SetEvent(QuitEvent);
        for (size_t i = 0; i < _countof(Workers); ++i)
        {
            if (Workers[i])
            {
                WaitForSingleObject(Workers[i], INFINITE);
                CloseHandle(Workers[i]);
            }
        }
        WintunEndSession(Session);
    cleanupAdapter:
        WintunDeleteAdapter(Adapter, FALSE, NULL);
        WintunFreeAdapter(Adapter);
    cleanupQuit:
        SetConsoleCtrlHandler(CtrlHandler, FALSE);
        CloseHandle(QuitEvent);
    cleanupWintun:
        FreeLibrary(Wintun);
        return LastError;
    }

    收发报文的接口操作也非常简单,但是与windows网络协议栈之间的关系仍需要继续摸索。

     

    2.3 特别说明

    Wintun接口是严格意义上的3层逻辑接口。原文如下:

    Wintun is a very simple and minimal TUN driver for the Windows kernel, which provides userspace programs with a simple network adapter for reading and writing packets. It is akin to Linux's /dev/net/tun and BSD's /dev/tun. Originally designed for use in WireGuard, Wintun is meant to be generally useful for a wide variety of layer 3 networking protocols and experiments. The driver is open source, so anybody can inspect and build it. Due to Microsoft's driver signing requirements, we provide precompiled and signed versions that may be distributed with your software. The goal of the project is to be as simple as possible, opting to do things in the most pure and straight-forward way provided by NDIS.

     

     

    这里出现了一个小小的问题:Wireshark上无法抓取此接口报文。如果想看封装后的报文信息,则需要单独记录日志而非抓包来完成。

    导致这个问题原因没有找到,我认为是:wireshark抓取的报文是二层报文(一个完整的以太网帧),而3层逻辑接口上的报文尚未封装以太网帧,故无法抓取此接口。这只是个人猜测,根本原因不得而知。


    好了,基本介绍完毕,重新表达下我对WireGuard和WinTun的态度: 劳资稀罕你,very喜欢

     

     

     

    展开全文
  • 实现虚拟网卡代码

    2014-10-08 23:58:53
    linux下实现虚拟网卡技术,该代码使用c语言实现,已经测试可以使用。
  • Windows8.1怎么创建虚拟网卡.docx
  • Windows Server 2008 R2 系统中安装虚拟网卡Windows Server 2008 R2 系统中安装虚拟网卡(1) 打开"运行",输入"devmgmt.msc"(2) 在"设备管理器"中选择"网络适配器";接着选择菜单栏的"操作(A)",在下拉列表中选择...

    在Windows Server 2008 R2 系统中安装虚拟网卡

    在Windows Server 2008 R2 系统中安装虚拟网卡

    (1) 打开"运行",输入"devmgmt.msc"

    (2) 在"设备管理器"中选择"网络适配器";

    接着选择菜单栏的"操作(A)",在下拉列表中选择"添加过时硬件(L)"

    1 / 5 By.程鹏举 E-mail:7looki@

    在Windows Server 2008 R2 系统中安装虚拟网卡

    (3) 接着就看到了熟悉的"添加硬件"的向导了,选接"下一步(N)"

    (4) 这里选择"安装我手动从列表选择的硬件(高级)(M)"

    2 / 5 By.程鹏举 E-mail:7looki@

    在Windows Server 2008 R2 系统中安装虚拟网卡

    (5) 在"常见硬件类型(H)"列表中选择"网络适配器",单击"下一步(N)"

    (6) 在"厂商"列表中选择"Microsoft"

    然后在"网络适配器"列表中选择"Microsoft Loopback Adapter",单击"下一步(N)"

    3 / 5 By.程鹏举 E-mail:7looki@

    在Windows Server 2008 R2 系统中安装虚拟网卡

    (7) 确认要安装的硬件,直接"下一步(N)"

    (8) 正在安装...

    4 / 5 By.程鹏举 E-mail:7looki@

    在Windows Server 2008 R2 系统中安装虚拟网卡

    (9) 安装完成

    (10)然后在"网络连接"中就可以看到新添加的虚拟网卡了.

    5 / 5 By.程鹏举 E-mail:7looki@

    展开全文
  • 易语言TUN/TAP虚拟网卡使用例子
  • 如何设置TAP-Windows虚拟网卡的上网优先级? ![图片说明](https://img-ask.csdn.net/upload/202003/21/1584790913_585408.png) 本来的目的是想通过TAP-Windows构建VLAN但是不通过其网关进行上网 <br>...
  • 那我们在win 10 正式版电脑如何建立安装虚拟网卡呢,下面深度系统小编就来详细分享具体的操作步骤。 方法如下: 1、点击“此电脑",再点击顶部“计算机”,进入属性。 2、点击“设备管理器”,找到“网络适配器”。 ...

    说到虚拟网卡可能有不少深度技术系统的用户不是很了解吧。其他,虚拟网卡是一款专注于网络共享的软件,让电脑同时拥有多个IP地址,以便更加方便的管理上网网络。那我们在win 10 正式版电脑如何建立安装虚拟网卡呢,下面深度系统小编就来详细分享具体的操作步骤。
    win 10 正式版
    方法如下:
    1、点击“此电脑",再点击顶部“计算机”,进入属性。
    win10系统安装虚拟网卡的详细步骤
    2、点击“设备管理器”,找到“网络适配器”。
    win10系统安装虚拟网卡的详细步骤
    3、双击“网络适配器”,查看网络设备里面有无虚拟网卡。
    win10系统安装虚拟网卡的详细步骤
    4、如果没有虚拟网卡,点击“操作”,添加过时硬件。
    win10系统安装虚拟网卡的详细步骤
    5、添加硬件向导对话框,点击下一步。
    win10系统安装虚拟网卡的详细步骤
    6、勾选“安装我手动从列表选择的硬件(高级)(M),点击下一步。
    win10系统安装虚拟网卡的详细步骤
    7、选择”网络适配器“,点击下一步。
    win10系统安装虚拟网卡的详细步骤
    8、选择虚拟网卡厂商和型号,点击下一步。
    win10系统安装虚拟网卡的详细步骤
    9、点击下一步,完成虚拟网卡安装。
    win10系统安装虚拟网卡的详细步骤
    以上就是深度技术系统分享关于win10正式版安装虚拟网卡的操作方法,希望对大家有所帮助。

    原文教程分享来自深度技术:https://www.ideepin.com/jczx/win10/1484.html,转载请注明!

    展开全文
  • Windows 8中如何创建虚拟网卡.docx
  • win10系统创建虚拟网卡

    千次阅读 2019-11-12 15:47:55
    由于工作原因,下午需要重新在物理机上创建块虚拟网卡...下面把具体步骤写下,希望可以帮助向我一样不懂如何创建虚拟网卡的小白。 在win10系统中按下快捷键 win+x 打开设备管理器,如下图 在win10里,“Mic...
  • 如何在网络连接里面添加一个IP地址给虚拟网卡如何在网络连接里面添加一个IP地址给虚拟网卡 一般来说当系统完成添加虚拟网卡以后,IP设置系统就会自动完成的,不需要手动.如果它不能够自动设置IP地址,也可以手动设置....
  • 1、按下win + R键,在其中输入:hdwwiz,然后 (enter) 2、点击下一步即可 3、其次选择【网络适配器】,然后点击【下一步】... ...5、通过上面几个步骤的设置后,一块虚拟网卡的安装设置就算是完成了。 ...
  • windows虚拟网卡驱动开发

    万次阅读 热门讨论 2017-04-06 19:05:24
    by fanxiushu 2017-04-06 转载或...很早前的文章介绍过windows和linux平台的虚拟网卡技术, 详见 http://blog.csdn.net/fanxiushu/article/details/8526708 http://blog.csdn.net/fanxiushu/article/details/8526
  • 1、安装好VMware后,没有VMnet1和VMnet8虚拟网卡 VMware虚拟机无法将网络改为桥接状态 2、解决方法:首先把你之前安装的VMware虚拟机卸载,清理得一干二净; 3、原因是虚拟机安装的时候,无法写入注册表,我们可以...
  • 前一段时间,一直在找寻windows操作系统上的虚拟网卡接口,为了搭建隧道使用。但是windows操作系统不像Linux操作系统,它的代码不开源,导致这方面的资料很少,因此也找寻了很长时间,最终找到了两款开源项目的虚拟...
  • 下面把具体步骤写下,希望可以帮助向我一样不懂如何创建虚拟网卡的小白。 在win10系统中按下快捷键 win+x 打开设备管理器,如下图 在win10里,“Microsoft”对应的型号是“Microsoft KM-TEST 环回适配器...
  • Windows 2000/XP/VISTA如何创建虚拟网卡
  • 有一天去朋友那里玩,看见朋友电脑上的cmd窗口有一条命令:netsh wlan start ...果真如此,虽然现在网上有好多软件可以实现电脑共享无线wifi上网,例如wifi共享精灵等,但是我在这里还是想在强调一下这个虚拟连接的...
  • 是Win10电脑上用来建立远程计算机间的局域网,除此之外还有其他功能,但是有些用户,还不知道怎么在Win10电脑上,创建一个自己所需要虚拟网卡,于是这次老油条装机大师小编为大家带来站长推荐win10电脑创建虚拟网卡...
  • 1.一种物理网卡虚拟成多个虚拟网卡的方法,其特征在于,包括以下步骤: 触发创建虚拟网卡事件发生时,虚拟处理服务器自动调用虚拟网卡创建命令,针对预先选择的物理网卡,生成一个或多个虚拟网卡并按照预设分配策略给...
  • realtek/intel网卡添加Vlan,装完软件后启动会有一段时间提示无响应,是程序在检测网卡,与交换机配合非常好用
  • 如何用C++创建虚拟网卡,并能读取ping tcp udp协议发送过来的消息都能正常捕获,然后我能返回的消息,该怎么做呢
  • windows添加虚拟网卡

    千次阅读 2013-12-18 01:58:00
    转载于:https://www.cnblogs.com/zzmiot/p/3479594.html
  • 在其他windows操作系统,如 winxp, win7,win8等系统上安装都没有问题,但在一些windows10 64版本系统上安装时有问题,具体是:安装完后可以从设备管理器上找到 虚拟网卡,但查看属性时只有最上面的链接按钮可...
  • 安装好 VirtualBox 后...然而,最近碰到的一个头疼的问题:就是在将 Windows 10 系统升级后,这个虚拟网卡不见了,重新去 VirtualBox 内新建网卡。新建网卡后,名字就变成了 “VirtualBox Host-Only Network #2”...
  • 创建自己的虚拟网卡TAP口

    万次阅读 2016-09-20 22:44:02
    TAP是一种虚拟网卡,能够很轻松的被用户使用C语言的API使用。直接使用open write read几个操作就可以使用这种网卡; TAP是一种虚拟口,一般与物理接口配套使用。例如pppoe拨号。使用的是pppoe协议。如果自己去...
  • 添加TAP虚拟网卡

    千次阅读 2019-06-25 22:23:06
    1.如果需要不同的Mac地址,可以添加虚拟网卡TAP 2.先安装uml-utilities sudo apt-get install uml-utilities 3.使用tunctl添加虚拟网卡 sudo tunctl -b 4.激活创建的TAP sudo ip link set tap0 up 5.设置...
  • 如何在Windows下添加网卡

    千次阅读 2020-07-09 09:45:37
    一:在搜索栏搜索设备管理器 二 勾选服务 ①在查看里点勾选显示隐藏设备 ②在操作里勾选 添加过时硬件 三 ①点击下一步 ②点击安装我手动从列表选择的硬件 四 ①下一步,点击网络适配器 ......
  • 为何要用虚拟网卡,当无以太网的情况下,即无路由器,我们可以使用创建虚拟网卡来实现共享,将Windows和虚拟机进行共享网络,实现映射方式,类似samba。 主要做如下步骤: 1.PC创建虚拟网卡; 2.虚拟机网络配设置...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,836
精华内容 18,734
关键字:

windows建立虚拟网卡