Tunnel OpenVPN's UDP traffic through udp2raw so it looks like TCP or ICMP, bypassing firewalls that block UDP.
Protect VPN traffic from network throttling by disguising it as ICMP or fake TCP packets.
Deploy on an OpenWRT router or Raspberry Pi to protect all network traffic on a local network.
Requires root access on Linux, must run the server binary on a remote machine and the client binary locally with matching passwords and ports.
udp2raw is a networking tool that wraps UDP traffic inside a different type of network packet, making the traffic look like something else entirely. UDP is a communication protocol used by many apps and VPN services, but it gets blocked, throttled, or degraded on certain networks and by some internet service providers. udp2raw addresses that by disguising your UDP data as either fake TCP, ICMP (the protocol used by "ping"), or ordinary UDP, so firewalls that target UDP specifically will pass the traffic through without issue. To accomplish this disguise, udp2raw uses "raw sockets," which are low-level network interfaces that let the program build packet headers by hand rather than relying on the operating system's standard networking stack. Running it requires root (administrator) access on Linux. It works on desktop Linux, Android devices, OpenWRT routers, and Raspberry Pi hardware. A separate version of the project covers Windows and macOS. The tunnel encrypts traffic with AES-128-CBC and verifies data integrity using HMAC-SHA1 (or weaker alternatives). It also maintains an anti-replay window, which is a mechanism that blocks someone from recording your packets and retransmitting them later to impersonate you. If the connection drops, udp2raw detects the failure via heartbeats and automatically switches to a new port to reconnect, recovering the session so that any VPN running on top of it stays connected. One common use case is combining udp2raw with an existing VPN such as OpenVPN. OpenVPN normally runs over UDP, which can be blocked. With udp2raw in between, the VPN traffic gets disguised as TCP or ICMP, bypassing the block. The README explicitly notes this avoids the "TCP over TCP" performance problem that would occur if you just switched OpenVPN to native TCP mode. Setup is straightforward: run the server binary on your remote machine and the client binary locally, supplying matching passwords and port numbers. The tool adds the necessary system firewall rules automatically when you pass the -a flag.
← wangyu- on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.