{"id":855,"date":"2026-10-17T03:00:00","date_gmt":"2026-10-17T03:00:00","guid":{"rendered":"https:\/\/vpslake.com\/blog\/?p=855"},"modified":"2026-10-17T03:00:00","modified_gmt":"2026-10-17T03:00:00","slug":"use-virtio-network-card-windows-server-2022","status":"publish","type":"post","link":"https:\/\/vpslake.com\/blog\/2026\/10\/17\/use-virtio-network-card-windows-server-2022\/","title":{"rendered":"How to Use a VirtIO Network Card on Windows Server 2022"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">To use a VirtIO network card on Windows Server, switch the VPS from an emulated adapter and install the matching Windows driver before testing the connection. On Windows Server 2022, the change usually takes about 10\u201315 minutes when you keep Virtualizor console access available.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>A VPS running Windows Server 2022, with administrator access through RDP or the VPS console.<\/li>\n\n\n<li>Access to the VPSLake client area and the VPS control panel (Virtualizor), including its VNC\/console and ISO controls.<\/li>\n\n\n<li>A second way into the server: open the Virtualizor console before changing the adapter because your RDP session can disconnect.<\/li>\n\n\n<li>The server&#8217;s current IP, gateway, and DNS settings, recorded before the change. This matters if Windows treats the VirtIO adapter as new hardware.<\/li>\n\n\n<li>A <a href=\"https:\/\/vpslake.com\/buy-windows-rdp\">VPSLake Windows RDP server<\/a> with administrator rights if you need an environment for this procedure.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Record the current network configuration<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Save the adapter details first so you can compare the new interface or re-enter a static address if Windows does not carry it over.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Open <strong>Start \u2192 Windows PowerShell \u2192 Run as administrator<\/strong> and run:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Get-NetAdapter | Format-Table Name,InterfaceDescription,Status,LinkSpeed\nGet-NetIPConfiguration -Detailed\nipconfig \/all<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Write down the active adapter name, IPv4 address, prefix or subnet mask, default gateway, and DNS servers. A healthy current adapter normally shows <code>Up<\/code> and an IPv4 configuration with a default gateway.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Name     InterfaceDescription                 Status LinkSpeed\n----     --------------------                 ------ ---------\nEthernet Microsoft ... Ethernet Adapter      Up     1 Gbps<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Microsoft&#8217;s <a href=\"https:\/\/learn.microsoft.com\/en-us\/powershell\/module\/nettcpip\/get-netipconfiguration\" target=\"_blank\" rel=\"noopener\"><code>Get-NetIPConfiguration<\/code> documentation<\/a> explains the cmdlet&#8217;s interface, address, route, and DNS output.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Open a recovery console and mount the VirtIO ISO<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The console keeps you in control if the server temporarily has no network after the virtual hardware changes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the VPSLake client area, open the server&#8217;s VPS control panel (Virtualizor). Open <strong>VNC\/Console<\/strong> in one browser tab. In another, open <strong>CD-ROM\/ISO<\/strong>, select the available <code>virtio-win<\/code> driver ISO, and select <strong>Mount<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wait for the panel to report that the virtual CD-ROM is mounted. Do not change the network card yet if the ISO is still mounting. If no VirtIO ISO is listed, leave the current adapter in place and ask VPSLake support which signed driver media is available for the server.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Change the virtual network card to VirtIO<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The adapter switch exposes the paravirtualized network device, which Windows Server 2022 can use after its <code>NetKVM<\/code> driver is installed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In Virtualizor, open <strong>Settings \u2192 Network Card<\/strong>, choose <strong>VirtIO<\/strong>, and select <strong>Change Network Card<\/strong> or <strong>Save<\/strong>, depending on the panel label. Confirm the operation if prompted, then wait for the VPS to finish applying the hardware change.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Return to the open <strong>VNC\/Console<\/strong> session. It is normal for RDP and internet access to stop briefly while Windows detects the new device. If the existing RDP session remains connected, keep the console open until the verification step succeeds.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Install the Windows VirtIO network driver<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Installing from the mounted media lets Windows choose the compatible signed <code>NetKVM<\/code> driver instead of relying on a driver intended for a different Windows release.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the console, open <strong>Start \u2192 Device Manager<\/strong>. Expand <strong>Other devices<\/strong> and look for <strong>Ethernet Controller<\/strong>, or find the device with a yellow warning icon under <strong>Network adapters<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Right-click the device, select <strong>Update driver<\/strong>, and choose <strong>Browse my computer for drivers<\/strong>. Select the drive letter assigned to the mounted VirtIO CD-ROM, enable <strong>Include subfolders<\/strong>, and select <strong>Next<\/strong>. Windows should locate the Server 2022 x64 network driver below the ISO&#8217;s driver folders and report that the driver was installed successfully.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If Windows asks for a location instead, browse to the root of the mounted ISO and leave <strong>Include subfolders<\/strong> enabled. Do not select an older folder by guesswork; the recursive search allows Windows to match the operating system and architecture. The upstream <a href=\"https:\/\/github.com\/virtio-win\/kvm-guest-drivers-windows\" target=\"_blank\" rel=\"noopener\">virtio-win driver project<\/a> publishes the Windows paravirtualized drivers and their source.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After installation, select <strong>Close<\/strong>, then open <strong>Device Manager \u2192 Network adapters<\/strong>. The VirtIO adapter should have no yellow warning icon. Windows may briefly refresh the adapter while it applies the driver.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Restore the IP settings if Windows created a new adapter<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Windows may retain a static configuration on the old emulated adapter rather than transferring it to the new VirtIO interface.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Open elevated PowerShell in the console and identify the new interface:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Get-NetAdapter | Format-Table Name,InterfaceDescription,Status,MacAddress\nGet-NetIPConfiguration -Detailed<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If the new adapter already has the expected address and gateway, do not add another address. If the server uses DHCP, renew only the new interface after substituting its actual name:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ipconfig \/renew \"YOUR_ADAPTER_NAME\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For a static configuration, use the GUI instead of guessing values. Open <strong>Control Panel \u2192 Network and Internet \u2192 Network Connections<\/strong>, right-click the connected VirtIO adapter, select <strong>Properties \u2192 Internet Protocol Version 4 (TCP\/IPv4) \u2192 Properties<\/strong>, and enter the exact address, subnet mask, gateway, and DNS values recorded in Step 1. Select <strong>OK \u2192 Close<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Do not assign the old address to the new adapter until you have confirmed that it belongs to this VPS. An incorrect gateway or duplicate address can make the server unreachable.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Verify the VirtIO adapter and connectivity<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The conversion is complete when Windows identifies the adapter, shows it as up, has the expected IP configuration, and can reach an external HTTPS endpoint.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Run these checks in elevated PowerShell:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Get-NetAdapter | Where-Object Status -eq \"Up\" | Format-Table Name,InterfaceDescription,Status,LinkSpeed\nGet-NetIPConfiguration -Detailed\nTest-NetConnection -ComputerName 1.1.1.1 -Port 443\nResolve-DnsName www.microsoft.com<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The first result should identify a VirtIO or <code>Red Hat VirtIO Ethernet Adapter<\/code> interface with <code>Status<\/code> set to <code>Up<\/code>. The final checks should show a successful TCP connection and a DNS answer:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Name     InterfaceDescription               Status LinkSpeed\n----     --------------------               ------ ---------\nEthernet Red Hat VirtIO Ethernet Adapter    Up     1 Gbps\n\nComputerName     : 1.1.1.1\nRemotePort       : 443\nTcpTestSucceeded : True<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Reconnect through RDP using the server&#8217;s normal address. Once RDP and these checks work, return to Virtualizor and open <strong>CD-ROM\/ISO \u2192 Unmount\/Eject<\/strong>. Leaving driver media mounted is unnecessary and can make later reinstall or boot operations confusing.<\/p>\n\n\n\n<aside class=\"vl-element vl-cta-banner\" aria-label=\"Upgrade your Windows VPS\">\n\t<div class=\"vl-cta-banner__content\">\n\t\t<p class=\"vl-cta-banner__eyebrow\">Windows server access<\/p>\n\t\t<h3 class=\"vl-cta-banner__title\">Upgrade your Windows VPS<\/h3>\n\t\t<p class=\"vl-cta-banner__text\">Get administrator access to a Windows VPS with Virtualizor controls for hardware and recovery tasks.<\/p>\n\t<\/div>\n\t<a class=\"vl-cta-banner__button\" href=\"\/buy-windows-rdp\" aria-label=\"View Windows VPS\">View Windows VPS<\/a>\n<\/aside>\n\n\n\n<h2 class=\"wp-block-heading\">Troubleshooting<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">RDP disconnected after changing the network card<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The new adapter has no driver, no IP address, or the expected static settings stayed on the old adapter. Use <strong>Virtualizor \u2192 VNC\/Console<\/strong>, finish Step 4, and compare <code>Get-NetIPConfiguration -Detailed<\/code> with the values recorded in Step 1. Keep the console session open until an external <code>Test-NetConnection<\/code> succeeds.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ethernet Controller still has a yellow warning icon<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Windows did not find a compatible driver in the selected location. Open the device&#8217;s <strong>Properties \u2192 Details \u2192 Hardware Ids<\/strong>, confirm that it is the VirtIO network device, then repeat <strong>Update driver \u2192 Browse my computer<\/strong> from the mounted ISO root with <strong>Include subfolders<\/strong> enabled. If the ISO contains no matching Server 2022 x64 driver, unmount it and request the correct signed VirtIO media rather than disabling driver-signing checks.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The adapter is up, but there is no internet access<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">An active link does not prove that the address, route, or DNS values are correct. Compare the new adapter&#8217;s IPv4 address, default gateway, and DNS servers with Step 1, then correct them through the IPv4 properties page. If the address is correct but the test still fails, check any upstream firewall or security rule in the VPS control panel.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><code>ipconfig \/renew<\/code> returns an error<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The server may use a static address, or the command may target the old adapter name. Run <code>Get-NetAdapter<\/code> and <code>Get-NetIPConfiguration -Detailed<\/code>; use DHCP renewal only when the VPS is actually configured for DHCP. For a static VPS, re-enter the assigned values on the new VirtIO adapter instead.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hardening after the switch<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Keep Windows Defender Firewall enabled and review inbound rules after the adapter change; do not solve connectivity problems by disabling the firewall.<\/li>\n\n\n<li>Remove or disable the old, disconnected emulated adapter only after confirming that no service or static route still references it.<\/li>\n\n\n<li>Keep the VirtIO ISO unmounted after the driver is installed and retain console access for future network changes.<\/li>\n\n\n<li>Install Windows updates and reboot during a maintenance window if Device Manager reports a pending restart.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">FAQ<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What does VirtIO change on a Windows VPS?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">VirtIO presents a paravirtualized network device designed for virtual machines instead of an emulated legacy adapter. Windows still uses the normal TCP\/IP stack, but it needs the matching VirtIO network driver to communicate with the device.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Will switching to VirtIO change my public IP address?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Changing the virtual NIC should not change the address assigned to the VPS, but Windows can treat the new NIC as a separate interface. If the old static settings are not present on the new adapter, re-enter the same provider-assigned values rather than choosing a new address.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I switch back if VirtIO does not work?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. Use the VPS control panel&#8217;s <strong>Settings \u2192 Network Card<\/strong> menu from the console workflow and select the previous emulated adapter. Restore the original adapter only as a recovery measure, then install the correct VirtIO driver before trying again.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Do I need to install every driver on the VirtIO ISO?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No. For this change, Windows needs the network <code>NetKVM<\/code> driver. The Device Manager update process with <strong>Include subfolders<\/strong> enabled selects the compatible network driver; storage, balloon, guest-agent, and display drivers are separate components.<\/p>\n\n\n\n<script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@type\": \"FAQPage\", \"mainEntity\": [{\"@type\": \"Question\", \"name\": \"What does VirtIO change on a Windows VPS?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"VirtIO presents a paravirtualized network device designed for virtual machines instead of an emulated legacy adapter. Windows still uses the normal TCP\/IP stack, but it needs the matching VirtIO network driver to communicate with the device.\"}}, {\"@type\": \"Question\", \"name\": \"Will switching to VirtIO change my public IP address?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Changing the virtual NIC should not change the address assigned to the VPS, but Windows can treat the new NIC as a separate interface. If the old static settings are not present on the new adapter, re-enter the same provider-assigned values rather than choosing a new address.\"}}, {\"@type\": \"Question\", \"name\": \"Can I switch back if VirtIO does not work?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Yes. Use the VPS control panel's **Settings \u2192 Network Card** menu from the console workflow and select the previous emulated adapter. Restore the original adapter only as a recovery measure, then install the correct VirtIO driver before trying again.\"}}, {\"@type\": \"Question\", \"name\": \"Do I need to install every driver on the VirtIO ISO?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"No. For this change, Windows needs the network `NetKVM` driver. The Device Manager update process with **Include subfolders** enabled selects the compatible network driver; storage, balloon, guest-agent, and display drivers are separate components.\"}}]}<\/script>\n\n","protected":false},"excerpt":{"rendered":"Learn to use VirtIO network card on Windows Server 2022, install the matching driver from an ISO, restore connectivity, and verify the switch.","protected":false},"author":1,"featured_media":856,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_singular_sidebar":"","csco_page_header_type":"","csco_page_load_nextpost":"","footnotes":""},"categories":[5,11],"tags":[79,78,80,52],"class_list":["post-855","post","type-post","status-publish","format-standard","has-post-thumbnail","category-guides","category-windows-server","tag-network-adapter","tag-virtio","tag-virtualization","tag-windows-server-2022","cs-entry"],"_links":{"self":[{"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/posts\/855","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/comments?post=855"}],"version-history":[{"count":1,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/posts\/855\/revisions"}],"predecessor-version":[{"id":3419,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/posts\/855\/revisions\/3419"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/media\/856"}],"wp:attachment":[{"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/media?parent=855"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/categories?post=855"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/tags?post=855"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}