Skip to content
rohit267Public

About

Use all your network adapters at once on Windows/Linux/Mac: per-connection load balancing over Wi-Fi, Ethernet and phone/USB tethers (TUN + Wintun)

Topics

Resources

Contributing

Security policy

Stars

64 stars

Watchers

1 watching

Forks

Repository files navigation

net-merge icon

net-merge

Use all your internet connections at the same time.
Combine Wi-Fi, Ethernet and phone hotspots, so downloads, games and browsers get the speed of every connection added up.

Download · Install · Add a second connection · Troubleshooting · How it works

CI Latest release Downloads MIT license Windows, macOS and Linux Buy me a coffee Donate with PayPal

Speed test on a Mac with Wi-Fi and an Android phone: the net-merge menu shows both connections carrying traffic, and the download reaches about 326 Mbit/s
A Mac with Wi-Fi + an Android phone. The menu shows both connections working at once. Watch the full 45-second video.

net-merge uses all your network adapters together. It works on Windows, macOS and Linux. It is free. There is no account, no server and no VPN.

A real test with Wi-Fi + an Android USB tether + an iPhone hotspot, 9 downloads at once: 232-303 Mbit/s. The fastest connection alone gave about 121 Mbit/s.

Windows: hover the icon Windows: the menu macOS: the menu bar
Tooltip: Merging, speed of each adapter and the total Menu: total, each adapter's speed and flows, IPv6 option, Pause merging, Quit macOS menu: total 399 Mbit/s, en0 and feth0 each with their flows, Pause merging, Quit

How it helps

net-merge gives every new connection to one of your links. When an app opens many connections, they spread over all your links.

  • Good for: Steam and game downloads, browsers, system updates, cloud uploads (Google Drive), download managers like IDM, torrents.
  • Not for: one single connection. One connection always uses one link, so one big file from one connection does not get faster.
  • Works for every app, TCP and UDP, IPv4 and IPv6. You do not set up a proxy.
  • Smart: faster links get more connections. A link with no internet gets none until it works again.
  • Safe: if net-merge crashes, your internet keeps working.
  • Light: about 0.18 CPU cores per 100 Mbit/s.

Install

Windows

  1. Download net-merge-setup-x.y.z.exe from the releases page and run it. It needs admin.
  2. Windows may warn you because the app is not signed yet. Click More info, then Run anyway.
  3. Open net-merge from the Start menu. A tray icon appears. If you do not see it, it is behind the ^ arrow next to the clock.

There is also a portable zip on the releases page.

macOS (Apple Silicon and Intel)

  1. Download net-merge-x.y.z-macos-universal.tar.gz from the releases page.
  2. Open Terminal in that folder and run:
tar xzf net-merge-*-macos-universal.tar.gz
xattr -d com.apple.quarantine net-merge     # only if macOS says it can't open it
sudo ./net-merge install                    # once: lets the tray start without a password
net-merge tray                              # a green/grey icon appears in the menu bar
  1. Optional: net-merge autostart on to start it when you log in.

install adds one small rule so that only net-merge tray can run as root without a password. To remove it all: net-merge autostart off and sudo net-merge uninstall.

Linux

  1. Download net-merge-x.y.z-linux-x86_64.tar.gz (or -linux-aarch64.tar.gz for ARM) from the releases page.
  2. Run:
tar xzf net-merge-*-linux-*.tar.gz
sudo install -m 755 net-merge /usr/local/bin/
sudo setcap cap_net_admin,cap_net_raw+ep /usr/local/bin/net-merge
net-merge tray

The setcap line lets net-merge work without root. The tray icon needs a desktop that supports StatusNotifierItem: KDE, XFCE, Cinnamon, LXQt, Budgie, or GNOME with the AppIndicator and KStatusNotifierItem Support extension. If your firewall blocks unknown traffic, trust the net-merge interface (for example firewall-cmd --zone=trusted --add-interface=net-merge).

NixOS

# flake.nix
inputs.net-merge.url = "github:rohit267/net-merge";

# configuration.nix (with `inputs` passed via specialArgs)
imports = [ inputs.net-merge.nixosModules.default ];
programs.net-merge = {
  enable = true;
  autostart = true;   # optional: start the tray in every graphical session
};

To try it without installing: sudo nix run github:rohit267/net-merge -- run.

Add a second connection

net-merge needs two or more real connections. Use Wi-Fi plus one of these: a phone (USB tethering or hotspot), an Ethernet cable, or a second Wi-Fi. Plug it in and net-merge adds it within a few seconds. When you unplug it, its connections move to the others.

Windows and Linux: plug the phone in and turn on USB tethering (Android) or Personal Hotspot (iPhone). That is all.

Mac with an iPhone (nothing extra to install)

  1. Plug the iPhone in with a cable. Tap Trust on the iPhone if it asks.
  2. On the iPhone, open Settings > Personal Hotspot and turn on Allow Others to Join.
  3. An iPhone USB network appears on the Mac. net-merge adds it in a few seconds.

Mac with an Android phone (needs the app TetherKit)

macOS cannot use Android USB tethering by itself. The app TetherKit adds that support.

  1. Install and open TetherKit.
  2. Plug the phone in and turn on USB tethering in the phone's settings.
  3. Click Apply in TetherKit. net-merge adds the new network in a few seconds.

Start net-merge first, then connect the Android phone. macOS drops the TetherKit connection each time net-merge starts, quits, or is paused and resumed. If the phone link disappears, click Apply in TetherKit again. The iPhone is not affected.

A phone uses its mobile data, so part of your traffic goes through it while net-merge runs. Quit net-merge when you do not want that.

Use it

  1. Start net-merge. A tray icon appears (menu bar on Mac).
  2. The icon is green when it is merging and grey when it is paused.
  3. Hover the icon to see the speed of each connection and the total.
  4. Right-click the icon (on Mac, click it) to open the menu. It shows each connection's speed, how many connections net-merge gave it, and the buttons Pause merging / Start merging and Quit.
  5. To start it at sign-in: tick the box in the Windows installer, or run net-merge autostart on.

Tips:

  • Torrent clients already use every connection. Leave qBittorrent's network interface on Any interface.
  • Leave Use all adapters (IPv6 only if every adapter has it) ticked. Untick it only if you must reach a site that only has IPv6.
  • net-merge list shows which connections are used and why others are skipped. net-merge status shows live numbers.

Troubleshooting

A second connection does not make things faster

You only gain speed when each connection reaches the internet by its own path. Wi-Fi from your home router plus a phone on mobile data works. Wi-Fi and Ethernet plugged into the same router do not: they share one internet line, so the total stays the same.

Also remember that one connection always uses one link. Many parallel connections (Steam, browsers, download managers) are what speed up. Run net-merge status to see how many connections each link carries.

A connection does not show up

Run net-merge list. It shows which connections are used and why the others are skipped, for example "no default gateway" (the link has no internet yet).

  • iPhone on a Mac: plug it in, tap Trust, and turn on Settings > Personal Hotspot > Allow Others to Join. If the iPhone USB network in System Settings > Network stays inactive, turn off its Disable unless needed switch.
  • Android on a Mac: install TetherKit and click Apply (see above).
  • Phone on Windows: if the phone does not appear in Network Settings, install your phone maker's USB driver.
The Android connection disappears on a Mac

macOS drops the TetherKit connection each time net-merge starts, quits, or is paused and resumed. Start net-merge first, then connect the phone. If it vanishes, click Apply in TetherKit again.

Windows uses only one network

Windows can switch Wi-Fi off when Ethernet is plugged in. Open the Group Policy Editor (gpedit.msc), go to Computer Configuration > Administrative Templates > Network > Windows Connection Manager, and set Minimize the number of simultaneous connections to the Internet or a Windows domain to Disabled.

macOS says it cannot open net-merge, or Windows says "protected your PC"

The apps are not code-signed yet. On macOS run xattr -d com.apple.quarantine net-merge. On Windows click More info, then Run anyway.

I cannot find the tray icon

On Windows it may be behind the ^ arrow next to the clock. On macOS it is in the menu bar. On Linux the desktop needs StatusNotifierItem support (KDE, XFCE, Cinnamon, LXQt, Budgie, or GNOME with the AppIndicator and KStatusNotifierItem Support extension).

A site asks me to log in again

net-merge may use a different IP for each connection, and some sites tie your login to one IP. That is a limit of splitting connections over several links.

Commands

net-merge tray            tray icon (the normal way to run it)
net-merge on | off        start / pause merging in the running tray
net-merge quit            pause and close the tray
net-merge status | list   live numbers / which connections are used
net-merge autostart on|off|status
net-merge socks           plain SOCKS5 proxy on 127.0.0.1:1080 (no admin, per app)
net-merge cleanup         remove leftover routes after a crash
net-merge install         macOS only: `sudo net-merge install` (see above)

More flags and details are in docs/DEVELOPING.md.

Good to know

  • Needs admin (Windows), CAP_NET_ADMIN (Linux) or sudo net-merge install once (macOS).
  • Some sites tie your login to one IP. net-merge may use a different IP for each connection, so such a site can ask you to log in again.
  • If your connections differ in IPv6 support, sites that only have IPv6 are not reachable while the box above is ticked.

More

Support

net-merge is free. If it saves you time, you can buy me a coffee or donate with PayPal. Thank you!

About

Use all your network adapters at once on Windows/Linux/Mac: per-connection load balancing over Wi-Fi, Ethernet and phone/USB tethers (TUN + Wintun)

Topics

Resources

Contributing

Security policy

Stars

64 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages