v1.0.0 WFP enforcement engine, profiles and scheduler now shipping

Two connections.
One routing table.

Dual Internet gives Windows something it has never had: real per-application control over which network adapter each program uses. Put your game on fibre, your backups on the metered line — at the same time, on one machine, with no virtual machines and no manual route add.

30-day trial, no account needed Signed MSI, 18 MB Routes restored on exit
Dual Internet — active routing map 2 adapters live
Dual Internet routing map Five applications on the left are matched by rules in the middle and sent to one of two network adapters on the right. Chrome, Steam and the download manager travel the cyan lane to the fibre adapter. The work VPN client and backup agent travel the green lane to the Ethernet adapter. chrome.exe browsing · 4 sockets steam.exe gaming · udp 27015 qbittorrent.exe bulk · 128 peers teams.exe work · low latency backup-agent.exe metered · 02:00 Rule engine priority match app · dest · port Wi-Fi · Fibre 1 Gb 192.168.1.4 · 8 ms Ethernet · LTE 10.24.0.9 · 41 ms

0

Day free trial

0+

Adapters at once

<0%

Idle CPU overhead

0

Telemetry events sent

Overhead measured on an Intel i5-12400 with two active adapters, 1-second polling and 40 active rules. Your figures will vary with rule count and polling interval.

The problem

Windows picks one adapter and ignores the rest

When a Windows machine has two working connections, the routing table sorts them by interface metric and sends essentially everything down the winner. The second adapter sits there doing nothing until the first one fails.

  • Metric tuning is all-or-nothing. Lowering a metric moves every application, not the one you cared about.
  • route add only knows destinations. It cannot tell Chrome from Steam, because the routing table has no concept of a process.
  • Static routes break on reconnect. A DHCP lease change or a Wi-Fi reconnect silently invalidates hand-written entries.
  • There is no schedule, no failover, no visibility. You find out the line went down when something stops loading.
before — the manual way
# Guess the interface index…
netsh interface ipv4 show interfaces

# …then pin a destination and hope nothing else needs it
route add 142.250.0.0 mask 255.255.0.0 10.24.0.1 if 14

# Reboot, DHCP renews, route is now wrong.
# No per-app control. No failover. No logs.
The route addition failed: The object already exists.
after — dual internet
dualnet route add --process "steam.exe" --adapter "Wi-Fi"
dualnet route add --destination "*.backblazeb2.com" --adapter "LTE"
dualnet profile activate "Gaming"

✓ 3 rules applied · routes backed up · restored on exit

What it does

One application, nine sections

Everything below ships in the same MSI, in one window — no separate consoles and no mode to discover. Pick an application, pick a connection, done.

Core

Rules that name an application and an adapter

Pick an application from the installed list, from running processes, or by browsing to its executable, then choose the adapter it must use. Each rule can be enabled and disabled independently, and every rule reports whether it is actually being enforced rather than merely saved.

Installed apps Running processes Browse to .exe Per-rule enable

Named profiles

Save a whole rule set as “Work”, “Gaming”, “Download” or anything else, then switch from the window or on a schedule. Export to JSON to share a configuration with a colleague or roll it out across a fleet.

Live

Bandwidth & latency monitoring

Per-adapter throughput read straight from the IP Helper interface counters, plus per-application usage built from socket-to-PID mapping. Charts update in real time and history is kept in SQLite so you can look back at yesterday.

Wi-Fi · Fibre Mb/s
Ethernet · LTE Mb/s

Illustrative sample data — the app reads your real adapters.

Automation

It keeps working when you are not watching

Give a profile a time window and the scheduler activates it for you — shift bulk transfers to off-peak hours, or put the machine on a work profile during office hours. Windows that cross midnight are handled properly. The app can start with Windows and sit in the tray, so enforcement is in place before you log in to anything.

  • Daily windows per profile, including overnight spans
  • Start with Windows, minimised to the tray
  • Notifies you when an adapter carrying rules goes down

There is no automatic failover. If an assigned adapter goes offline its applications lose connectivity rather than switching over — you are told, not silently rerouted.

Enforced in the kernel, and honest about it

Rules become Windows Filtering Platform filters, so an application cannot opt out of them the way it can ignore a proxy setting. The app tells you exactly what it achieved for each rule — enforced, or not, and why — instead of reporting success and hoping.

Speed test per adapter

Measure download, upload and latency on one specific adapter, bound to that adapter's own address — so you are comparing the two lines themselves rather than whichever one Windows happened to pick. Copy a diagnostics summary, or open the log folder, when you need evidence.

Nothing to configure first

Open the app and your adapters and installed applications are already listed. Pick one of each and press Assign — that is the whole first-run experience. Profiles, scheduling and settings are in the sidebar when you want them.

Who it is for

Four setups people actually run

Pick the one closest to your situation — each links to a full walkthrough with the exact rules to create.

Home

Gaming on fibre, downloads on the second line

Your game gets the low-latency connection to itself while a 60 GB patch, a cloud backup and someone else's video call all run down the other adapter. Ping stops spiking mid-match because nothing else is competing for the pipe.

Work from home

Corporate VPN on one adapter, everything else on the other

Split tunnelling without asking IT to change the VPN profile. Teams, Outlook and the internal wiki go through the tunnel; streaming, updates and personal browsing never touch it — which is usually what the VPN policy wanted anyway.

Creator

Stream upload isolated from every other upload

OBS gets an adapter with a guaranteed upstream while asset syncs, render uploads and browser tabs use the other. A dropped frame during a live show is expensive; this removes the most common cause of it.

IT & enterprise

Fleet configuration from one JSON file

Author a profile once, export it to JSON, then import it on every other machine. Rules travel with the file, so a new build gets the same routing without anyone retyping it.

How it works

Four steps from install to routed traffic

Enforcement uses the Windows Filtering Platform. An assignment works by blocking the application on every adapter except the one you chose, so its new connections have nowhere else to go. That is a real kernel-level control, and it has real edges — both are spelled out below.

  1. 01

    Install and elevate

    The MSI installs the application. Routing changes need administrator rights, so the app is manifested to prompt for elevation once at launch rather than nagging per action.

  2. 02

    Adapters are enumerated and scored

    Every adapter is read from Windows with its address, link speed, gateway and current status, and each is marked routable or not so you can see at a glance which ones can actually carry traffic. An optional speed test measures real download, upload and latency on one specific adapter.

  3. 03

    You write rules — the engine resolves them

    Rules are evaluated by priority. The engine backs up the current routing table before its first modification, then applies destination routes via the routing table and process or port rules via a WFP filter at the connect-authorisation layer.

  4. 04

    State is watched and restored

    A WMI watcher catches process start and stop; adapter events trigger a re-apply so a DHCP change does not leave stale routes. On exit — clean or otherwise — the backup is restored, so uninstalling leaves nothing behind.

DualInternet log — Administrator

Nothing is changed without a way back

Before an adapter's metric is altered, the original value is journalled to %LocalAppData%\DualInternet. Filters and metrics are reverted on exit; if the process is killed instead, the next launch reads the journal and restores whatever was left behind.

Under the hood

Native Windows, no shims

Built on .NET 8 with direct P/Invoke into the Windows networking stack. No Electron, no bundled browser, no background telemetry.

Framework

.NET 8 LTS · WPF

MVVM, hardware-accelerated rendering, native window chrome and full DPI awareness.

Routing

IP Helper + WFP

Routing table for destinations, Windows Filtering Platform for per-process and per-port decisions.

Storage

SQLite, local only

Profiles, rules, statistics and settings stay in a file on your machine. Nothing is uploaded.

Footprint

18 MB installer

Roughly 90 MB installed, around 70 MB resident with monitoring on and two adapters.

Pricing

Try it for 30 days, then buy once

The trial is the whole application, not a cut-down version. Professional is a one-time purchase with a perpetual licence — you keep the version you bought forever, plus a year of updates.

Trial

$030 days

The complete application for 30 days. No account, no card, no feature locks.

  • Unlimited rules and profiles
  • Live bandwidth monitor
  • Per-adapter speed test
  • Scheduling and tray behaviour
  • Keeps routing after 30 days
Start the trial

Enterprise

$18per seat / year

Volume licensing, centralised profiles and a named support contact.

  • Everything in Pro
  • Volume keys & silent MSI switches
  • Locked baseline profiles
  • Priority support, 1 business day
  • Invoicing and purchase orders
Talk to us

Prices in USD, exclusive of any local tax. 30-day refund, no questions asked — full comparison and billing details.

Common questions

The five things people ask first

Get started

Put your second connection to work

Download the signed installer and create your first rule in about a minute. The 30-day trial is the complete application — no account, no card.

Windows 10 version 1809 or newer · x64 and ARM64 · 18 MB · SHA-256 published on the download page