Connect to a game server like a Factorio headless server from a network that blocks UDP and VPN traffic.
Tunnel UDP application traffic over a TCP connection that looks like normal HTTPS web traffic.
Run a lightweight reverse-proxy-friendly relay for UDP endpoints using gRPC over HTTP/2.
| last8exile/udpproxy | anton-petrov/rsabackdoor | danx299/simdrop | |
|---|---|---|---|
| Stars | 1 | 1 | 1 |
| Language | C# | C# | C# |
| Last pushed | — | 2015-01-20 | — |
| Maintenance | — | Dormant | — |
| Setup difficulty | moderate | moderate | easy |
| Complexity | 3/5 | 3/5 | 1/5 |
| Audience | developer | researcher | general |
Figures from each repo's GitHub metadata at analysis time.
Requires a reverse proxy configured for TLS and h2c since the server component does not handle HTTPS itself.
UdpProxy is a small tool for tunneling UDP traffic over TCP when a network blocks UDP and VPN connections but still allows normal https requests. The author built it to connect to a Factorio game server running headless from behind a restricted network where only outgoing web requests were possible. It is made of two small programs. Tcp2Udp runs on the server side and Udp2Tcp runs on the client side, and together they let UDP traffic pass through a connection that looks like ordinary web traffic to anything watching the network. Under the hood, the two programs talk to each other using GRPC over HTTP 2, chosen because it is fast and low latency, fast enough to play Factorio multiplayer without noticeable lag. The author also tried SignalR, which sends data over WebSockets on HTTP 1.1, but found it too slow and unresponsive. Establishing the TCP connection only goes one direction, but once it is set up, the UDP traffic it carries flows both ways. Tcp2Udp is an ASP.NET Core application meant to run on a server that can talk directly to the real UDP destination. It listens for incoming GRPC connections and can serve several clients at once, giving each one its own UDP client internally. It relies on a library called Magic Onion to make working with GRPC easier. Because it does not handle HTTPS on its own, it is meant to sit behind a reverse proxy that takes care of TLS, and the README includes hosting tips about h2c protocol settings and disabling request timeouts so the reverse proxy does not close the long lived GRPC connection. Udp2Tcp is a console app that runs on the client machine. It connects to the Tcp2Udp server over GRPC, then listens for local UDP traffic and forwards it in both directions. A single instance only supports one client. You start it with a local port number and the server's URL, wait for a connected message, then point your application at the local port instead of the real UDP endpoint. The README is upfront about security limits: the exposed UDP endpoint has no authentication, and a malicious client could potentially guess another client's connection ID and interfere with their traffic, something the author flags as a known weakness. It is not a VPN or a system wide proxy, applications must be configured to connect to it directly.
A two part tool that tunnels UDP game traffic over TCP using GRPC, letting apps connect through networks that block UDP and VPNs.
Mainly C#. The stack also includes C#, ASP.NET Core, gRPC.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.