Talk to our team
We'll set up a personalized demo — usually within 24 hours.
We'll be in touch
Someone from our team will follow up within 1 business day to set up your personalized demo.

WireGuard is a masterpiece of modern networking. It’s fast, the cryptography is highly opinionated and secure, and the codebase is small enough that a single human can actually read and understand it. But WireGuard made one architectural decision that, while technically correct, collides with the messy reality of the internet: It strictly uses UDP.
In a perfect world, UDP is exactly what you want for a VPN tunnel. It avoids the dreaded "TCP meltdown" problem (where running TCP inside TCP causes exponential congestion control failures). It’s lightweight. It’s fast.
But the internet is not a perfect world. The internet is full of middleboxes, Deep Packet Inspection (DPI) engines, aggressive Carrier-Grade NATs (CGNAT), and grumpy corporate firewalls. And to many of these boxes, UDP is terrifying.
Here is a look at why WireGuard sometimes gets stuck, and how we built the TCP Proxy and WSS (WebSocket Secure) Uplink in Netmaker v1.7 to punch through the internet's most hostile environments.

To understand why UDP fails, you have to understand the mindset of an enterprise firewall administrator. Their job is to prevent data exfiltration and block malware.
TCP is highly stateful. A firewall can see a TCP handshake, track the sequence numbers, and confidently know that a connection is legitimate. More importantly, it knows what standard web traffic looks like: TCP port 443 (HTTPS) or port 80 (HTTP). Firewalls have to let this traffic out, or the company stops functioning.
UDP, however, is connectionless. There is no handshake. Because it’s harder to track and frequently used for things like torrenting or bypassing proxies, many enterprise firewalls, hotel Wi-Fi networks, and airport routers adopt a simple rule: Default-Deny all outbound UDP.
When your WireGuard client wakes up in one of these environments and tries to initiate a handshake, the firewall quietly drops the packet. Your client retries. Dropped again. To the user, the VPN is simply "broken."

We love UDP, but a VPN that can't connect is a useless VPN. We needed a parachute for when UDP fails. The solution wasn't just to fall back to TCP, but to fall back to a specific kind of TCP that firewalls are physically incapable of blocking without taking down the modern web: WebSockets over HTTPS.
Enter the WSS (WebSocket Secure) Uplink.
When you enable the TCP proxy in Netmaker, your gateway starts listening on a TCP port (usually 443) for WSS connections. Here is what happens when a client gets stranded behind a strict firewall:
Yes, wrapping WireGuard inside WebSockets inside TLS inside TCP will add overhead and slow down your connection. But you know what's worse? Not being able to reach your production servers because you decided to work from a Marriott.
Because we know enterprise networks are weird, we didn't force a one-size-fits-all TLS implementation for the TCP proxy.

This isn't just a party trick; it fundamentally changes where you can deploy a mesh network.
WireGuard’s UDP foundation makes Netmaker incredibly fast. But the WSS Uplink makes it unstoppable.

GET STARTED