Serverless QUIC Proxy via NAT Hole Punching with AWS Lambda
2025-06-21
This project implements a serverless QUIC proxy using AWS Lambda functions and NAT hole punching. Leveraging S3 for coordination and UDP traversal techniques, it creates encrypted proxy connections without needing dedicated servers – only on-demand Lambda functions. The system uses a three-phase approach: coordination (client discovers public IP via STUN, writes session info to S3), NAT hole punching (client and Lambda exchange UDP packets to create bidirectional holes), and QUIC tunnel establishment (client starts QUIC server, Lambda connects). The result is a browser connecting to the internet via a SOCKS5 proxy, with the Lambda function acting as an exit node forwarding traffic.
Development
NAT hole punching