Have you looked into WebRTC much? It supports arbitrary (text or binary) data transfer between browsers, in both TCP-like and UDP-like modes, with inbuilt NAT-busting (both STUN and TURN). It does NAT-busting rather than VPN, so it's faster than either Tor or a VPN.<p>So if the reason you wanted NAT traversal was "my (browser|game|filesystem) wants to share data with someone else's", WebRTC is a far easier answer, and is now available to most browsers[1] without extra software installs. It does involve a privacy loss of your connection details to the STUN/TURN server, but the signaling server cannot decrypt your (DTLS) communication.<p>If the reason you want a global LAN isn't those things, what is it?<p>[1]: Available outside browsers, too: see e.g. my Node WebRTC chat client -- <a href="https://github.com/cjb/serverless-webrtc" rel="nofollow">https://github.com/cjb/serverless-webrtc</a> -- or the native C++ API.